天天看點

TDengine 3.0 正式釋出,真正的雲原生時序資料庫來了!

2022 年 8 月 13 日,TDengine 3.0 正式釋出了!經過一年多的努力研發,我們終于可以驕傲地宣布這一消息。

這是一次重磅更新,TDengine 3.0 是真正的雲原生時序資料庫(Time-Series Database,TSDB)。

我們先來整體看一下 3.0 的幾大亮點:

  • 可以支援 10 億個裝置采集的資料、100 個節點
  • 支援存儲與計算分離,引入計算節點,并重構了整個計算引擎
  • 完善并優化了對消息隊列、流式計算和緩存的支援,引入事件驅動的流式計算

TDengine 面市以來,從 1.0 到 2.0,從核心功能開源到叢集功能開源,得到了大量商業客戶和社群使用者的高度認可,全球安裝的 TDengine 運作執行個體數已經接近 14 萬,每天有超過 1000 人次克隆代碼,在全球開發者中産生了一定的影響力。日常有大量的社群開發者基于自己的業務需求,提出 issue,貢獻功能,社群非常活躍。

作為一款開源的時序資料庫産品,TDengine 已經廣泛應用于物聯網、工業網際網路、車聯網、金融、IT 運維監控等場景。目前已經有大量的企業客戶和社群使用者将 TDengine 部署在其核心業務場景中。使用者場景越多,TDengine 得到的使用者需求和回報越多,正是這些需求和回報在推動着 TDengine 不斷演進。

經常關注 TDengine 的使用者應該都很熟悉了,我們已經釋出了上百篇使用者案例,這都是企業客戶和開源使用者的第一手實踐經驗。有心的讀者都會發現,在每篇使用者案例的末尾,使用者也毫不諱言在使用 TDengine 過程中遇到的問題,更是提出了對 TDengine 的更多期待。這都是 TDengine 優化疊代的動力。

下面我們詳細看一下 TDengine 3.0 的核心功能。

01​

雲原生

TDengine 3.0 可以充分利用雲計算平台以及分布式系統的優勢。作為一款雲原生,而不隻是能在雲上運作的時序資料庫,TDengine 3.0 具備雲原生資料庫的幾大特點:水準擴充性(Scalability)、彈性(Elasticity)、韌性(Resiliency)、可觀測性(Observability)以及運維自動化(Automation)。我們就結合 TDengine 的邏輯架構,依次看看它是如何實作這幾大特點的。

TDengine 3.0 正式釋出,真正的雲原生時序資料庫來了!

TDengine 的邏輯架構圖

水準擴充性(Scalability)

TDengine 通過資料采集點和時間兩個次元對大資料進行切分,進而實作了水準擴充能力,既支援分片,也支援分區。通過将每個資料采集點的中繼資料分布在各個 vnode 裡,而不是存放在中心點,我們解決了困擾時序資料庫的高基數(High Cardinality)問題。TDengine 具有超強的水準擴充能力,為獲得更多的資料處理能力,隻需要加入更多的資料節點即可。通過測試,我們可以驗證,在 10 億時間線,100 個資料節點的情況下,整個 TDengine 性能還能得到很好的保證。

彈性(Elasticity)

作為一個雲原生資料庫,TDengine 3.0 支援 scale up/scale down。為支援存儲的彈性,如果插入的延時已經超過一定門檻值或者性能不夠,TDengine 會将一個 vnode 拆分成兩個,進而配置設定更多的系統資源給資料寫入操作。另一方面,在能夠保證延時與性能的情況下,TDengine 也可以把多個 vnode 合并成一個,以節省系統資源。

為支援計算的彈性,TDengine 3.0 引入了計算節點 qnode。對于簡單的查詢,比如獲得某張表的原始資料或卷曲資料(rollup data),對應的 vnode 将完成所有的操作,無需 qnode 的參與。但對于一個需要排序、分組或其他需要計算資源的操作,查詢的執行過程中,一個或多個 qnode 将被調用。在具體的部署中,qnode 可以運作在容器裡,它的啟停完全由 mnode 根據系統負載情況決定。

