六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

解決海量時序數(shù)據(jù)的存儲和計算,TDengine在智慧環(huán)保上的應(yīng)用

中科惠軟 陳繼宇

2020-07-30 / ,

小 T 導(dǎo)讀:中科惠軟的“智慧環(huán)?!蔽锫?lián)網(wǎng)應(yīng)用項目采用了自研的WisoftETL中間件,引入了TDengine Database解決了大量時序類數(shù)據(jù)的讀寫問題,已完全滿足其智慧環(huán)保項目海量時間序列監(jiān)測數(shù)據(jù)存儲和計算。

場景介紹

中科惠軟承建的A城市“智慧環(huán)保”物聯(lián)網(wǎng)應(yīng)用項目需要采集各類感知設(shè)備產(chǎn)生的監(jiān)測數(shù)據(jù)和監(jiān)控設(shè)備各種運行狀態(tài),監(jiān)測數(shù)據(jù)包括空氣質(zhì)量、水環(huán)境質(zhì)量、渣土場和渣土車監(jiān)測、施工工地揚塵監(jiān)測等實時監(jiān)測數(shù)據(jù)。并且需要把每時每刻監(jiān)控的數(shù)據(jù)記錄存儲下來,用于生態(tài)環(huán)境大數(shù)據(jù)分析和城市環(huán)境質(zhì)量預(yù)測預(yù)報分析計算。

項目每天采集各類監(jiān)測數(shù)據(jù)2億余條,如果使用公司原架構(gòu),可以勉強將每天的數(shù)據(jù)存儲下來,但如果需要快速查詢“某天下午兩點,A路段有多少輛渣土車通過”這樣條件的多緯度分組聚合查詢,那么采用傳統(tǒng)的數(shù)據(jù)庫就無法實現(xiàn)快速查詢需求。

考慮到各類感知監(jiān)測設(shè)備會時刻產(chǎn)生大量秒級和分鐘級監(jiān)測數(shù)據(jù)存儲和實時計算,關(guān)于海量時間序列數(shù)據(jù)存儲,經(jīng)過多個產(chǎn)品之間的性能和穩(wěn)定性方面對比,最終,采用了TDengine產(chǎn)品實現(xiàn)海量的生態(tài)環(huán)境監(jiān)測數(shù)據(jù)進行實時存儲、計算和大數(shù)據(jù)分析。

時序數(shù)據(jù)庫(Time-Series Database)選型

現(xiàn)今智慧環(huán)保領(lǐng)域使用海量的監(jiān)測數(shù)據(jù)進行大數(shù)據(jù)分析,發(fā)現(xiàn)深層次的環(huán)境問題,從而幫助污染源企業(yè)節(jié)能減排,增加效益。我公司選擇了InfluxDB和TDengine進行對比。

由于InfluxDB和TDengine集群版本都需要收費,最終選擇了單實例進行對比測試,開始準備兩臺配置參數(shù)一致的測試服務(wù)器進行多方面的應(yīng)用場景、穩(wěn)定性以及性能測試。

測試項TDengineInfluxDB
數(shù)據(jù)寫入性能1232729 條/秒294591條/秒
100萬條記錄讀取時間0.26秒6.1秒
1億條記錄按時間分組取均值時間2.671秒29.77秒

以上性能測試結(jié)果為測試環(huán)境結(jié)果,若與官方測試數(shù)據(jù)有偏差,敬請諒解。上述性能測試結(jié)果僅供參考。

InfluxDB需要借助kafka、MQTT等消息隊列中間件實現(xiàn)批量寫入,從而提升數(shù)據(jù)的寫入性能。綜合智能環(huán)保項目多方面應(yīng)用場景測試,結(jié)合我公司一段時間的穩(wěn)定性和性能方面測試,TDengine時序數(shù)據(jù)庫相對比較適合我公司智慧環(huán)保領(lǐng)域產(chǎn)品發(fā)展戰(zhàn)略,也考慮到后期智慧環(huán)保領(lǐng)域系統(tǒng)國產(chǎn)化需要,最終選型了TDengine產(chǎn)品。

TDengine業(yè)務(wù)應(yīng)用

數(shù)據(jù)流設(shè)計

