時序數(shù)據(jù)庫IoTDB支撐北斗智慧物聯(lián)五大應用平臺智慧城市建設
1.? 業(yè)務場景介紹
1.1 公司簡介
四川北斗智慧物聯(lián) 科技 有限公司(以下簡稱北斗智慧物聯(lián))專注于北斗定位、物聯(lián)網(wǎng)、大數(shù)據(jù)、5G 等技術的融合應用,致力于提升智慧城市的數(shù)據(jù)價值。為政府和企業(yè)用戶提供導航定位、高精度差分定位和基于位置的增值信息服務等一體化系統(tǒng)解決方案。其業(yè)務涵蓋智慧城市、智能交通、智慧旅游、公共安全、應急指揮通信及農(nóng)林業(yè)應用等領域。
1.2 業(yè)務全景及 IoTDB 使用介紹
北斗智慧物聯(lián)綜合應用 5G、云計算、物聯(lián)網(wǎng)、大數(shù)據(jù)等技術,提供多場景、多領域的智慧城市解決方案,其中包含 5 個應用平臺:智慧環(huán)衛(wèi)平臺、智慧園林管理系統(tǒng)、智慧市政管理、垃圾分類智慧監(jiān)管平臺、公務用車管理平臺。
物聯(lián)網(wǎng)時序數(shù)據(jù)庫 IoTDB 是北斗智慧物聯(lián)在多個業(yè)務方向上使用的關鍵技術之一,上述 5 個應用平臺均使用 IoTDB 進行時序數(shù)據(jù)管理。
各平臺介紹及 IoTDB 使用情況如下:
智慧環(huán)衛(wèi)平臺 :通過實時監(jiān)控和智慧管理,優(yōu)化垃圾轉運和處理流程,提升環(huán)衛(wèi)工作的效率和效果。平臺利用物聯(lián)網(wǎng)技術監(jiān)測環(huán)衛(wèi)車輛和垃圾桶的狀態(tài),實現(xiàn)垃圾收集、轉運、處理的全鏈條智能化管理。IoTDB 用于存儲和處理環(huán)衛(wèi)車輛的位置、狀態(tài)、作業(yè)數(shù)據(jù)等時序數(shù)據(jù)。通過 IoTDB 的高效寫入和快速查詢功能,確保數(shù)據(jù)的實時性和準確性,支持實時監(jiān)控和調(diào)度優(yōu)化,有助于提升環(huán)衛(wèi)工作的效率和效果。
智慧園林管理系統(tǒng) :利用物聯(lián)網(wǎng)技術監(jiān)測園林狀況,包括土壤濕度、植物生長狀況等,實現(xiàn)園林養(yǎng)護的科學化和精細化管理。系統(tǒng)通過數(shù)據(jù)分析,為園林管理者提供科學的養(yǎng)護建議,提高園林養(yǎng)護效率。IoTDB 用于存儲來自園林傳感器的數(shù)據(jù),如土壤濕度、植物生長狀況等。通過 IoTDB 的高壓縮比和靈活查詢功能,實現(xiàn)園林養(yǎng)護的數(shù)據(jù)分析和決策支持,有助于實現(xiàn)園林養(yǎng)護的科學化和精細化管理。
智慧市政管理 :整合車輛定位、人員定位、內(nèi)澇監(jiān)測等數(shù)據(jù),實現(xiàn)市政設施的智能化管理。系統(tǒng)通過實時監(jiān)測和分析市政設施的運行狀態(tài),為市政管理者提供決策支持,提高市政設施的管理水平。IoTDB 用于整合市政設施的運行數(shù)據(jù),如路燈、井蓋、垃圾桶的狀態(tài)信息等。IoTDB 的開放性和可擴展性使其方便與其他系統(tǒng)集成,滿足未來業(yè)務擴展需求,有助于實現(xiàn)市政設施的智能化管理和維護。
垃圾分類智慧監(jiān)管平臺 :借助 互聯(lián)網(wǎng) + 的解決方案,有效解決垃圾分類實施過程中的各類難題。平臺通過數(shù)據(jù)分析,為垃圾分類管理者提供監(jiān)管和優(yōu)化建議,提高垃圾分類的準確率和效率。IoTDB 用于處理垃圾分類過程中產(chǎn)生的數(shù)據(jù),如分類準確率、垃圾量等。通過 IoTDB 的高效數(shù)據(jù)處理功能,確保垃圾分類的實時監(jiān)控和管理,有助于優(yōu)化垃圾分類流程,提高分類準確率。
公務用車管理平臺 :基于流程化管理的公務車智慧解決方案。平臺通過實時監(jiān)測公務車的使用情況,為管理者提供車輛調(diào)度和費用控制的建議,提高公務車的使用效率。IoTDB 用于存儲和處理車輛的實時位置、行駛軌跡、狀態(tài)信息等高頻時序數(shù)據(jù)。IoTDB 的高效數(shù)據(jù)寫入和快速查詢能力,能夠保障數(shù)據(jù)實時性和準確性,提升車輛調(diào)度和管理效率,降低運營成本。
2.? 業(yè)務需求痛點
2.1 時序數(shù)據(jù)管理難點
1.設備與測點數(shù)量龐大
在智慧城市的各個應用場景中,需要管理的設備數(shù)量眾多。例如,在車輛管理方面,一個大型城市可能擁有數(shù)以萬計的運營車輛;在市政管理中,路燈、井蓋、垃圾桶等設施數(shù)量可能達數(shù)千個。而且每個設備往往包含多個測點,如車輛上的多個傳感器、市政設施上用于檢測不同狀態(tài)的多個傳感器等,整體的測點總數(shù)可達數(shù)萬個。
2.數(shù)據(jù)量與采集頻次高
由于物聯(lián)網(wǎng)設備的廣泛部署和高頻次的數(shù)據(jù)采集,每天產(chǎn)生的數(shù)據(jù)量極為龐大。例如在車輛管理場景中,大量車輛每秒都在產(chǎn)生位置、速度等數(shù)據(jù),每天采集的數(shù)據(jù)量超過 100GB。在一些對實時性要求極高的場景(如無人機監(jiān)測中的某些緊急任務場景或者交通流量實時監(jiān)測場景),采集頻次高達每秒百萬條數(shù)據(jù)點。
3.存儲空間需求大
隨著數(shù)據(jù)的不斷積累,對存儲空間的需求持續(xù)增長。按照上述的數(shù)據(jù)產(chǎn)生速度和規(guī)模,預計每年需要超過 50TB 的存儲空間來保存這些時序數(shù)據(jù)。
4.查詢速度要求高
在城市管理的實際應用中,很多決策需要基于實時數(shù)據(jù)查詢結果。例如在交通調(diào)度、應急救援等場景下,必須在秒級時間內(nèi)完成復雜的查詢操作,以獲取所需的車輛、人員、設施等相關信息。
5.成本限制
在滿足數(shù)據(jù)存儲、管理和查詢需求的同時,還需要考慮成本因素。無論是硬件設備(如服務器)的采購成本,還是軟件系統(tǒng)的使用和維護成本,都需要控制在合理范圍內(nèi),因此需要尋求低成本的存儲與計算方案。
2.2 曾用時序數(shù)據(jù)解決方案問題
北斗智慧物聯(lián)曾經(jīng)使用 MySQL 數(shù)據(jù)庫的索引模式進行時序數(shù)據(jù)的存儲管理,但在實踐中遇到了諸多問題,其中包括:
1.服務器資源消耗大
以 MySQL 為基礎的解決方案通常需要大量服務器來處理數(shù)據(jù),例如可能需要 10 臺以上的服務器才能勉強應對數(shù)據(jù)的存儲和計算任務。這導致硬件成本居高不下,包括服務器的購買成本、電力消耗成本以及機房空間占用成本等。
2.數(shù)據(jù)管理效率低
面對海量的時序數(shù)據(jù)(如超過 1 億條數(shù)據(jù)),以 MySQL 為基礎的解決方案在數(shù)據(jù)管理方面顯得力不從心。數(shù)據(jù)的查詢和處理效率低下,例如查詢一個特定時間段內(nèi)的車輛位置數(shù)據(jù)可能需要較長時間,無法滿足實時性要求較高的業(yè)務場景需求。
3.運維成本與實時性問題
以 MySQL 為基礎的解決方案結構繁瑣,涉及復雜的硬件設備和軟件系統(tǒng),需要大量的運維工作來確保其正常運行,這導致運維成本很高。同時,由于系統(tǒng)架構和技術的限制,之前的解決方案無法很好地滿足數(shù)據(jù)處理的實時性需求,如在市政設施狀態(tài)發(fā)生變化時,不能及時將信息反饋給管理部門進行處理。
3.? 選型 IoTDB 原因
1.開放數(shù)據(jù)架構
IoTDB 支持多種數(shù)據(jù)接入方式,具有很高的靈活性。它可以接收來自不同類型物聯(lián)網(wǎng)設備(如傳感器、智能終端等)的數(shù)據(jù),無論是通過網(wǎng)絡協(xié)議(如 TCP/IP、MQTT 等)直接傳輸?shù)臄?shù)據(jù),還是經(jīng)過消息隊列(如 Kafka)中轉的數(shù)據(jù),都能夠順利接入 IoTDB。這種開放的數(shù)據(jù)架構便于與各種物聯(lián)網(wǎng)生態(tài)系統(tǒng)中的設備和系統(tǒng)進行集成,為智慧城市建設中的多源數(shù)據(jù)融合提供了基礎。
2.寫入/壓縮/查詢優(yōu)勢
高效寫入性能 :IoTDB 基于 LSMTree(Log Structured Merge Tree)結構優(yōu)化了寫入性能。在數(shù)據(jù)寫入時,先將數(shù)據(jù)寫入內(nèi)存中的 MemTable(內(nèi)存表),數(shù)據(jù)按照順序在內(nèi)存中緩存,當達到一定規(guī)模后再批量寫入磁盤,減少了磁盤 I/O 操作次數(shù),從而確保高頻次數(shù)據(jù)采集的及時寫入,避免數(shù)據(jù)丟失。例如,在車輛管理場景中,即使在交通高峰期,大量車輛同時產(chǎn)生海量的位置和狀態(tài)數(shù)據(jù)情況下,IoTDB 也能夠快速寫入這些數(shù)據(jù)。
高壓縮比 :IoTDB 采用了先進的數(shù)據(jù)壓縮技術,如列式存儲、數(shù)據(jù)編碼(如 TS_2DIFF、RLE、GORILLA 等編碼方式)等。這些技術能夠?qū)r序數(shù)據(jù)進行高效壓縮,無損壓縮比可達 10 倍以上,并降低存儲空間需求,減少存儲成本。例如,通過壓縮技術,可以將原本需要占用大量空間的車輛行駛軌跡數(shù)據(jù)壓縮到較小的存儲空間,從而在滿足數(shù)據(jù)存儲需求的同時,減少對存儲設備的依賴,降低存儲成本。
快速查詢響應 :IoTDB 具有查詢優(yōu)化機制,采用 Bloomfilter 輔助查詢。Bloomfilter 是一種基于 bitmap 的數(shù)據(jù)結構,在查詢時,首先通過 Bloomfilter 進行快速判斷,如果 Bloomfilter 判斷數(shù)據(jù)不存在,則一定不存在,無需進一步查詢;如果判斷可能存在,則再通過索引進行進一步查找。這種機制大大提高了查詢性能,返回結果時間可控制在毫秒級,能夠滿足實時查詢與快速決策需求,提高管理效率。例如,在市政管理中查詢某個區(qū)域內(nèi)特定狀態(tài)(如故障)的路燈時,能夠快速返回結果,以便及時維修。
3.數(shù)據(jù)處理功能
IoTDB 提供豐富的數(shù)據(jù)處理函數(shù),能夠?qū)Σ煌愋偷臄?shù)據(jù)進行清洗、轉換與聚合等操作。在數(shù)據(jù)清洗方面,可以去除重復、錯誤或者無效的數(shù)據(jù)點;在數(shù)據(jù)轉換方面,可以將不同格式的數(shù)據(jù)轉換為統(tǒng)一的格式以便于存儲和分析;在數(shù)據(jù)聚合方面,可以對大量的原始數(shù)據(jù)進行匯總統(tǒng)計(如計算某一時間段內(nèi)的平均車速、某一區(qū)域內(nèi)的平均土壤濕度等)。這些數(shù)據(jù)處理功能有助于提高數(shù)據(jù)的質(zhì)量和可用性,為城市管理決策提供更準確的數(shù)據(jù)支持。
4.社區(qū)運維支持
IoTDB 擁有活躍的社區(qū)與專業(yè)的運維團隊,通過社區(qū)途徑提出的反饋,能夠獲得及時的技術支持,原廠運維團隊高效的優(yōu)化和維護工作,能夠確保 IoTDB 在智慧城市項目中的穩(wěn)定運行。
4.? 解決方案架構
北斗智慧物聯(lián)圍繞 IoTDB 建立的時序數(shù)據(jù)管理流程簡述如下:
1.數(shù)據(jù)采集 :時序數(shù)據(jù)通過各種物聯(lián)網(wǎng)設備和傳感器進行采集。這些設備廣泛分布在車輛、人員、無人機、園林綠化監(jiān)測點以及市政設施等各個應用場景中。例如,車輛上的傳感器采集車輛的運行數(shù)據(jù),園林綠化監(jiān)測點的傳感器采集土壤和植物相關數(shù)據(jù)等。
2.數(shù)據(jù)傳輸 :采集到的時序數(shù)據(jù)經(jīng) Kafka 消息隊列進行傳輸。Kafka 作為一種高吞吐量、分布式的消息隊列系統(tǒng),能夠有效地處理大量的實時數(shù)據(jù)傳輸任務。它可以對數(shù)據(jù)進行緩存、排序,并按照一定的規(guī)則將數(shù)據(jù)發(fā)送給 IoTDB,確保數(shù)據(jù)傳輸?shù)目煽啃院头€(wěn)定性。
3.數(shù)據(jù)寫入及存儲 :最終,時序數(shù)據(jù)通過 IoTDB 提供的原生接口進行寫入。IoTDB 采用專為時序數(shù)據(jù)設計的 TsFile 格式存儲數(shù)據(jù),這種格式優(yōu)化了存儲結構,結合列式存儲模式、元數(shù)據(jù)管理架構和設備、傳感器、時間維度索引,具有高效的存儲效率和查詢性能。存儲在 IoTDB 中的數(shù)據(jù),經(jīng)過進一步查詢、計算與分析,能夠支撐不同的下游應用系統(tǒng),支持車況、園林、垃圾分類等智慧城市應用。
5.? 應用場景舉例
5.1 車輛管理場景
需求場景 :實時監(jiān)控車輛位置和狀態(tài),優(yōu)化調(diào)度。
IoTDB 的作用 :IoTDB 能夠用較低的成本存儲車輛產(chǎn)生的海量時序數(shù)據(jù),包括位置、速度、發(fā)動機狀態(tài)等。通過其高效的查詢功能,可以實時獲取車輛的位置、狀態(tài)信息和歷史行駛軌跡。例如,在一個大型的城市物流配送場景中,配送車輛的位置信息能夠?qū)崟r寫入 IoTDB,調(diào)度中心可以隨時查詢車輛的位置,根據(jù)貨物的配送需求和交通狀況,優(yōu)化車輛的行駛路線和配送任務分配。
以下查詢語句可以獲取過去一小時內(nèi)所有車輛的位置信息:
效果 :通過 IoTDB 的支持,車輛的調(diào)度更加科學合理,能夠有效減少車輛空駛時間和不必要的行駛路程,提高車輛調(diào)度效率,減少交通擁堵,降低交通壓力,城市物流配送的整體效率得到提升。
5.2 園林綠化物聯(lián)網(wǎng)監(jiān)測場景
需求場景 :實時監(jiān)測土壤濕度、植物生長狀況等。
IoTDB 的作用 :IoTDB 能夠長期存儲從園林綠化監(jiān)測點采集到的土壤濕度、植物生長狀況等數(shù)據(jù),并提供靈活的查詢和分析功能。例如,可以查詢某一區(qū)域內(nèi)植物在過去一個月內(nèi)的生長數(shù)據(jù),分析其生長趨勢是否正常。根據(jù)實時獲取的土壤濕度和植物生長狀況數(shù)據(jù),可以確定不同區(qū)域的灌溉需求,實現(xiàn)精準灌溉。
以下查詢語句可以獲取土壤濕度低于設定閾值的監(jiān)測點數(shù)據(jù):
效果 :通過 IoTDB 的支持,園林養(yǎng)護人員可以更加精準地進行養(yǎng)護操作,避免過度灌溉或施肥等情況,使植物得到更好的生長環(huán)境,從而有效提高了園林養(yǎng)護效率,植物健康狀況與園林整體美觀度獲得了明顯提升。
5.3 無人機監(jiān)測場景
需求場景 :實時監(jiān)測交通狀況和環(huán)境數(shù)據(jù),支持城市管理決策。
IoTDB 的作用 :無人機在飛行過程中采集到的空氣質(zhì)量等數(shù)據(jù)能夠?qū)崟r傳輸?shù)?IoTDB 中進行存儲,IoTDB 能夠高效地處理這些高頻數(shù)據(jù),確保數(shù)據(jù)的實時性和準確性。通過 IoTDB 的查詢功能,管理人員可以實時獲取無人機采集到的各類數(shù)據(jù),并進行分析。
以下查詢語句可以獲取過去一小時內(nèi)無人機采集的所有數(shù)據(jù):
效果 :通過 IoTDB 提供的實時、準確的數(shù)據(jù)支持,幫助城市管理人員做出了更加科學的決策。例如,根據(jù)環(huán)境監(jiān)測數(shù)據(jù),可以確定環(huán)境污染的源頭,采取針對性的治理措施。
6.? 未來展望
未來,IoTDB 將繼續(xù)適配智慧城市的不同業(yè)務場景,基于車輛管理、園林綠化管理等場景,支持北斗智慧物聯(lián)構建更加靈活和定制化的解決方案。
IoTDB 也將繼續(xù)專注于實現(xiàn)時序數(shù)據(jù)的穩(wěn)定、高效、安全、靈活管理,通過技術創(chuàng)新與應用適配,為各行業(yè)提供數(shù)字化、智能化轉型的有效路徑。