隨著 5G 基站等通信工程的加快建設,城市治理、城市安全管理成為熱門話題,物聯設備在我們的社會中扮演的角色也變得越來越重要,智慧燃氣、智能電表、智能井蓋、智能交通等項目在眾多城市開始布局,隨著一眾智慧城市項目的深入落地,海量時序數據的高(gao)效處理和成本(ben)管控也成為一個待解的難題(ti)。
為幫(bang)助大家(jia)尋找解(jie)(jie)決上(shang)述(shu)問題的(de)(de)最(zui)優解(jie)(jie),我們(men)匯總(zong)了四家(jia)比(bi)較具有代表性的(de)(de)智慧城市升級(ji)項(xiang)目的(de)(de)架構改(gai)造案例,一起(qi)來看看他們(men)都是如何(he)做的(de)(de)。
SENSORO x TDengine
“我們進行的數據庫調研測試結果顯示,TDengine (Time Series Database,TSDB) 的(de)(de)(de)(de)空間(jian)(jian)占用只(zhi)有 Druid 的(de)(de)(de)(de) 60%(沒有計算(suan) Druid 使用的(de)(de)(de)(de) Deep Storage)。針對單一設備的(de)(de)(de)(de)查(cha)詢與聚和(he)的(de)(de)(de)(de)響(xiang)應時(shi)間(jian)(jian)比 Druid 有倍(bei)數的(de)(de)(de)(de)提(ti)升,尤其(qi)時(shi)間(jian)(jian)跨度較久時(shi)差(cha)(cha)距(ju)更明顯(在十(shi)倍(bei)以上(shang)),同(tong)時(shi) Druid 的(de)(de)(de)(de)響(xiang)應時(shi)間(jian)(jian)方差(cha)(cha)也較大。在實際(ji)業務環(huan)境(jing)中(zhong),我(wo)們創建了多列的(de)(de)(de)(de)超級表,雖然(ran)會(hui)存在大量的(de)(de)(de)(de)空列,但得益(yi)于 TDengine 的(de)(de)(de)(de)優(you)化,能達到恐怖(bu)的(de)(de)(de)(de) 0.01 的(de)(de)(de)(de)壓(ya)縮率,簡單計算(suan)下來大約需要 3.67GB 每(mei)億條。”
業務背景
SENSORO 面向城市基礎設施與核心要素提供全域數字化服務方案,建立城市級傳感器網絡所涉及的傳感器種類十分多樣,由此產生的數據量也十分龐大。在系統開發初期,SENSORO 先是選擇了 Apache Druid 作為存儲傳感數據的實時數據庫,然(ran)而在使(shi)用(yong)過(guo)(guo)程中卻遇到(dao)(dao)了(le)各(ge)種各(ge)樣的(de)問題,這(zhe)使(shi)得其將目(mu)光(guang)轉移到(dao)(dao)了(le) TDengine 上(shang),但因為平臺涉及的(de)特殊數據模型,合作(zuo)便一直擱置(zhi)了(le)下來。隨后(hou) TDengine 經過(guo)(guo)了(le)多(duo)個版(ban)本迭代,支持了(le) join 查詢,而 SENSORO 的(de)數據模型也發生了(le)變(bian)化,遷移到(dao)(dao) TDengine 時不(bu)再需要做出很多(duo)的(de)系(xi)統模塊(kuai)改(gai)動,由此雙方的(de)合作(zuo)也開始快速展開。
架構圖