整個數(shù)據(jù)采集延續(xù)了我公司之前的架構(gòu)設(shè)計,從外部系統(tǒng)或終端監(jiān)測設(shè)備采集數(shù)據(jù)沿用了我公司自研WisoftETL中間件產(chǎn)品。WisoftETL主要負責接收數(shù)據(jù)包和主動請求獲取數(shù)據(jù)包兩種方式,接收到原始數(shù)據(jù)后,根據(jù)定義的數(shù)據(jù)融合規(guī)則進行數(shù)據(jù)整合,將數(shù)據(jù)進行分類存儲至數(shù)據(jù)中心各類數(shù)據(jù)。在存儲時間序列數(shù)據(jù)時,充分利用TDengine中Avg、Count、Max、Min等聚合函數(shù)對一個或多個數(shù)據(jù)流進行實時聚合、統(tǒng)計以及計算等,并將計算出的衍生數(shù)據(jù)保存進 Tdengine新的數(shù)據(jù)表中,以便后續(xù)的操作。

部署及應(yīng)用

生產(chǎn)環(huán)境中我們選擇了三臺服務(wù)進行分布式部署,如官方所說一致,TDengine部署特別的簡單,在安裝過程中,會提示當前安裝的節(jié)點是否要加入已經(jīng)存在的集群節(jié)點,輸入集群節(jié)點IP地址即可加入該集群節(jié)點。

項目初期規(guī)劃了2000多個空氣監(jiān)測站點、500個移動監(jiān)測點以及4000多輛渣土車,充分利用TDengine的Stable多表聚合為每類監(jiān)測設(shè)備創(chuàng)建超級表,為每個設(shè)備創(chuàng)建了子表。

–創(chuàng)建超級表

create table t_realtime_gps_partcar_his (gpstimestamp timestamp, devphone nchar(20), platenum nchar(20), longitude nchar(20), latitude nchar(20), senddatetime timestamp, carspeed nchar(20), isonline nchar(20), ) tags (tag1 nchar(20))

–創(chuàng)建子表

create table t_realtime_gps_40155712660 using t_realtime_gps_partcar_his tags ('40155712660'); 
create table t_realtime_gps_40155712661 using t_realtime_gps_partcar_his tags ('40155712661');

為了滿足少部分監(jiān)測設(shè)備會定期的增加或者更換設(shè)備,由于部分設(shè)備會存在定期更換或增加監(jiān)測設(shè)備數(shù)據(jù),我們在架構(gòu)設(shè)計時還引用了TDengine根據(jù)數(shù)據(jù)自動創(chuàng)建子表。

–超級表寫入數(shù)據(jù)時,如果子表不存在,則自動根據(jù)超級表自動創(chuàng)建子表

insert into zyml.t_realtime_gps_40155712669 using zyml.t_realtime_gps_partcar_his tags ('40155712669') values (gpstimestamp, devphone, platenum, longitude, latitude, senddatetime, carspeed , isonline) ('2019-07-25 04:55:05.457752', '40155712669', '23477', '117.04634', '36.72716', '2019-07-25 04:54:57.0', '0', '0');

數(shù)據(jù)流式計算

1. 數(shù)據(jù)資產(chǎn)實時分析

以往智慧環(huán)保項目我們采用傳統(tǒng)數(shù)據(jù)庫架構(gòu)設(shè)計,對在海量秒級監(jiān)測數(shù)據(jù)實時統(tǒng)計和分析耗時長、CPU和內(nèi)存利用率低、磁盤IO超負荷。在a市智慧環(huán)保物聯(lián)網(wǎng)應(yīng)用項目我們創(chuàng)新使用了TDengine時序數(shù)據(jù)庫,利用了實時流式計算相關(guān)函數(shù),解決了大數(shù)據(jù)存儲和計算,降低了代碼開發(fā)復(fù)雜度,讓運維工作變得極為簡單,從而大大的降低了運營成本。

解決海量時序數(shù)據(jù)的存儲和計算,TDengine在智慧環(huán)保上的應(yīng)用 - TDengine Database 時序數(shù)據(jù)庫

2. 實時報警流式計算

通過采集污染源企業(yè)廢氣、廢水和能耗監(jiān)測數(shù)據(jù),對每分鐘的監(jiān)測數(shù)據(jù)進行實時計算每個污染物每個小時的平均值、最大值、最小值、排放量累計值。我們主要使用TDengine定義自動滑動計算實現(xiàn)小時監(jiān)測數(shù)據(jù)計算,并將實時計算結(jié)果數(shù)據(jù)存儲新的pmcaemhourdata表中,可供其他業(yè)務(wù)平臺重復(fù)利用。

create table pmcaemhourdata as select avg (codcraudit),max (codcraudit),min (codcraudit),sum(codcrpfl),avg(codcrstand) from pmcaemminuteata interval (60m) sliding(60m)

