TDengine 3.0 自 2022 年 8 月于 TDengine 開發者大會正式亮相后,至今已經歷多次更新迭代,不久前發布的《3.2.1.0 發布!時間轉換函數+BI 集成+視圖正式上線!》為(wei)大家介紹了最新版本 3.2.1.0 的(de)優化(hua)(hua)詳情。可以說,經過產品研發人員和(he)社區(qu)用(yong)戶的(de)不斷努力,3.0 的(de)穩定性(xing)和(he)易用(yong)性(xing)也在不斷提(ti)升。在 3.0 版本中,我們對產品底層進(jin)行了全面(mian)的(de)變(bian)化(hua)(hua)和(he)調整(zheng),除(chu)了架構的(de)科學性(xing)和(he)高效性(xing)外,還將用(yong)戶體驗作為(wei)重點優化(hua)(hua)方向(xiang)之(zhi)一。
為了(le)讓大家更深(shen)入地(di)了(le)解(jie)到(dao) TDengine 3.0 在實際企業環境中的應用和效果,本篇文章匯總了(le)四(si)個(ge)真實的企業部(bu)署實踐案例,給到(dao)有需要的用戶參考(kao)。
中國地震臺網中心 x TDengine 3.0
“在地震監控(kong)領域的(de)(de)(de)可(ke)(ke)視(shi)化中,最重要的(de)(de)(de)就是展(zhan)(zhan)示信息的(de)(de)(de)完整性(xing)、實時性(xing)、可(ke)(ke)交互性(xing),靈活性(xing)。TDengine 高效的(de)(de)(de)查詢能力以(yi)(yi)及簡單(dan)易用的(de)(de)(de) SQL 語句可(ke)(ke)以(yi)(yi)很方便(bian)的(de)(de)(de)完成(cheng)上述工(gong)作。通過網頁展(zhan)(zhan)示工(gong)具(ju)調用 TDengine 的(de)(de)(de) SQL,我(wo)們完成(cheng)了展(zhan)(zhan)示地震事(shi)(shi)件(jian)的(de)(de)(de)主看板(ban):看板(ban)中的(de)(de)(de)地圖可(ke)(ke)以(yi)(yi)展(zhan)(zhan)示臺站的(de)(de)(de)每秒峰值記錄,點擊近期(qi)地震事(shi)(shi)件(jian)便(bian)可(ke)(ke)以(yi)(yi)進行一段時間(例如(ru)該地震發生時刻前 1min 和后 2min)內的(de)(de)(de)地震數據回放。”
業務背景
近(jin)年來,隨著(zhu)地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)臺站(zhan)密集建設(she),臺站(zhan)儀(yi)器(qi)采集匯入(ru)中國(guo)地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)臺網中心(xin)的(de)(de)地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)波形(xing)數(shu)據(ju)(ju)(ju)也增長了一個(ge)數(shu)量(liang)級。地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)波形(xing)數(shu)據(ju)(ju)(ju)主要是指由國(guo)家地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)臺站(zhan)、各省區域地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)臺網等(deng)地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)觀測(ce)網絡(luo)系統中地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)計采集并傳回中心(xin)的(de)(de)數(shu)據(ju)(ju)(ju),具有典型的(de)(de)時序(xu)數(shu)據(ju)(ju)(ju)特征(zheng),是開展地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)監測(ce)預(yu)警、數(shu)據(ju)(ju)(ju)分(fen)析與(yu)(yu)挖掘、地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)異常研判等(deng)應用的(de)(de)基礎材料。為滿足地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)預(yu)警數(shu)據(ju)(ju)(ju)存(cun)儲、檢(jian)索和處(chu)理的(de)(de)建設(she)與(yu)(yu)集成(cheng)需求,以(yi)及響(xiang)應國(guo)家國(guo)產軟件自主可(ke)控(kong)的(de)(de)號召,中國(guo)地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)臺網中心(xin)決定選用國(guo)產數(shu)據(ju)(ju)(ju)庫 TDengine 來存(cun)儲和處(chu)理地(di)(di)(di)(di)(di)震(zhen)(zhen)(zhen)波形(xing)數(shu)據(ju)(ju)(ju)。
架構圖