北京智能建筑 x TDengine
“TDengine 幫助我(wo)們在(zai)邊(bian)緣側解決了一個很(hen)(hen)大的(de)問題,即(ji)邊(bian)緣存(cun)儲的(de)問題。因為很(hen)(hen)多時(shi)候邊(bian)緣是布署在(zai)資源比(bi)較少的(de)機器上(shang)面,甚至是 ARM 的(de)工業盒子(zi)上(shang)面,在(zai)資源使用上(shang)非(fei)常的(de)苛刻,而現(xian)在(zai)得益(yi)于 TDengine 超強的(de)壓(ya)縮(suo)算法,我(wo)們使用非(fei)常小的(de)存(cun)儲空間就(jiu)存(cun)儲了幾(ji)千萬數(shu)據,壓(ya)縮(suo)率(lv)遠超 1/20,在(zai)單機上(shang)面布署一個 TDengine 服務器就(jiu)可以(yi)輕輕松松地存(cun)儲上(shang)億(yi)的(de)數(shu)據。此(ci)外(wai)它還擁有超強的(de)計算能力,占用的(de)資源也非(fei)常小,在(zai)我(wo)們的(de)業務中(zhong)千萬級(ji)(ji)數(shu)據檢索時(shi)間達(da)到了毫秒級(ji)(ji),從用戶(hu)角度來說(shuo)產品體驗非(fei)常好。”
業務背景
北京智(zhi)能建筑是北京市在智(zhi)能建筑和(he)智(zhi)慧城市領域的(de)(de)創新平臺,同時也是冬(dong)(dong)奧科(ke)技平臺公司、智(zhi)慧冬(dong)(dong)奧國家重點項(xiang)目(mu)設計(ji)單位和(he)核(he)心(xin)實(shi)施單位。在邊緣(yuan)(yuan)側(ce)采集數(shu)(shu)(shu)據(ju)存(cun)儲方(fang)案中,其面臨著在有(you)限(xian)的(de)(de)計(ji)算資源下,如何實(shi)現最高(gao)效的(de)(de)數(shu)(shu)(shu)據(ju)存(cun)儲、分析和(he)計(ji)算的(de)(de)問題。經過調(diao)研與測試,其最終選(xuan)擇根據(ju)業務需(xu)求靈活(huo)搭配使(shi)用 TDengine 與 SQLite——由 TDengine 處理(li)時序數(shu)(shu)(shu)據(ju),SQLite 處理(li)關系數(shu)(shu)(shu)據(ju),以此更好(hao)地實(shi)現邊緣(yuan)(yuan)側(ce)的(de)(de)數(shu)(shu)(shu)據(ju)自治。
架構圖