利用實時計算結(jié)果數(shù)據(jù),結(jié)合預(yù)先設(shè)定的預(yù)警規(guī)則(如超標預(yù)警、監(jiān)測數(shù)值邏輯錯誤預(yù)警、在線率過低預(yù)警等)對污染源監(jiān)測數(shù)據(jù)進行實時預(yù)警,并且將實時預(yù)警數(shù)據(jù)分發(fā)給相關(guān)業(yè)務(wù)負責人(APP終端),方便業(yè)務(wù)負責人及時發(fā)現(xiàn)環(huán)境問題,提升環(huán)境治理能力。

解決海量時序數(shù)據(jù)的存儲和計算,TDengine在智慧環(huán)保上的應(yīng)用 - TDengine Database 時序數(shù)據(jù)庫
解決海量時序數(shù)據(jù)的存儲和計算,TDengine在智慧環(huán)保上的應(yīng)用 - TDengine Database 時序數(shù)據(jù)庫

數(shù)據(jù)存儲

A市智慧環(huán)保物聯(lián)網(wǎng)應(yīng)用項目由于資源緊張,信息中心在項目前期只能提供廉價的機械硬盤形式的物理存儲服務(wù)器,后期將采購高性能的SSD固態(tài)硬盤用于擴展數(shù)據(jù)存儲。項目團隊鑒于實際情況,在項目建設(shè)過程中充分利用TDengine存儲結(jié)構(gòu)的優(yōu)勢,對每張生態(tài)環(huán)境數(shù)據(jù)表(如站點監(jiān)測秒級數(shù)據(jù)表、廢水廢氣監(jiān)測秒級數(shù)據(jù)表)維護索引,保存每個數(shù)據(jù)塊在文件中的偏移量,起始時間、數(shù)據(jù)點數(shù)、壓縮算法等信息。

每個數(shù)據(jù)文件設(shè)置為保存一周時間的數(shù)據(jù)。這樣一來一個表的數(shù)據(jù)會分布在多個數(shù)據(jù)文件中。查詢時,根據(jù)給定的時間段,TDengine將計算出查找的數(shù)據(jù)會在哪個數(shù)據(jù)文件,然后進行讀取,這樣大幅減少了硬盤操作次數(shù)。多個數(shù)據(jù)文件的設(shè)計還有利于數(shù)據(jù)同步、數(shù)據(jù)恢復(fù)、數(shù)據(jù)自動刪除操作,更有利于數(shù)據(jù)按照新舊程度在不同物理介質(zhì)上存儲。

例如:歷史的生態(tài)環(huán)境數(shù)據(jù)存放在大容量但慢速的機械硬盤上,而最新的數(shù)據(jù)則存儲在高性能的SSD固態(tài)硬盤上。通過TDengine這樣的存儲設(shè)計,TDengine能夠?qū)⒂脖P的隨機讀取幾乎降為零,從而大幅提升環(huán)境監(jiān)測數(shù)據(jù)的寫入和查詢效率,讓TDengine即便在很廉價的存儲設(shè)備上也能有著超強的性能。

總結(jié)

經(jīng)過了一段時間的生產(chǎn)環(huán)境應(yīng)用,對TDengine Database各項指標的表現(xiàn)非常滿意,現(xiàn)已完全滿足我公司智慧環(huán)保項目海量時間序列監(jiān)測數(shù)據(jù)存儲和計算。但希望后期版本可以支持對歷史數(shù)據(jù)修改(實際用戶會對分鐘級、小時級監(jiān)測數(shù)據(jù)進行修正),以及支持Schema動態(tài)調(diào)整或無需定義的支持。

作者簡介陳繼宇,智慧應(yīng)用部項目經(jīng)理,大數(shù)據(jù)分布式中間件開源軟件愛好者,2012年加入江蘇中科惠軟信息技術(shù)有限公司,主要從事環(huán)保大數(shù)據(jù)產(chǎn)品設(shè)計及應(yīng)用,通過采用大數(shù)據(jù)處理、計算和分析等技術(shù),構(gòu)建智慧環(huán)保大數(shù)據(jù)資源中心,以及環(huán)境監(jiān)測和生態(tài)環(huán)境管理等數(shù)據(jù)業(yè)務(wù)場景應(yīng)用。曾擔任過多個地市智慧環(huán)保大數(shù)據(jù)平臺項目整體設(shè)計及交付。

本文首發(fā)于:https://mp.weixin.qq.com/s/06hsc5fXNrISyTxXmNEgNA