改造效果
該項目目前(qian)使(shi)用的(de)(de)是 3.0.6.0 版本的(de)(de) 5 節點集(ji)群,單臺(tai)服務(wu)器配(pei)置為:48CPU(s), 192GB 內(nei)存(cun) ,500GB SSD + 1.2TB *6HDD 硬盤。項目運行(xing)至今,TDengine 接入的(de)(de)原(yuan)始數(shu)據包每天約(yue) 900GB,每秒大(da)概接入超過(guo) 5 萬個(ge)地(di)(di)震數(shu)據包,每天總數(shu)據量約(yue) 5000 億條。對于常(chang)規的(de)(de) INT 類型數(shu)據,TDengine 壓(ya)縮比可達(da)到 5%-10% 之(zhi)間,對于 VARCHAR 類型的(de)(de)數(shu)據,壓(ya)縮比可達(da)到 15-20%,極大(da)程度地(di)(di)節約(yue)存(cun)儲成本。在(zai)集(ji)群日常(chang)負載上,單臺(tai)數(shu)據庫服務(wu)端 CPU 使(shi)用率 40%~50%,內(nei)存(cun)占(zhan)用 14%~20%,運行(xing)平(ping)穩。
中移物聯 x TDengine 3.0
“我們(men)當前使用的(de)是(shi) 3.0.2.5 版(ban)本(ben),但是(shi)由于業(ye)務(wu)本(ben)身不允許停機(ji),所以沒辦法做(zuo)離線升(sheng)級,后續會由 TDengine 企業(ye)版(ban)團隊協助我們(men)在(zai)線升(sheng)級至(zhi)最新版(ban)本(ben)。TDengine 3.0 的(de)安裝部署上保(bao)留(liu)了和 2.0 一(yi)樣的(de)簡單易用模式,升(sheng)級操作只需要備份數(shu)據文件目(mu)錄(lu),覆蓋安裝即可,而且(qie)寫入(ru)速(su)度極高,接近(jin)硬(ying)盤的(de)連續寫入(ru)性能。”
業務背景
在中移物(wu)聯網的(de)智慧出(chu)行場景中,需要存儲車聯網設備的(de)軌跡(ji)(ji)點,還要支(zhi)持(chi)(chi)對車輛軌跡(ji)(ji)進行查詢。為了更好地進行數(shu)據(ju)處理,他們在 2021 年(nian)上(shang)線了 TDengine 2.4.0.18 版本的(de) 5 節點 3 副本集群,一(yi)直(zhi)穩定運行。3.0 發(fa)布后又經過幾度優化(hua),中移物(wu)聯網關注到了這(zhe)一(yi)版本的(de)眾多特性(xing),包(bao)括 Raft 協(xie)議的(de)引入(ru)使 TDengine 擁有了更標準(zhun)的(de)一(yi)致性(xing)算(suan)法(fa)、存儲引擎的(de)重構優化(hua)了 2.x 版本的(de)設計(ji)、查詢靈活度大(da)幅提(ti)升(sheng)、支(zhi)持(chi)(chi)更強大(da)的(de)流(liu)式計(ji)算(suan)等等。在經過進一(yi)步調研后,其決定進行從 2.x 到 3.x 的(de)大(da)版本升(sheng)級。
架構圖

