TSBS 是什麼?為什麼時序資料庫 TDengine 會選擇它作為效能對比測試平臺?
TSBS 是一個時序資料處理(資料庫)系統的效能基準測試平臺,提供了 IoT、DevOps 兩個典型應用場景,它由 Timescale 開源並負責維護。作為一個效能基準測試平臺,TSBS 具有便捷、易用、擴充套件靈活等特點,涵蓋了時序資料的生成、寫入(載入)、多種類別的典型查詢等功能,並能夠自動彙總最終結果。由於其開放開源的特點,得到了眾多資料庫廠商的支援,作為專業的產品效能基準測試平臺被若干資料庫廠商廣泛使用。
以下的效能基準報告均使用了 TSBS 作為基礎 Benchmark 平臺,我們從時間跨度和釋出廠商的知名度同時來看,就能發現,基礎測試平臺 TSBS 已經具備了很高的認可度:
- 2018 年 11 月,VictoriaMetrics 的創始人 Aliaksandr Valialkin 釋出 《High-cardinality TSDB benchmarks: VictoriaMetrics vs TimescaleDB vs InfluxDB》,將 VictoriaMetrics 與 TimescaleDB、InfluxDB 進行效能對比。
- 2018 年 11 月,文章《ClickHouse Crushing Time Series》中對比了 TimescaleDB, InfluxDB, ClickHouse 在時序資料場景下的效能。
- 2020 年 3 月,Cloudera 在網站部落格中釋出《Benchmarking Time Series workloads on Apache Kudu using TSBS》,在 DevOps場景 中對比了 Apache Kudu, InfluxDB, VictoriaMetrics, ClickHouse 等整體效能表現。
- 2020 年 3 月, Redis 釋出了基於 TSBS 的效能報告《RedisTimeSeries Version 1.2 Benchmarks》。
- 2020 年 8 月,Timescale 在其官方部落格釋出了效能對比報告《TimescaleDB vs. InfluxDB: Purpose Built Differently for Time-Series Data》。
- 2021 年 8 月,QuestDB 釋出了 QuestDB 與 TimescaleDB 的效能對比報告——《QuestDB vs. TimescaleDB》。
DevOps 場景是一個典型的時序資料應用場景,TSBS DevOps 場景提供了 CPU 狀態的模擬資料,針對每個裝置(CPU)記錄其 10 個測量值(metric),1 個時間戳(納秒解析度),10 個標籤值(tag)。生成的資料每 10 秒間隔一條記錄,具體的內容和示例資料如下:
TSBS 測試可以簡單劃分為兩個主要部分——資料寫入和資料查詢。在本次整個基準效能評估中,共涉及以下五個場景,每個場景的具體資料規模和特點見下表:
透過上表可以看到,五個場景的區別主要在於資料集所包含的裝置記錄數量、裝置數的不同,資料時間間隔均維持在 10 sec。整體來看,五個場景的資料規模都不算大,資料規模最大的是場景五,資料達到了 1.8 億,資料規模最小的是場景一,只有 2678 萬條記錄。在場景四和場景五中,由於裝置數量相對較多,所以資料集僅覆蓋了 3 分鐘的時間跨度。
為了保證測試結果的公正可靠及可複製性,我們選用了公共 IaaS 平臺來搭建 Benchmark 基礎硬體環境,採用了大多數效能對比報告中使用的場景——亞馬遜 EC2 服務環境下 r4.8xlarge 型別的例項作為基礎執行平臺,區域為北美地區,包括 1 臺伺服器、1 臺客戶端。客戶端與伺服器硬體配置完全相同,兩者使用 10 Gbps 網路連線。配置簡表如下:
本次測試的對比軟體為 InfluxDB1.8.10 及 Timescale 2.6.0,在這裡要著重說明一下,由於 InfluxDB 最新的 2.0 版本並沒有納入 TSBS 的主幹分支,因此在這次測試中我們暫且使用了 TSBS 主幹分支所支援的 InfluxDB 最新版本,即 1.8.10。
下面可以簡單為大家介紹下本次測試結果。如下表所示,在全部五個場景中,TDengine 寫入效能均優於 InfluxDB 和 TimescaleDB,寫入過程中資源佔用最低。對比 InfluxDB,TDengine 寫入最優的場景是在 1000 萬裝置下,達到了 InfluxDB 的 10.6 倍;對比 TimescaleDB ,TDengine 寫入最優的場景是在 4000 個裝置下,達到了 TimeScaleDB 的 6.7 倍。
在查詢測試上,我們將其分為 5 大類、15 小類進行查詢對比,從下圖結果彙總中可以看到,在全部 15 個查詢型別中,TDengine 的效能均優於 InfluxDB 和 TimescaleDB,並且它的所有查詢延遲均比 InfluxDB 和 TimescaleDB 更低。亮點資料之一體現在 Double Rollups 查詢型別對比中,TDengine 最大達到 InfluxDB 的 34 倍,TimescaleDB 的 24 倍。
以上就是 TDengine 基於 TSBS 測試報告的測試背景介紹,如果你對測試結果感興趣,歡迎搜尋進入官網檢視完整報告。
想了解更多 的具體細節,歡迎大家在 上檢視相關原始碼。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014783/viewspace-2937615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼要選擇分散式資料庫?分散式資料庫
- 時序資料庫-01-時序資料庫有哪些?為什麼要使用資料庫
- 為什麼選擇俄羅斯代理IP?它對俄羅斯業務有什麼用處?
- ITAM是什麼?為什麼它很重要?
- 為什麼放棄精準測試平臺?
- 為什麼 APISIX Ingress 是比 Traefik 更好的選擇?API
- 王寶強發離婚宣告為什麼選擇微博平臺?
- 什麼是倉庫管理系統?為什麼選擇基於雲的WMS?
- 【轉】Firebird資料庫值得信賴嗎?為什麼我要在開發中選擇它?資料庫
- 什麼是客戶分析,為什麼它很重要?
- 什麼是資料實時同步,為什麼資料實時同步很重要
- 為什麼選擇Guice框架GUI框架
- Aembit為什麼選擇 Rust?Rust
- 為什麼選擇使用Rust?Rust
- 為什麼要選擇SQL?SQL
- 從 InfluxDB 到 TDengine,陽光氫能為什麼會做出這個選擇?UX
- 為什麼運維管理皮膚我只選擇它?運維
- 為什麼機器學習會選擇Python語言?機器學習Python
- 為什麼越來越多的人選擇RDS建立MySQL資料庫?MySql資料庫
- 為什麼 APISIX Ingress 是比 Ingress NGINX 更好的選擇?APINginx
- 什麼是 WireGuard?為什麼 Linux 使用者為它瘋狂?Linux
- 為什麼企業要選擇低程式碼開發平臺?
- 即時通訊系統為什麼選擇GaussDB(for Redis)?Redis
- 為什麼nginx效能比apache效能好NginxApache
- 為什麼選擇.NETCore?NetCore
- 為什麼選擇centos系統CentOS
- 為什麼選擇高防DNS?DNS
- 為什麼選擇Cynefin框架? – zwischenzugs框架
- (轉)為什麼選擇機器學習策略機器學習
- 我為什麼選擇 Angular 2?Angular
- Android為什麼選擇binderAndroid
- 為什麼選擇Twitter Storm?薦ORM
- PLC資料雲平臺是什麼?有什麼功能?
- 為什麼會有這麼多種的資料庫資料庫
- 什麼是隧道代理 為什麼選隧道代理
- 什麼是行為資料?企業為什麼要使用它?
- 什麼是資料標註,它的用途是什麼?
- 簡單的效能測試說明為什麼Go比Java快?GoJava