无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

構筑生態環境實時數倉大數據平臺,TDengine 如何處理百億行級大數據?

廣東省環境科學研究院 沈華烈

2022-03-16 / ,

小 T 導讀:基于政務信息化自主可控的要求,在與同類型數據庫進行性能對比后,廣東環境科學研究院的生態環境數據治理服務項目選用 TDengine Database 強化了其感知層建設,精準及時地對污染排放中的問題進行檢測和預警。本文講述了他們的選型和建模思路以及落地后的效果展示。

公司簡介

廣東省環境科學研究院是一家綜合性研發機構,擁有環境工程咨詢、工程設計、環保工程承包、實驗室計量認證等多個資質,可開展區域可持續發展戰略、生態環境規劃、生態環境政策、生態環境標準等研究,為解決區域重大生態環境問題提供生態環境風險、生態環境工程、生態環境檢測和生態環境大數據研究。

scene

為解決國內環境質量管理、污染源監管和數字政府等生態環境數據的數據匯聚、數據清洗、數據質量管理、數據重構、數據應用等一系列數據管理工作,我們創建了生態環境數據治理服務項目,幫助企業打通所有相關的業務信息系統、建立數據倉庫,以大數據技術為生態環境的精準治理和智慧決策提供支撐。

本項目的實時數倉架構如下圖所示,通過建設生態環境感知層來及時捕獲環境質量實時狀態及實時的污染排放狀態,獲取大氣、地表水、近岸海域、固定(移動)污染源污染排放等業務中的實時監測數據,利用大數據技術手段進行分析研判,對可能發生的環境事件進行預警。

實時數倉架構圖
圖1 實時數倉架構圖

同時,為避免重復建設,在項目中我們建立了生態環境實時數據倉庫,采用集中式的采集、歸聚、分析和數據服務,可有效利用資源和技術,獲得最直觀的技術成效。   

一、從關系型數據庫到 TDengine

與一般的數據存儲要求不同,該項目感知層的存儲方案對數據讀寫頻度和低延時要求更高,同時由于數據量極大,還需要更高的存儲效率。

以重點排污單位自動監測 30 秒數據為例,全省近 5000 個監測點,每個監測點 3-5 個監測因子。多年來,我們一直采用關系型數據庫進行數據存儲,最多只能保留 3-5 天的數據,不得不按天刪除舊數據。之后考慮過采用 PostgreSQL 的 TimescaleDB 擴展,但卻不滿足政務信息化自主可控的要求;還曾嘗試過使用國內的某款時序數據庫產品,但其在性能及通用接口方面離我們的要求尚有一定的距離。

在初次接觸 TDengine Database 之時,因為產品太新了,我們還有點遲疑。但好在 TDengine 易于安裝、文檔齊備,作為一款開源產品,產品支持卻并不弱,還有專門的微信技術群,出現問題時會有濤思數據的技術人員或社區大佬提供幫助,使我們的整個評估過程非常順暢。最終,經過很長一段時間的研究和測試,我們選定了這款國產開源時序數據庫 TDengine。   

二、TDengine 的落地實踐與性能表現

在實際落地時,我們選用了 3 臺 4 核 8G、1 臺 8 核 16G、1 臺 8 核 32G 的服務器,—共 5 臺,搭建了一個 5 節點單副本的集群。目前已投入運營的業務線有三條,包括重點排污單位自動監測系統 30 秒數據報送、重型柴油車 OBD 實時數據報送和 VOCs 排污企業實時監測數據報送,后續還會陸續增加各種環境質量自動監測的數據報送業務,以及數據分析和數據應用業務。


從 2021 年 4 月運行至今(2022 年 1 月),本項目共創建了 4 張超級表以及 67,453 張子表。

表1
表2
表3

接下來,我們以重點排污企業廢氣排放 30 秒監測數據為例說明存儲情況。

st_om_rtd_gas 表是我們針對廢氣處理所創建的超級表,其中存儲了 76.5 億條數據(四張超級表總共 160 億條數據),分散在 19,419 張子表中,平均每張表 39 萬行。由于 TDengine 超級表特性,再加上列式存儲和超高的壓縮能力,這些數據僅占用了 240G 內存,不僅幫助我們節省了大量的存儲空間,也為數據查詢性能打下了良好的基礎。

在查詢方面,我們主要的邏輯是獲取近期的最大系列值,過濾后按不同監測因子的限定值獲取監測因子列表,再通過降采樣查詢該監測因子小時最大值、日最大值或月最大值。之后將查詢范圍瞄準具體的排放口,確定一段時間以來排污濃度或流量偏高的排放口列表,再對該排放口具體時間范圍內每一個排放濃度進行分析,獲得其排污異常的詳細信息。TDengine 以優異的性能非常成功地完成了上述查詢分析過程。

反饋到具體操作上,主要有如下三種情況:

SELECT top(val_zs, 20) FROM st_om_rtd_gas
WHERE moni_time >= NOW - 2h
GROUP BY pol_code;
76 億行的超級表,分組 TOP 查詢用時 0.2 秒

對于 76 億行的超級表,分組 TOP 查詢僅用了 0.2 秒。

SELECT MAX(val_zs) FROM st_om_rtd_gas
WHERE moni_time >= NOW -2h AND pol_code in ('002’,'‘010')
INTERVAL(1h) GROUP BY ps_code,p_code,pol_code;
返回 2,968 行用時 0.06 秒

基于 TDengine 返回 2,968 行,僅用了 0.06 秒。

接著從返回結果中抽出可疑的排放口列表,查看具體的排放情況:

SELECT val, val_zs, ps_name, p_name, pol_name, strength_unit FROM st_om_rtd_gas 
WHERE ps_code = 440000000168 AND p_code = 1101 AND moni_time >= '2021-12-27 00:00:00.000';
返回 5,280 行數據用時 0.1 秒

返回 5,280 行數據,僅用了 0.1 秒,性能完全超出了我們的預期。

值得一提的是,由于目前我們使用的是自己機房的虛擬機,硬件使用時間較久,但是 TDengine 的性能仍然不受影響。近期我們打算遷移到政務云平臺,相信 TDengine 的性能將再上一個臺階。   

三、下一步,基于 TDengine 落實邊緣層建設

使用 TDengine Database 數月以來,其無論是在 CPU 負載、數據存儲效率上,還是在數據采集效率、數據查詢效率上都遠高于期望值,滿足實時數倉的所有要求。在生態環境數據治理過程中,TDengine 強化了感知層建設,能夠精準及時地發現污染排放中的問題,在污染防控場景下具有極大的潛力。

下一步,我們將充分利用 TDengine 的強大功能,落實邊緣層建設,具體實現思路為:通過 TDengine 的訂閱功能捕捉數據的異動信息,然后在邊緣側立即處理,從而完全補上當前實時污染防控上的短板。

來而不往非禮也,在此寫下這篇用戶案例,預祝 TDengine 能夠越來越好,也希望有越來越多的用戶能加入到 TDengine 的社區互動當中。

作者簡介:

沈華烈,系統分析師,有近 20 年環境信息化從業經歷。目前就職于廣東省環境科學研究院環境信息研究所。