改造效果
目前該項目共有 102 萬張子表,已經累(lei)積的(de)總數據(ju)量已經達(da)(da)到(dao)了 2000 億行,3 副本,磁盤占用(yong) 3.1TB。在(zai)遷(qian)移到(dao) TDengine 3.0 之(zhi)后,各方面(mian)的(de)表現依然(ran)非常不錯:業務(wu)的(de)寫入峰(feng)值達(da)(da)到(dao)了 1.2-1.3w 行/s ,數據(ju)遷(qian)移的(de)過程(cheng)中可以達(da)(da)到(dao) 20w 行/s,這些情(qing)況下 TDengine 都(dou)可以輕松(song)處理;存儲大約只有 MySQL 的(de) 1/7;讀取數據(ju)性(xing)能也很(hen)突出,其最(zui)常用(yong)的(de)單(dan)設備單(dan)日(ri)查詢,可以在(zai) 0.1s 內返回(hui)結果。
搜狐基金 x TDengine 3.0
“由于‘超級表(biao)’的(de)存在,數據建模變得非常清晰,幾乎所有查詢都可以(yi)以(yi)‘超級表(biao)’為核心用簡單的(de) SQL 完(wan)成。此外(wai),基于‘自動(dong)建表(biao)’這個特色功能,我們可以(yi)無需校(xiao)驗就能夠直接建表(biao),這讓我們得以(yi)非常輕松地完(wan)成各只基金(jin)數據的(de)拆分(fen)建表(biao)以(yi)及寫入工作。”
業務背景
對于搜(sou)狐基(ji)金(jin)(jin)(jin)來說,其所購買的(de)(de)數(shu)(shu)(shu)據(ju)(ju)源(yuan)的(de)(de)基(ji)金(jin)(jin)(jin)數(shu)(shu)(shu)據(ju)(ju)都是混在(zai)一(yi)(yi)起的(de)(de),包含來自國內的(de)(de) 2 萬只(zhi)基(ji)金(jin)(jin)(jin),跨越幾十年(nian)(從九幾年(nian)至(zhi)今(jin))的(de)(de)數(shu)(shu)(shu)千萬行較(jiao)寬的(de)(de)數(shu)(shu)(shu)據(ju)(ju)。此前他們通過 MySQL 來存儲(chu)這些(xie)數(shu)(shu)(shu)據(ju)(ju),首先要把(ba)每個基(ji)金(jin)(jin)(jin)的(de)(de)數(shu)(shu)(shu)據(ju)(ju)分表(biao),有(you)一(yi)(yi)定(ding)程度的(de)(de)工(gong)作量(liang),只(zhi)能先全(quan)(quan)量(liang)保存這些(xie)數(shu)(shu)(shu)據(ju)(ju)在(zai)一(yi)(yi)張表(biao)中,但這種大(da)表(biao)會導致查詢(xun)的(de)(de)性能非常低下,為(wei)了應(ying)對這一(yi)(yi)問題,只(zhi)能通過離線查詢(xun)生(sheng)成每天的(de)(de)基(ji)金(jin)(jin)(jin)數(shu)(shu)(shu)據(ju)(ju)圖片(pian)返(fan)回給(gei)用(yong)戶,無法對外提(ti)供自定(ding)義查詢(xun)服務。在(zai)此背景下,搜(sou)狐基(ji)金(jin)(jin)(jin)決(jue)定(ding)基(ji)于 TDengine 3.0 嘗試一(yi)(yi)下全(quan)(quan)新(xin)的(de)(de)方案。
建模展示

