隨著物聯網、車聯網等領域的快速發展,企業所面臨的數據采集量呈爆炸式增長,這對 IT 基礎設施和數據庫提出了嚴峻挑戰。傳統單機版數據庫逐漸無法應對高并發的數據寫入和復雜的查詢需求。因此,底層數據庫必須具備水平擴展能力,以確(que)保(bao)其(qi)能夠在數據量持續增長的情況(kuang)下高效運行。
然而,目前市場上大多數開源時序數據庫的集群功能并未完全開源。InfluxDB 的集群能力封閉于企業版,這迫使企業使用開源單機版的同時,需投入大量資源自建 Proxy 來實現數據的分片和查詢聚合,增加了系統開發和維護的成本。相比之下,TDengine 在 2020 年 8 月正式將集群功能開源,在解決大規模數據處理需求方面(mian)走在了行業(ye)前列。
InfluxDB 開源版本的局限性
開(kai)源版 InfluxDB 的(de)局(ju)限在于(yu)其(qi)集(ji)群功能(neng)僅在企業(ye)(ye)版中提供,這(zhe)給(gei)眾(zhong)多中小企業(ye)(ye)帶來(lai)困難。為(wei)了應對高(gao)并發的(de)數據需求,這(zhe)些(xie)企業(ye)(ye)通常采取如下折衷(zhong)方案:
- 自建 Proxy 對數據進行分片,解決數據寫入問題;
- 但在數據查詢時,涉及多節點數據聚合的復雜性,Proxy 需要承擔聚合計算,開發成本和運維壓力極大。
一些企業為(wei)簡化流(liu)程,轉向了(le) OpenTSDB,因為(wei)它的(de)分布(bu)式版本完全開(kai)源。然(ran)而,OpenTSDB 基于(yu) HBase 作為(wei)底層存儲(chu),帶來了(le)復(fu)(fu)雜的(de)安裝與維護(hu)流(liu)程,同時(shi)其(qi)存儲(chu)效(xiao)率(lv)和(he)查詢性能(neng)遠(yuan)低(di)于(yu)理想水(shui)平(ping)。雖然(ran) OpenTSDB 的(de)線性擴展能(neng)力值得肯定,但因其(qi)系統復(fu)(fu)雜性和(he)性能(neng)限制,它并非(fei)優秀的(de)選擇。
至數物聯網 IoT 平臺的技術改造實踐正是對此的有力證明://yakult-sh.com.cn/tdengine-user-cases/5007.html
TDengine 的集群能力:從設計之初即面向水平擴展
為滿足(zu)不斷(duan)增長的(de)數據處理(li)需求,TDengine 從(cong)誕生之初就以(yi)水(shui)平(ping)擴(kuo)展(zhan)和高可用為核心設計理(li)念,采用分布式(shi)架構,基于(yu)單(dan)個硬件(jian)、軟件(jian)系統(tong)不可靠(kao),基于(yu)任(ren)何單(dan)臺(tai)計算機都無法提供(gong)足(zu)夠計算能力(li)(li)和存儲(chu)能力(li)(li)處理(li)海量數據的(de)假設進行集群設計,具備強(qiang)大的(de)水(shui)平(ping)擴(kuo)展(zhan)能力(li)(li)。同時(shi),通過節點虛擬化并輔以(yi)負(fu)載均衡技術,TDengine 能最高效率地利用異構集群中的(de)計算和存儲(chu)資源降低硬件(jian)投資。
通過創新的設(she)計,TDengine 集群具備(bei)以(yi)下關鍵特性(xing):
- 數據分片與水平擴展
TDengine 通(tong)過虛擬節點(dian)(dian)(vnode)技術,將集(ji)群內的(de)多個(ge)物(wu)理(li)節點(dian)(dian)劃分為多個(ge) vnode。每個(ge) vnode 存儲(chu)特定的(de)數(shu)據(ju)采集(ji)點(dian)(dian)的(de)數(shu)據(ju),一(yi)(yi)個(ge)數(shu)據(ju)采集(ji)點(dian)(dian)的(de)數(shu)據(ju)只存放在一(yi)(yi)個(ge) vnode 內。這一(yi)(yi)設(she)計確(que)保:
- 寫入時的水平擴展:客戶端可以將數據直接寫入對應的 vnode,集群節點數越多,系統的吞吐能力越強。
- 查詢時的水平擴展:對于聚合查詢,首先在各個 vnode 內完成初步聚合,客戶端再進行二次聚合。這種分布式計算模型降低了查詢聚合的復雜度。
- 數據分區與多級存儲
除了分片,TDengine 還支持按(an)時間(jian)段對(dui)數(shu)據進行分區,如按(an)天、按(an)周(zhou)等用戶定義的時間(jian)范圍。分區后的數(shu)據具(ju)有(you)以(yi)下優勢:
- 查詢時可快速定位到對應時間段的數據文件,提升查詢效率;
- 方便實現數據保留策略,超過保留時間的數據直接刪除對應文件即可;
- 支持冷熱數據分離,減少存儲成本。
- 高可用設計與自動故障轉移
TDengine 通過虛擬節點組技術保障系統高可用性。虛擬節點組內的數據采用 Leader-Follower 模式同步(bu):Leader 負(fu)責處理讀寫請求,并將數據同步(bu)到多(duo)個 Follower 節點。當 Leader 節點發生故障時,系(xi)統會(hui)自(zi)動(dong)選(xuan)舉新的(de) Leader,確保數據訪問不中斷,并實現(xian)故障轉移。這種架構保證(zheng)了數據的(de)一致性與冗余(yu),增強了系(xi)統的(de)高可用性和容(rong)錯能力。
TDengine 集(ji)(ji)群可(ke)以容(rong)納(na)單(dan)個(ge)、多個(ge)甚至幾千個(ge)數據節點(dian)。應(ying)用只(zhi)需要(yao)向集(ji)(ji)群中(zhong)任何一(yi)個(ge)數據節點(dian)發起連接(jie)即(ji)可(ke)。這種(zhong)設(she)計簡化了應(ying)用程(cheng)序與集(ji)(ji)群之間的交互過程(cheng),提高了系(xi)統的可(ke)擴展性(xing)和易用性(xing)。
TDengine 集群 vs. InfluxDB 集群
為了讓大家(jia)更(geng)方便地進行應(ying)用,在 2020 年 TDengine 便把集群版功能(neng)進行了開源,打(da)破了 InfluxDB 將集群能(neng)力封閉在企業版的壁(bi)壘。開源集群意(yi)味著:
- 用戶無需支付高昂的許可費用即可享受全功能的分布式數據庫支持;
- 社區和企業可以自由探索 TDengine 的集群架構,實現個性化開發和優化;
- 降低了開發者的使用門檻,促進了更廣泛的生態系統發展。
與 InfluxDB 形成鮮(xian)明對(dui)比(bi)(bi)的(de)是(shi),TDengine 的(de)開源集群功能不僅適用(yong)于寫(xie)入,還能處(chu)理(li)復(fu)(fu)雜的(de)查(cha)(cha)詢聚合任務,展(zhan)現了出色(se)的(de)水平(ping)擴(kuo)(kuo)展(zhan)能力。這種設計使 TDengine 特別適用(yong)于需要同(tong)時(shi)處(chu)理(li)海量實(shi)時(shi)數據寫(xie)入和(he)復(fu)(fu)雜歷史數據分析(xi)的(de)場(chang)景,如物聯(lian)網、工業監(jian)控和(he)智慧(hui)城市等。相比(bi)(bi)之下(xia),InfluxDB 在處(chu)理(li)復(fu)(fu)雜查(cha)(cha)詢時(shi)常面臨性能下(xia)降和(he)資源瓶頸,限(xian)制了系統(tong)的(de)擴(kuo)(kuo)展(zhan)性。
如果(guo)你(ni)也想親身(shen)體驗 TDengine 的強(qiang)大集(ji)群水(shui)平擴展能力,不妨動手(shou)試試!我們為你(ni)準備了詳細(xi)的指導手(shou)冊(ce)://docs.yakult-sh.com.cn/operation/deployment/,助你(ni)輕松完(wan)成部署(shu)(shu)和配置。該(gai)手(shou)冊(ce)涵蓋了手(shou)動部署(shu)(shu)、Docker 部署(shu)(shu)、Kubernetes 部署(shu)(shu)三種(zhong)部署(shu)(shu)方式,讓你(ni)快(kuai)速上手(shou)并充分(fen)發揮(hui) TDengine 集(ji)群的性(xing)能和優勢。
結語
在(zai)時(shi)序數(shu)據管理(li)領(ling)域,TDengine 的(de)(de)(de)(de)集群(qun)功能為(wei)企業提供(gong)了強(qiang)大的(de)(de)(de)(de)水平擴展和(he)高可用(yong)能力。相比(bi)于 InfluxDB 封閉的(de)(de)(de)(de)企業版集群(qun),TDengine 的(de)(de)(de)(de)開源集群(qun)打破了軟件(jian)授權的(de)(de)(de)(de)桎梏,讓用(yong)戶能夠以更低(di)成本應對數(shu)據爆(bao)發式增(zeng)長的(de)(de)(de)(de)挑(tiao)戰。同時(shi),TDengine 的(de)(de)(de)(de)分片、分區與虛擬節點(dian)技(ji)術,使其在(zai)高效數(shu)據管理(li)和(he)復雜(za)查詢性(xing)(xing)能上遙遙領(ling)先。對于那些追(zhui)求系統擴展性(xing)(xing)、易維護性(xing)(xing)和(he)高性(xing)(xing)價比(bi)的(de)(de)(de)(de)企業來說,TDengine 已(yi)成為(wei)更具吸引力的(de)(de)(de)(de)選擇。


























