TDengine TSDB(以下“TDengine”均指“TDengine TSDB”)是一款高性能時序數據庫。通過充分利用時(shi)序(xu)(xu)大(da)(da)數(shu)(shu)(shu)據(ju)的特點,TDengine Database 團(tuan)隊設計(ji)了(le)(le)新(xin)穎的存儲引(yin)擎(qing),大(da)(da)幅提升了(le)(le)數(shu)(shu)(shu)據(ju)的寫入和(he)查詢速度(du),同時(shi)也(ye)大(da)(da)幅提高了(le)(le)數(shu)(shu)(shu)據(ju)壓縮率。與(yu)(yu)通用數(shu)(shu)(shu)據(ju)庫(ku)相(xiang)比,性(xing)能好至少(shao)十倍以上(shang),而存儲空間不到(dao)其 1/5,與(yu)(yu)其他時(shi)序(xu)(xu)數(shu)(shu)(shu)據(ju)庫(ku)相(xiang)比,性(xing)能也(ye)是(shi)遠(yuan)超。
一、DevOps 場景下,TSBS 基準測試報告
在 DevOps 場景下,TSBS 基準(zhun)測試結果(guo)顯示 TDengine 寫入性能(neng)最(zui)大達(da)(da)到 TimescaleDB 的(de)(de)(de)(de)(de)(de) 6.7 倍,InfluxDB 的(de)(de)(de)(de)(de)(de) 10.6 倍。此外,TDengine 在寫入過程中(zhong)消耗了最(zui)少(shao)計算(CPU)資源和磁盤 IO 開銷;相同落盤數據(ju)規模(mo)下,TDengine 存儲空(kong)間只有 InfluxDB 的(de)(de)(de)(de)(de)(de) 25%,只有 TimescaleDB 的(de)(de)(de)(de)(de)(de) 4%。此外,對于(yu)大多數查(cha)詢類型,TDengine 的(de)(de)(de)(de)(de)(de)性能(neng)均優于(yu) InfluxDB 和 TimescaleDB,在 Complex queries 類型的(de)(de)(de)(de)(de)(de)查(cha)詢中(zhong)展現出巨大的(de)(de)(de)(de)(de)(de)優勢——TDengine 的(de)(de)(de)(de)(de)(de) Complex queries 查(cha)詢性能(neng)最(zui)高(gao)達(da)(da)到了 InfluxDB 的(de)(de)(de)(de)(de)(de) 37 倍、 TimescaleDB 的(de)(de)(de)(de)(de)(de) 28.6 倍。


從圖(tu) 1 可以(yi)看出(chu)在(zai)(zai) TSBS 全部五(wu)個場景(jing)(jing)中,TDengine 的(de)寫(xie)入性(xing)能(neng)全面超越 TimescaleDB 和 InfluxDB。在(zai)(zai)場景(jing)(jing)二(er)(4,000 devices)中 TDengine 寫(xie)入性(xing)能(neng)是(shi)(shi) TimescaleDB 的(de)最(zui)大達(da)到 6.74 倍,在(zai)(zai)差(cha)距最(zui)小(xiao)場景(jing)(jing)五(wu)(10 million devices)中,是(shi)(shi) TimescaleDB 寫(xie)入性(xing)能(neng)的(de) 1.52 倍。相對于 InfluxDB,TDengine 在(zai)(zai)場景(jing)(jing)五(wu)(10 million devices)中寫(xie)入性(xing)能(neng)是(shi)(shi) InfluxDB 的(de) 10.63 倍,在(zai)(zai)差(cha)距最(zui)小(xiao)的(de)場景(jing)(jing)一(100 devices)中也(ye)有 3.01 倍。
從(cong)圖 2 可以看出,在(zai)磁(ci)盤空(kong)(kong)間占用方面,TimescaleDB 在(zai)所有的(de)場(chang)(chang)(chang)景下(xia)數(shu)(shu)據規(gui)(gui)模均顯(xian)著(zhu)地大于 InfluxDB 和 TDengine,并(bing)且這種差距隨著(zhu)數(shu)(shu)據規(gui)(gui)模增(zeng)加快(kuai)速變大。TimescaleDB 在(zai)場(chang)(chang)(chang)景四(si)(1 million devices)和場(chang)(chang)(chang)景五(10 million devices)中占用磁(ci)盤空(kong)(kong)間是 TDengine 的(de) 25 倍。在(zai)前面三個場(chang)(chang)(chang)景中,InfluxDB 落盤后(hou)數(shu)(shu)據文件(jian)(jian)規(gui)(gui)模與 TDengine 非常接近,但是在(zai)場(chang)(chang)(chang)景四(si)/五兩(liang)個場(chang)(chang)(chang)景中,InfluxDB 落盤后(hou)文件(jian)(jian)占用的(de)磁(ci)盤空(kong)(kong)間是 TDengine 的(de) 4 倍以上。

查詢響應時間 (數值越小越好)