改造效果
我們使(shi)用(yong)三臺 4C 16GB 的(de)服務器組建了 TDengine 的(de)集(ji)群。值(zhi)得(de)一(yi)(yi)提的(de)是(shi)(shi),基金數據是(shi)(shi)一(yi)(yi)日一(yi)(yi)條(tiao),屬于低頻次數據。對于這種數據,默認(ren)的(de)配(pei)置是(shi)(shi)不(bu)夠的(de)。一(yi)(yi)開始我們的(de)查詢性能并不(bu)快,基本都是(shi)(shi)在秒級別(bie)甚至(zhi)還有更高(gao)。通過(guo)文檔和博(bo)客(ke)以及(ji)官方團隊(dui)的(de)支(zhi)持,我們放(fang)大(da)了 duration 和 stt_trigger 參數,這樣確保了不(bu)會產(chan)生過(guo)多的(de)文件碎片影響(xiang)讀(du)寫(xie)性能,后續的(de)查詢全部(bu)被優化至(zhi)毫秒級別(bie)。
智光電氣 x TDengine 3.0
“當前(qian) TDengine 3.0 已(yi)成功應(ying)用(yong)(yong)于我(wo)司多(duo)個工(gong)(gong)業項目(mu)中(zhong),涵蓋數(shu)(shu)(shu)萬(wan)臺各(ge)類工(gong)(gong)業設備的(de)數(shu)(shu)(shu)據(ju)存儲與(yu)查詢(xun)。作為數(shu)(shu)(shu)據(ju)中(zhong)臺,TDengine 為上層應(ying)用(yong)(yong)提(ti)供了高效(xiao)的(de)歷史數(shu)(shu)(shu)據(ju)查詢(xun),精確到(dao)秒級和(he)分(fen)鐘級粒度,幫助我(wo)們大幅提(ti)升了應(ying)用(yong)(yong)效(xiao)率(lv),同(tong)時減少了硬件和(he)人(ren)力(li)資源的(de)消耗(hao)。”
業務背景
在(zai)使用(yong) TDengine 之前,子公司智光研究院在(zai)工業(ye)項目中使用(yong)基于 Apache Hadoop 的(de)(de) CDH 集(ji)群(qun)來做時序業(ye)務(wu)數(shu)(shu)據(ju)(ju)的(de)(de)處(chu)理。但是由于數(shu)(shu)據(ju)(ju)量(liang)級太大,處(chu)理占用(yong)了大量(liang)資源,導致集(ji)群(qun)的(de)(de)不(bu)穩定性增加,有頻繁發生崩潰(kui)的(de)(de)風(feng)險。經(jing)過(guo)充分測(ce)試后,該團隊最終決定把由 HBase 處(chu)理的(de)(de)、數(shu)(shu)據(ju)(ju)量(liang)最大的(de)(de)時序數(shu)(shu)據(ju)(ju)業(ye)務(wu)抽離(li)出(chu)來,引入(ru) TDengine 來降低 Hadoop 集(ji)群(qun)的(de)(de)壓力,成(cheng)為獨立出(chu)來的(de)(de)數(shu)(shu)據(ju)(ju)中臺(tai)。
改造后部分查詢展示

改造效果
寫入存(cun)(cun)儲方面(mian),同樣(yang)是列式(shi)存(cun)(cun)儲,以半(ban)年的數(shu)據作(zuo)為(wei)比較,三(san)副本(ben)的 HBase 的總數(shu)據量占用是 10TB,TDengine 三(san)副本(ben)的磁盤(pan)占用只有 2TB,存(cun)(cun)儲成(cheng)本(ben)僅為(wei) HBase 的 20 %。(由于和其他應(ying)用共用,內存(cun)(cun)、CPU 方面(mian)不好估(gu)算,但成(cheng)本(ben)均大(da)幅降低)
在(zai)查詢上(shang),智光研究員的(de)(de)業務(wu)主要就(jiu)是(shi)針對(dui) rundata_t1m(分鐘(zhong)級(ji)數據)、rundata(原始(shi)數據)這兩張千億級(ji)別的(de)(de)大型超級(ji)表的(de)(de)篩(shai)選、過濾(lv)、降采樣。應(ying)用的(de)(de)查詢性能和 SQL 篩(shai)選的(de)(de)時間范圍相關較(jiao)大,整體(ti)上(shang)的(de)(de)耗(hao)時大概在(zai)毫秒級(ji)至 2 秒內。
結語
通過上述案例我們能看到,在經過不斷打磨優化后,如今的 TDengine 3.0 已經在性能、功能、穩定性各個方面均有大幅提升,從一款時序數據庫(Time Series Database,TSDB)蛻變成為高性(xing)能、云原生、分布式(shi)的物聯網、工業大數據平臺。為此,我們(men)也(ye)強烈(lie)建議老用戶盡快(kuai)向 TDengine 3.0 版本進行遷移,以(yi)便體(ti)驗到 TDengine 更加強大的產(chan)品力(li)。
為了幫助大家最短時間內在本地完成自助式版本遷移,除了官方文檔以外,我們還準備了大量技術文章,全部匯總在《萬字解讀|怎樣激活 TDengine 最高性價比?》中,以供有需要的用戶參考。如果你在遷移工作中遇到任何問題,歡迎添加小T vx:tdengine 尋求幫助。


