通過引入 qnode,TDengine 3.0 成為一個理想的時序資料分析平台,包括實時資料分析和批分析。

韌性(Resiliency)

TDengine 的韌性是通過其高可靠與高可用設計來實作的。TDengine 采用 Database 實作中傳統的方法 WAL(Write Ahead Log)來保證資料的高可靠。TDengine 通過多副本以及 RAFT 一緻性協定,保證 vnode 和 mnode 的高可用性。

可觀測性(Observability)

TDengine 會采集各種名額來監測自身的運作是否正常,這些名額包括 CPU、記憶體、磁盤、流量、請求次數、延時等。我們提供了 Grafana 的看闆 TDinsight,以實作這些名額的可視化與報警。

TDengine 還有一個配套子產品 taosKeeper,能夠将采集的名額發送到其他監測工具(如 Prometheus),便于将對 TDengine 的監測內建到已有的可觀測系統。

運維自動化(Automation)

TDengine 可以用二進制包或 Docker 鏡像進行安裝,也支援通過 Kubernetes 來部署和管理叢集。其叢集的管理完全可以通過腳本自動化進行,讓營運和維護變得簡單。

02​

極簡的時序資料平台

熟悉 TDengine 的使用者,可能已經使用過其連續查詢、緩存和消息隊列等功能。在 3.0 中,我們又重新設計并優化了相關功能。

特别是流式計算,除連續查詢外,3.0 還支援事件驅動的流計算,而且采用 SQL 文法,支援自定義函數,讓流計算的學習成本幾乎為零。例如,我們可以用如下語句建立流式計算,它會自動建立名為 avg_vol 的超級表,此流計算以一分鐘為時間視窗、30 秒為前向增量統計這些電表的平均電壓,并将來自 meters 表的資料的計算結果寫入 avg_vol 表,不同 partition 的資料會分别建立子表并寫入不同子表。

CREATE STREAM avg_vol_s INTO avg_vol AS
SELECT _wstartts, count(*), avg(voltage) FROM meters PARTITION BY tbname INTERVAL(1m) SLIDING(30s);      

消息隊列方面,可指定各種過濾條件,應用可以僅僅訂閱滿足條件的資料,而且對外提供的 API 與 Kafka 類似,簡單易用。

在時序資料處理平台的通用設計中,邏輯圖一般如下所示:

TDengine 3.0 正式釋出,真正的雲原生時序資料庫來了!

而通過對緩存、流式計算、消息隊列的支援,采用 TDengine 的時序資料處理系統,不再需要內建 Kafka、Redis、Spark 和 Flink 等軟體,技術架構将大為簡化,部署、營運維護成本将大為降低。邏輯結構可以直接簡化為:

TDengine 3.0 正式釋出,真正的雲原生時序資料庫來了!

由此可見,TDengine 不隻是一個時序資料庫,還是一個極簡的時序資料處理平台。

03​

便捷的資料分析能力

TDengine 3.0 重新設計了計算引擎,支援标準 SQL,支援嵌套查詢,支援自定義函數,支援 Information Schema 系統資料庫;針對時序資料的處理進行擴充,提供累計求和、時間權重平均、移動平均、變化率、session/state 視窗等衆多時序資料分析功能;通過标簽快速索引,通過分區、分片技術,通過計算節點的彈性伸縮,支援對海量時序資料的多元度的高效聚合分析。

有了新的計算引擎的加持,特别是計算與存儲的分離的支援,TDengine 不僅能實時地處理資料的寫入和查詢,也能作為強大的時序資料分析工具。

更多細節,參閱相關說明:https://github.com/taosdata/TDengine。

借助 TDengine 3.0 的雲原生能力,使用者可以更友善地利用雲平台的能力,簡化部署和維護,進一步降本增效;極簡的時序資料平台和強大的分析功能,也能幫助使用者簡化業務架構、簡化應用設計,降低系統的維護成本,提升處理效率。

架構更新,先人一步,趕快點選

下載下傳連結 

https://docs.taosdata.com/releases

,感受 TDengine 3.0 帶來的全新體驗吧。