本文將詳細(xì)介紹 OpenTSDB 與 TDengine 這兩款時(shí)序數(shù)據(jù)庫(kù)(Time Series Database)在系統(tǒng)功能層面上存在的差異。閱讀完本文的內(nèi)容,你可以全面地評(píng)估是否能夠?qū)⒛承┗?OpenTSDB 的復(fù)雜應(yīng)用遷移到 TDengine 上,以及遷移之后應(yīng)該注意的問題。
TDengine 當(dāng)前只支持 Grafana 的可視化看板呈現(xiàn),所以如果你的應(yīng)用中使用了 Grafana 以外的前端看板(例如 TSDash、Status Wolf 等),那么前端看板將無法直接遷移到 TDengine,需要將前端看板重新適配到 Grafana 才可以正常運(yùn)行。
在 2.3.0.x 版本中,TDengine 只能夠支持 collectd 和 StatsD 作為數(shù)據(jù)收集匯聚軟件,當(dāng)然后面會(huì)陸續(xù)提供更多的數(shù)據(jù)收集聚合軟件的接入支持。如果你的收集端使用了其他類型的數(shù)據(jù)匯聚器,則應(yīng)用需要適配到這兩個(gè)數(shù)據(jù)匯聚端系統(tǒng),才能夠?qū)?shù)據(jù)正常寫入。除了上述兩個(gè)數(shù)據(jù)匯聚端軟件協(xié)議以外,TDengine 還支持通過 InfluxDB 的行協(xié)議和 OpenTSDB 的數(shù)據(jù)寫入?yún)f(xié)議、JSON 格式將數(shù)據(jù)直接寫入,用戶可以重寫數(shù)據(jù)推送端的邏輯,使用 TDengine 支持的行協(xié)議來寫入數(shù)據(jù)。
此外,如果應(yīng)用中使用了 OpenTSDB 以下特性,在將應(yīng)用遷移到 TDengine 之前還需要了解以下注意事項(xiàng):
/api/stats:如果你的應(yīng)用中使用了該項(xiàng)特性來監(jiān)控 OpenTSDB 的服務(wù)狀態(tài),并在應(yīng)用中建立了相關(guān)的邏輯來聯(lián)動(dòng)處理,那么這部分狀態(tài)讀取和獲取的邏輯需要重新適配到 TDengine。TDengine 提供了全新的處理集群狀態(tài)監(jiān)控機(jī)制,來滿足你的應(yīng)用對(duì)其進(jìn)行的監(jiān)控和維護(hù)的需求。/api/tree:如果你依賴于 OpenTSDB 的該項(xiàng)特性來進(jìn)行時(shí)間線的層級(jí)化組織和維護(hù),那么便無法將其直接遷移至 TDengine。TDengine 采用了數(shù)據(jù)庫(kù)->超級(jí)表->子表這樣的層級(jí)來組織和維護(hù)時(shí)間線,歸屬于同一個(gè)超級(jí)表的所有的時(shí)間線在系統(tǒng)中同一個(gè)層級(jí),但是可以通過不同標(biāo)簽值的特殊構(gòu)造來模擬應(yīng)用邏輯上的多級(jí)結(jié)構(gòu)。Rollup And PreAggregates:采用了 Rollup 和 PreAggregates 需要應(yīng)用來決定在合適的地方訪問 Rollup 的結(jié)果,在某些場(chǎng)景下又要訪問原始的結(jié)果,這種結(jié)構(gòu)的不透明性讓應(yīng)用處理邏輯變得極為復(fù)雜而且完全不具有移植性。我們認(rèn)為這種策略是時(shí)序數(shù)據(jù)庫(kù)無法提供高性能聚合情況下的妥協(xié)與折中。TDengine 暫不支持多個(gè)時(shí)間線的自動(dòng)降采樣和(時(shí)間段范圍的)預(yù)聚合,由于其擁有的高性能查詢處理邏輯,即使不依賴于 Rollup 和 (時(shí)間段)預(yù)聚合計(jì)算結(jié)果,也能夠提供很高性能的查詢響應(yīng),而且讓你的應(yīng)用查詢處理邏輯更加簡(jiǎn)單。Rate: TDengine 提供了兩個(gè)計(jì)算數(shù)值變化率的函數(shù),分別是 Derivative(其計(jì)算結(jié)果與 InfluxDB 的 Derivative 行為一致)和 IRate(其計(jì)算結(jié)果與 Prometheus 中的 IRate 函數(shù)計(jì)算結(jié)果一致)。但是這兩個(gè)函數(shù)的計(jì)算結(jié)果與 Rate 有細(xì)微的差別,但整體上功能更強(qiáng)大。此外,OpenTSDB 提供的所有計(jì)算函數(shù),TDengine 均有對(duì)應(yīng)的查詢函數(shù)支持,并且 TDengine 的查詢函數(shù)功能遠(yuǎn)超過 OpenTSDB 支持的查詢函數(shù),可以極大地簡(jiǎn)化你的應(yīng)用處理邏輯。
通過上面的介紹,相信你應(yīng)該能夠了解從 OpenTSDB 遷移到 TDengine 會(huì)產(chǎn)生的變化,這些信息也有助于你正確地判斷是否可以接受將應(yīng)用遷移到 TDengine 之上,體驗(yàn) TDengine 提供的強(qiáng)大的時(shí)間序列數(shù)據(jù)的處理能力和便捷的使用體驗(yàn)。



互聯(lián)網(wǎng).png)



-1.png)




.png)


證.png)


伙伴.png)
伙伴.png)
伙伴.png)