查詢響應時間 (數值越小越好)
從圖 3 可(ke)以看(kan)出(chu)(chu),在 Double-rollups 類型查詢中, TDengine 展現(xian)出(chu)(chu)巨大的性能優勢,其查詢響應(ying)時間(jian)來(lai)度量,double-groupby-5 和 double-groupby-all 的查詢性能是 TimescaleDB 的 24 倍,在 double-groupby-5 查詢上是 InfluxDB 的 26 倍 和 double-groupby-all 是其 34 倍。
從圖 4 可(ke)以(yi)看(kan)出(chu),對于(yu) Complex-queries 類(lei)型的(de)查詢(xun),TDengine 兩個(ge)查詢(xun)均大(da)幅領先 TimescaleDB 和 InfluxDB。在lastpoint 查詢(xun)中(zhong),查詢(xun)性(xing)能(neng)是(shi)(shi) TimescaleDB 的(de) 5 倍, InfluxDB 的(de) 21 倍。在 groupby-orderby-limit 場景中(zhong)查詢(xun)性(xing)能(neng)是(shi)(shi)TimescaleDB的(de) 8 倍,是(shi)(shi) InfluxDB 的(de) 15 倍。在時(shi)間(jian)窗口聚合的(de)查詢(xun)過程中(zhong),TimescaleDB 針對規模較大(da)的(de)數據集其(qi)查詢(xun)性(xing)能(neng)不佳(double rollups類(lei)型查詢(xun)),對于(yu) groupby-orderby-limit 的(de)查詢(xun),其(qi)性(xing)能(neng)上表現(xian)同樣不是(shi)(shi)太好。
有關測試報告執行結果和重現步驟的詳細信息,請參閱《基于 TSBS 標準數據集 TimeScaleDB、InfluxDB 與 TDengine 的性能對比測試》。
二、IoT 場景下,TSBS 基準測試報告
在 IoT 全部(bu)五(wu)個場景下,TDengine 寫(xie)入性(xing)(xing)能均優(you)于 TimescaleDB 和 InfluxDB。寫(xie)入性(xing)(xing)能最大(da)達到 TimescaleDB 的 3.3 倍,InfluxDB 的 16.2 倍。此外,TDengine 在寫(xie)入過程中消耗了最少計算(CPU)資源和磁盤 IO 開銷。


對于大(da)多數(shu)查詢(xun)(xun)類型,TDengine 的(de)性(xing)能(neng)均優(you)于 InfluxDB 和(he) TimescaleDB,在復雜(za)的(de)混合查詢(xun)(xun)中 TDengine 展(zhan)現(xian)出巨大(da)的(de)優(you)勢——其(qi)中 avg-load 和(he) breakdown-frequency 的(de)查詢(xun)(xun)性(xing)能(neng)是 InfluxDB 的(de) 426 倍 和(he) 53 倍;daily-activity 和(he) avg-load 的(de)查詢(xun)(xun)性(xing)能(neng)是 TimescaleDB 的(de) 34 倍和(he) 23 倍。


TimescaleDB 在所有場(chang)景下數(shu)(shu)據(ju)規(gui)模(mo)均(jun)顯著(zhu)地大(da)于(yu) InfluxDB 和 TDengine,并且這種差距隨著(zhu)數(shu)(shu)據(ju)規(gui)模(mo)增(zeng)加快速變大(da),其(qi)落(luo)盤數(shu)(shu)據(ju)規(gui)模(mo)最高達到了 TDengine 的 12.2 倍;InfluxDB 在前三個場(chang)景中落(luo)盤后(hou)數(shu)(shu)據(ju)文(wen)件規(gui)模(mo)與 TDengine 非常(chang)接近(jin),但隨著(zhu)數(shu)(shu)據(ju)規(gui)模(mo)的增(zeng)長(場(chang)景四、場(chang)景五),InfluxDB 落(luo)盤后(hou)文(wen)件占用(yong)的磁盤空間最大(da)達到了 TDengine 的 2.8 倍,這也直接說明 TDengine 更加適用(yong)于(yu)時序大(da)數(shu)(shu)據(ju)的存儲。
從整(zheng)體 CPU 開銷上來(lai)看,TDengine 不僅完(wan)成全部(bu)查詢的時(shi)間低于 TimescaleDB 和 InfluxDB,在整(zheng)體上 CPU 計算資源的消耗也遠小于 TimescaleDB 和 InfluxDB。在整(zheng)個查詢過程中(zhong),TDengine 內存也始終維持在一個相(xiang)對平穩的狀態。


有關測試報告執行結果和重現步驟的詳細信息,請參閱《基于 TSBS 標準數據集時序數據庫 TimescaleDB、InfluxDB 與 TDengine 在 IoT 場景性能對比測試》。
與 MongoDB、ClickHouse、OpenTSDB 等其他 Database 的對比測試報告,請下載“TDengine與其他數據庫對比測試的完整報告”。
TDengine 在數據寫入、數據查詢、存儲空間、資源消耗(hao)等方(fang)面都表(biao)現(xian)出了超強(qiang)的性(xing)能(neng),因(yin)此(ci),采用高(gao)性(xing)能(neng)時(shi)序數據庫 TDengine,可(ke)將(jiang)典型的物聯網、車聯網、工業(ye)互聯網大數據平臺的總擁有成本降低至少 50% 以上(shang)。
都(dou)是時(shi)序數(shu)據庫,為(wei)什么 TDengine 能(neng)如(ru)此(ci)出眾?這是由于(yu) TDengine 采用(yong)(yong)了(le)獨特的(de)(de)存(cun)(cun)儲結構,而不(bu)是照搬(ban)通用(yong)(yong)的(de)(de) KV 存(cun)(cun)儲或 LSM 存(cun)(cun)儲引擎(qing)。它充分利用(yong)(yong)時(shi)序數(shu)據的(de)(de)特點(dian)而進(jin)行了(le)各(ge)種優化,創新地提出了(le)包括“一個數(shu)據采集點(dian)一張表”與“超級表”的(de)(de)設計,詳細(xi)請看 。


























