隨著 5G 基站等通信工程的加快建設,城市治理、城市安全管理成為熱門話題,物聯設備在我們的社會中扮演的角色也變得越來越重要,智慧燃氣、智能電表、智能井蓋、智能交通等項目在眾多城市開始布局,隨著一眾智慧城市項目的深入落地,海量時序數據的高效處理和成本管控也成為一個待解的難題。
為幫助大家尋找解(jie)決(jue)上(shang)述問題的(de)最優解(jie),我們(men)匯總了四家比較具有代表性(xing)的(de)智(zhi)慧城市升級項目(mu)的(de)架構改造案例,一起(qi)來(lai)看(kan)看(kan)他們(men)都是(shi)如何做的(de)。
SENSORO x TDengine
“我(wo)們(men)(men)進行(xing)的(de)(de)(de)(de)數據庫調研測試結果(guo)顯示,TDengine 的(de)(de)(de)(de)空(kong)間(jian)占用(yong)只有 Druid 的(de)(de)(de)(de) 60%(沒有計算(suan) Druid 使用(yong)的(de)(de)(de)(de) Deep Storage)。針對單(dan)一設備的(de)(de)(de)(de)查詢與聚和(he)的(de)(de)(de)(de)響(xiang)應時間(jian)比 Druid 有倍(bei)數的(de)(de)(de)(de)提升,尤其時間(jian)跨度較久時差距更明顯(在(zai)十倍(bei)以上),同時 Druid 的(de)(de)(de)(de)響(xiang)應時間(jian)方差也(ye)較大(da)。在(zai)實際業務環境中,我(wo)們(men)(men)創建了多列(lie)(lie)的(de)(de)(de)(de)超級表(biao),雖然會存在(zai)大(da)量的(de)(de)(de)(de)空(kong)列(lie)(lie),但(dan)得益于(yu) TDengine 的(de)(de)(de)(de)優化,能達(da)到恐怖的(de)(de)(de)(de) 0.01 的(de)(de)(de)(de)壓(ya)縮(suo)率,簡單(dan)計算(suan)下來大(da)約需(xu)要 3.67GB 每億條(tiao)。”
業務背景
SENSORO 面向城(cheng)市基(ji)礎設施與核(he)心要(yao)(yao)素(su)提(ti)供全域數(shu)字化服務方案,建立城(cheng)市級傳(chuan)感(gan)器網(wang)絡所(suo)涉(she)及(ji)的(de)傳(chuan)感(gan)器種類(lei)十分多(duo)樣(yang)(yang),由此產生(sheng)的(de)數(shu)據(ju)量也十分龐大。在系統(tong)(tong)開發初期,SENSORO 先是選擇了 Apache Druid 作(zuo)(zuo)為(wei)存儲傳(chuan)感(gan)數(shu)據(ju)的(de)數(shu)據(ju)庫,然而在使(shi)用過程中卻遇(yu)到了各種各樣(yang)(yang)的(de)問題,這使(shi)得其將目光(guang)轉移(yi)到了 TDengine 上,但因為(wei)平臺(tai)涉(she)及(ji)的(de)特(te)殊(shu)數(shu)據(ju)模(mo)型,合(he)作(zuo)(zuo)便一直擱置了下來。隨(sui)后 TDengine 經過了多(duo)個版本迭代,支持了 join 查詢,而 SENSORO 的(de)數(shu)據(ju)模(mo)型也發生(sheng)了變化,遷(qian)移(yi)到 TDengine 時不再需要(yao)(yao)做出很多(duo)的(de)系統(tong)(tong)模(mo)塊改動,由此雙方的(de)合(he)作(zuo)(zuo)也開始快速展開。
架構圖
SENSORO 基(ji)于 TDengine 助力基(ji)層(ceng)政府打造(zao)數(shu)字化(hua)應用標桿
北京智能建筑 x TDengine
“TDengine 幫助我們(men)在(zai)(zai)邊緣(yuan)(yuan)側(ce)解決了(le)(le)一個(ge)很大的(de)(de)(de)問題(ti),即(ji)邊緣(yuan)(yuan)存儲的(de)(de)(de)問題(ti)。因為很多時候邊緣(yuan)(yuan)是(shi)布署在(zai)(zai)資(zi)源(yuan)比(bi)較(jiao)少的(de)(de)(de)機器上(shang)面,甚(shen)至是(shi) ARM 的(de)(de)(de)工業(ye)(ye)盒子上(shang)面,在(zai)(zai)資(zi)源(yuan)使用(yong)上(shang)非常的(de)(de)(de)苛刻(ke),而現在(zai)(zai)得益于 TDengine 超強(qiang)的(de)(de)(de)壓(ya)縮算(suan)法,我們(men)使用(yong)非常小的(de)(de)(de)存儲空間就存儲了(le)(le)幾千(qian)萬數(shu)據(ju)(ju),壓(ya)縮率遠超 1/20,在(zai)(zai)單機上(shang)面布署一個(ge) TDengine 服務(wu)器就可以(yi)輕(qing)輕(qing)松松地存儲上(shang)億的(de)(de)(de)數(shu)據(ju)(ju)。此外它還擁有超強(qiang)的(de)(de)(de)計(ji)算(suan)能力,占用(yong)的(de)(de)(de)資(zi)源(yuan)也非常小,在(zai)(zai)我們(men)的(de)(de)(de)業(ye)(ye)務(wu)中千(qian)萬級數(shu)據(ju)(ju)檢索時間達到(dao)了(le)(le)毫秒級,從用(yong)戶角度來說(shuo)產品體驗非常好。”
業務背景
北(bei)京智(zhi)能建筑是(shi)北(bei)京市在智(zhi)能建筑和(he)智(zhi)慧城市領域的(de)創新平臺,同時也是(shi)冬奧科技平臺公司、智(zhi)慧冬奧國家重點項目設計(ji)(ji)(ji)單位(wei)和(he)核心實(shi)施單位(wei)。在邊(bian)緣側(ce)采集數(shu)據存儲方案中,其面臨著在有限的(de)計(ji)(ji)(ji)算資源下,如何實(shi)現(xian)最高效(xiao)的(de)數(shu)據存儲、分析和(he)計(ji)(ji)(ji)算的(de)問(wen)題。經過調研與(yu)測試,其最終選擇根據業務需(xu)求靈活搭(da)配使(shi)用 TDengine 與(yu) SQLite——由 TDengine 處理時序數(shu)據,SQLite 處理關系(xi)數(shu)據,以此更好地實(shi)現(xian)邊(bian)緣側(ce)的(de)數(shu)據自治(zhi)。
架構圖
一(yi)個(ge)服務器存儲上億數據,TDengine 在北京(jing)智能建(jian)筑(zhu)邊緣存儲的(de)應用(yong)
交通數據資源管理系統 x TDengine
“所有車(che)(che)輛(liang)最(zui)(zui)新位置(zhi)信(xin)息的(de)(de)查詢(xun)(xun)是(shi)交通(tong)運行(xing)監控(kong)中的(de)(de)重(zhong)中之重(zhong),最(zui)(zui)初‘使用(yong)何(he)種查詢(xun)(xun)語(yu)句實(shi)現高(gao)效(xiao)查詢(xun)(xun)’是(shi)非常困擾我們的(de)(de)一件事,后面在 TDengine 社區團隊(dui)的(de)(de)幫(bang)助下,我們利用(yong)了(le)(le)(le)隱藏字段(duan)名 tbname 和 group by 方(fang)法,高(gao)效(xiao)地查詢(xun)(xun)了(le)(le)(le)車(che)(che)輛(liang)的(de)(de)最(zui)(zui)新定位信(xin)息。在頻繁(fan)查詢(xun)(xun)的(de)(de)情(qing)況下,接(jie)近六萬輛(liang)車(che)(che)的(de)(de)位置(zhi)信(xin)息,只(zhi)用(yong)了(le)(le)(le)不到 1 秒的(de)(de)查詢(xun)(xun)時間,簡單而又高(gao)效(xiao),完(wan)全符合我們的(de)(de)業務需求;在數據(ju)(ju)統(tong)計分析上,一個 64 天數據(ju)(ju)量的(de)(de)表,進(jin)行(xing)每(mei)日數據(ju)(ju)條(tiao)數的(de)(de)降維統(tong)計,所需時間也(ye)不到 1 秒。”
業務背景
為(wei)了強化(hua)全市交(jiao)通(tong)運(yun)輸(shu)管(guan)理、統籌綜合交(jiao)通(tong)發展、提升交(jiao)通(tong)運(yun)行和管(guan)理效率,某(mou)市級(ji)管(guan)理單位建(jian)立了大(da)交(jiao)通(tong)數(shu)(shu)(shu)據(ju)(ju)(ju)資源管(guan)理系統及相關(guan)應用(yong) “一(yi)圖一(yi)庫”。其(qi)(qi)中“一(yi)庫”部(bu)(bu)分(fen)主(zhu)要內容包括(kuo):數(shu)(shu)(shu)據(ju)(ju)(ju)接入、數(shu)(shu)(shu)據(ju)(ju)(ju)存(cun)儲、數(shu)(shu)(shu)據(ju)(ju)(ju)共享;“一(yi)圖”部(bu)(bu)分(fen)主(zhu)要內容包括(kuo):GIS 信(xin)息及其(qi)(qi)關(guan)聯數(shu)(shu)(shu)據(ju)(ju)(ju)信(xin)息在二維、三維地(di)圖上(shang)的形象表達。在數(shu)(shu)(shu)據(ju)(ju)(ju)中臺的建(jian)設中,存(cun)在大(da)量(liang)的時序(xu)(xu)數(shu)(shu)(shu)據(ju)(ju)(ju)應用(yong)場景,其(qi)(qi)中最(zui)為(wei)關(guan)鍵的就是車輛運(yun)行產生的時序(xu)(xu)數(shu)(shu)(shu)據(ju)(ju)(ju)的存(cun)儲與(yu)使用(yong)。為(wei)了實現高效的業務處理, 研發人員(yuan)決定從 InfluxDB、ClickHouse 和 TDengine 三款時序(xu)(xu)數(shu)(shu)(shu)據(ju)(ju)(ju)庫(Time Series Database)中進行選型調(diao)研,最(zui)終憑借強大(da)的產品力,TDengine 脫穎而出。
架構搭建上的考慮
由(you)于(yu)該系統業務開發框架(jia)使(shi)用的是 Srping 框架(jia),在(zai)使(shi)用 TAOS-JDBCDriver 進行(xing)開發時,可以選擇兩種方(fang)式(shi)進行(xing)數據入庫(ku)(ku)——JDBC-JNI 方(fang)式(shi)或者是 JDBC-RESTful 方(fang)式(shi)。在(zai) TDengine 官(guan)網,明(ming)確記載了(le)“JDBC-RESTful 性(xing)能是 JDBC-JNI 的 50%~90%”,因此,其(qi)選擇了(le) JDBC-JNI 方(fang)式(shi)進行(xing)多線程入庫(ku)(ku)——以數據庫(ku)(ku)連接池(Hikari、druid)+原生(sheng) SQL 執行(xing)寫入為主要寫入模式(shi)。
數字政通 x TDengine
“壓縮(suo)方面,通過(guo)查(cha)看 3 個節點(dian)的 Vnode 目錄(lu)總大(da)小,可以得知目前(qian)數(shu)據占(zhan)用總量(liang)(liang)(liang)為 8.7GB。而(er)從上述表結(jie)構我們也能看出實際入(ru)庫數(shu)據總量(liang)(liang)(liang)大(da)概為 203GB,經過(guo)壓縮(suo)后為 8.7GB,壓縮(suo)率達到(dao)了 4% 左右,大(da)幅節約了存儲(chu)成本。在查(cha)詢(xun)上,對(dui) 9 億數(shu)據量(liang)(liang)(liang)的超級表使用降采樣(yang)查(cha)詢(xun),展(zhan)示設(she)備指標日月年線,耗時僅僅 0.22 秒。”
業務背景
隨著智慧城市的加速建設,物聯設備的管理問題凸顯,為此,數字政通研發“城市管理物聯網平臺”對物聯網設備實行監督,提供各類設備的實時監測數據及報警數據,進一步滿足各類設備的數據分析、關聯分析、歷史分析、對比分析等需求。簡單來講就是通過鳥瞰整體數據來發現設備問題,便于及時派單處理,助力智慧城市管理。面對海量物聯網數據的處理,TDengine 的高效存儲給了數字政通相當大的助力。
架構圖
助力 60+ 市區管理建設,TDengine 聯(lian)手數字政通打(da)造智(zhi)慧城市平(ping)臺
結語
通過上面的幾大(da)案(an)(an)例我(wo)們(men)可以看到,在(zai)解決海量(liang)時序(xu)(xu)數(shu)據(ju)(ju)處理效率低(di)、處理成本(ben)高等問題上,關(guan)鍵(jian)點就是(shi)要選對合適的時序(xu)(xu)數(shu)據(ju)(ju)庫(ku)(ku)(Time Series Database),當前(qian)市面上時序(xu)(xu)數(shu)據(ju)(ju)庫(ku)(ku)產品眾多,在(zai)性能提(ti)升和降低(di)資源消耗上究竟誰能更勝(sheng)一籌?如(ru)果你(ni)也(ye)在(zai)思考這一問題,那或許、這兩篇(pian)文章能給到你(ni)答案(an)(an)。