交通數據資源管理系統 x TDengine
“所有車(che)輛最新位置信(xin)息(xi)的(de)(de)(de)查(cha)詢(xun)是交(jiao)通運行(xing)(xing)監控中的(de)(de)(de)重中之重,最初(chu)‘使用(yong)何(he)種查(cha)詢(xun)語句實(shi)現高效(xiao)(xiao)查(cha)詢(xun)’是非常(chang)困擾我們(men)的(de)(de)(de)一(yi)件(jian)事,后面(mian)在(zai) TDengine 社(she)區團隊的(de)(de)(de)幫(bang)助(zhu)下(xia),我們(men)利用(yong)了(le)隱藏字段名(ming) tbname 和(he) group by 方法,高效(xiao)(xiao)地查(cha)詢(xun)了(le)車(che)輛的(de)(de)(de)最新定(ding)位信(xin)息(xi)。在(zai)頻繁查(cha)詢(xun)的(de)(de)(de)情況下(xia),接(jie)近六萬輛車(che)的(de)(de)(de)位置信(xin)息(xi),只(zhi)用(yong)了(le)不(bu)到(dao) 1 秒的(de)(de)(de)查(cha)詢(xun)時(shi)間,簡單而(er)又高效(xiao)(xiao),完全符合(he)我們(men)的(de)(de)(de)業務需求;在(zai)數據(ju)(ju)統計分(fen)析上,一(yi)個 64 天數據(ju)(ju)量(liang)的(de)(de)(de)表,進行(xing)(xing)每日(ri)數據(ju)(ju)條數的(de)(de)(de)降維統計,所需時(shi)間也(ye)不(bu)到(dao) 1 秒。”
業務背景
為了強化全市交通運輸管理、統籌綜合交通發展、提升交通運行和管理效率,某市級管理單位建立了大交通數據資源管理系統及相關應用 “一圖一庫”。其中“一庫”部分主要內容包括:數據接入、數據存儲、數據共享;“一圖”部分主要內容包括:GIS 信息及其關聯數據信息在二維、三維地圖上的形象表達。在數據中臺的建設中,存在大量的時序數據應用場景,其中最為關鍵的就是車輛運行產生的時序數據的存儲與使用。為了實現高效的業務處理, 研發人員決定從 InfluxDB、ClickHouse 和 TDengine 三款時序數據庫(Time Series Database)中進行選型調研,最終憑借強大的產品力,TDengine 脫穎而出。
架構搭建上的考慮
由于該系統業務(wu)開(kai)發框(kuang)架(jia)(jia)使用(yong)的(de)是(shi) Srping 框(kuang)架(jia)(jia),在(zai)使用(yong) TAOS-JDBCDriver 進行開(kai)發時,可以(yi)選(xuan)擇(ze)兩種方式(shi)進行數(shu)據(ju)入(ru)庫(ku)——JDBC-JNI 方式(shi)或者是(shi) JDBC-RESTful 方式(shi)。在(zai) TDengine 官網,明確(que)記載了(le)“JDBC-RESTful 性能是(shi) JDBC-JNI 的(de) 50%~90%”,因此,其選(xuan)擇(ze)了(le) JDBC-JNI 方式(shi)進行多線程入(ru)庫(ku)——以(yi)數(shu)據(ju)庫(ku)連接(jie)池(chi)(Hikari、druid)+原(yuan)生 SQL 執(zhi)行寫(xie)入(ru)為主要寫(xie)入(ru)模式(shi)
數字政通 x TDengine
“壓縮(suo)方面(mian),通(tong)過查看(kan) 3 個節點的 Vnode 目錄總(zong)大小,可以得知(zhi)目前數(shu)(shu)據(ju)占(zhan)用(yong)總(zong)量(liang)為 8.7GB。而從(cong)上述(shu)表結構我們也能看(kan)出實(shi)際入庫(ku)數(shu)(shu)據(ju)總(zong)量(liang)大概(gai)為 203GB,經過壓縮(suo)后為 8.7GB,壓縮(suo)率達到(dao)了 4% 左右(you),大幅節約了存儲(chu)成本。在查詢(xun)上,對 9 億數(shu)(shu)據(ju)量(liang)的超(chao)級表使用(yong)降(jiang)采樣(yang)查詢(xun),展示設備指標(biao)日月年(nian)線,耗時僅僅 0.22 秒。”
業務背景
隨(sui)著智(zhi)慧城(cheng)市的加速建設(she)(she),物(wu)(wu)聯(lian)設(she)(she)備的管理(li)問題(ti)凸顯,為(wei)此,數(shu)字政通研發“城(cheng)市管理(li)物(wu)(wu)聯(lian)網平臺(tai)”對(dui)物(wu)(wu)聯(lian)網設(she)(she)備實(shi)行(xing)監(jian)(jian)督,提(ti)供各類設(she)(she)備的實(shi)時監(jian)(jian)測數(shu)據(ju)及(ji)報警數(shu)據(ju),進一步滿足各類設(she)(she)備的數(shu)據(ju)分析(xi)、關聯(lian)分析(xi)、歷史分析(xi)、對(dui)比分析(xi)等需求。簡單(dan)來講就(jiu)是通過鳥瞰整體數(shu)據(ju)來發現(xian)設(she)(she)備問題(ti),便于及(ji)時派單(dan)處理(li),助(zhu)(zhu)力智(zhi)慧城(cheng)市管理(li)。面對(dui)海量物(wu)(wu)聯(lian)網數(shu)據(ju)的處理(li),TDengine 的高效存儲給(gei)了數(shu)字政通相當大的助(zhu)(zhu)力。
架構圖

結語
通過上面的幾大案例我們可以看到,在解決海量時序數據處理效率低、處理成本高等問題上,關鍵點就是要選對合適的時序數據庫(Time Series Database,TSDB),當前市面上時序數據庫產品眾多,在性能提升和降低資源消耗上究竟誰能更勝一籌?如果你也在思考這一問題,那或許《寫入性能:TDengine 最高達到 InfluxDB 的 10.3 倍,TimeScaleDB 的 6.74 倍》、《查詢性能:TDengine 最高達到了 InfluxDB 的 37 倍、 TimescaleDB 的 28.6 倍》這兩篇文(wen)章能給到你答案。
如果你的項目中也存在難以調節的數據痛點問題,歡迎添加小T vx:tdengine1,我們(men)會(hui)邀請你(ni)加入 TDengine 時序數據交(jiao)流群(qun),和專業的解決方(fang)案(an)架構師(shi)點對點溝通,齊心協力攻克數據技術難題。


























