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