這一版本中,我們引入(ru)了多項革新功(gong)能和性能優化,力求在為用戶(hu)提供極致體(ti)驗的同時(shi),不斷推動(dong)技術的前沿。
此次更新(xin)不僅針對開源社區版本(ben),進行了(le)一系(xi)(xi)列功能增(zeng)強和(he)性能提升,也為(wei)企業級用戶帶(dai)來了(le)多項關鍵功能,如雙活、S3 存(cun)儲支(zhi)持、傳統關系(xi)(xi)型(xing)數(shu)(shu)據庫的數(shu)(shu)據接(jie)入(ru)等。無(wu)論是(shi)數(shu)(shu)據處理的效(xiao)率,還是(shi)系(xi)(xi)統的可靠性和(he)安全性,新(xin)版本(ben)都有(you)顯(xian)著提升,滿足從小型(xing)項目到大規模企業級部署的各種需(xu)求。
開源的時序數據庫功能更新(所有版本同步更新)
時序數據 Join
之前版本,TDengine 只(zhi)實現了(le) Inner Join 功(gong)能(neng),為了(le)更好地支持客(ke)戶需求,本次 Join 功(gong)能(neng)增強支持除(chu) Cross Join 等時(shi)序數據庫(ku)中(zhong)基本沒有需求場景的 Join 類型(xing)外的所有 Join 類型(xing),包括傳統(tong)庫(ku)中(zhong)的 Left Join、Right Join、Full Join、Semi Join、Anti-Semi Join 以及(ji)時(shi)序庫(ku)中(zhong)特色的 ASOF Join、Window Join。
復合主鍵(重復時間戳)
在(zai)某些(xie)應用場景(jing)中,單(dan)純使用時間戳作為主鍵可能導致大量的記錄(lu)重復(fu)。這(zhe)些(xie)重復(fu)的記錄(lu)在(zai)生產環境中通常是必需(xu)的,不能僅作為單(dan)一記錄(lu)進行更新處理。
為(wei)(wei)了解(jie)決這(zhe)(zhe)一問題(ti),可以在創建普通表或超級表時(shi)(shi)(shi),利用復(fu)合(he)主鍵功能(neng)。用戶可以指定一個額外的(de)(de)(de)列(lie)作(zuo)為(wei)(wei)“Primary key”,與時(shi)(shi)(shi)間戳列(lie)一起構成復(fu)合(he)主鍵。當兩條記錄的(de)(de)(de)時(shi)(shi)(shi)間戳和 Primary key 列(lie)的(de)(de)(de)值都相同(tong)時(shi)(shi)(shi),它們(men)被(bei)視為(wei)(wei)同(tong)一條記錄;如果這(zhe)(zhe)些值有所不(bu)同(tong),則視為(wei)(wei)不(bu)同(tong)的(de)(de)(de)記錄。
CREATE TABLE table_name (
quot_time TIMESTAMP,
busi_sequ_no BIGINT PRIMARY KEY,
entr_prc DOUBLE,
entr_qty BIGINT,
……
);
Count Window (計數窗口查詢)
窗口將時序數據拆分成有限大小的“存儲桶”,每個桶包含若干條記錄。通過劃分窗口,可對這些記錄進行聚合計算。計數窗口在 3.2.3.0 版本支持在流計算中使用,在 3.3.0.0 版本支持在查詢中使用。
window_clause: {
SESSION(ts_col, tol_val)
| STATE_WINDOW(col)
| INTERVAL(interval_val [, interval_offset]) [SLIDING (sliding_val)] [FILL(fill_mod_and_val)]
| EVENT_WINDOW START WITH start_trigger_conditionEND WITH end_trigger_condition
| COUNT_WINDOW(count_val[, sliding_val])
}
TSMA
該功能旨在提(ti)升大數(shu)據量聚合(he)函數(shu)查詢(xun)性能。通(tong)過對固定時(shi)間窗口內(nei)的數(shu)據進行預(yu)(yu)計算(suan),并將預(yu)(yu)計算(suan)結(jie)果(guo)存儲(chu)到硬盤,查詢(xun)時(shi)通(tong)過讀取預(yu)(yu)計算(suan)結(jie)果(guo)以提(ti)高查詢(xun)性能。
- 創建基于超級表或普通表的 TSMA
CREATE TSMA tsma_name ON [dbname].table_name FUNCTION (func_name(func_param) [, ...] ) INTERVAL(time_duration);
- 創建基于小窗口 tsma 的大窗口 TSMA
CREATE RECURSIVE TSMA tsma_name2 ON [db_name.]tsma_name1 INTERVAL(time_duration);
存儲壓縮增強
存儲壓縮算法增強后,TDengine 的壓縮比預期可再提升一倍以上。此前 TDengine 已(yi)經支(zhi)持(chi)兩級壓縮(suo),但壓縮(suo)算法固定不可配置,改造后有以下增強:
- 第一級壓縮支持多種編碼方法且可擴充, 包括 simple8b、delta-i、delta-d、bit-packing、disabled
- 第二級壓縮支持多種壓縮算法且可擴充,包括 lz4、zlib、zstd、tsz、xz、disabled
- 壓縮等級支持 high、medium、low 三種
Explorer 社區版
從很多開源用戶(hu)希望有(you)可視化管(guan)理界面(mian)的需求出發,本次(ci)版本更新(xin)提供 Explorer 社區版,具(ju)備功能包(bao)括用戶(hu)登(deng)錄、系統消息、監控面(mian)板、數(shu)據(ju)寫入(ru)、數(shu)據(ju)瀏覽(lan)器、編程、流計(ji)算、數(shu)據(ju)訂閱、工具(ju)、集群等。
TDengine Enterprise(企業級功能)
TDengine 雙副本(+仲裁者)
部分(fen)客戶期望(wang)在(zai)保(bao)證一定可(ke)(ke)靠性、可(ke)(ke)用性條件下,盡可(ke)(ke)能(neng)壓縮部署成本(ben)。為此(ci)我(wo)們提(ti)出基于仲裁者的雙副本(ben)方(fang)案。該方(fang)案可(ke)(ke)提(ti)供集群中(zhong)“只有(you)單個服務故(gu)障且不出現連續(xu)故(gu)障”的容錯能(neng)力。
雙副本的使用場景:
1.有降低存儲成本需求的客戶
2.有降低物理節點需求的客戶
3.對(dui)高可用性(xing)要求稍低(di)的(de)客(ke)戶
雙副本的技術特點:
1.時序數據的副本數目為 2 ,但是集群內節點數目大于等于 3
2.當時(shi)序(xu)數(shu)據(ju)的某個副本(ben)所(suo)在物(wu)理節點宕機(ji)時(shi),可以自動切(qie)主,不丟失數(shu)據(ju),且可持續寫入、查(cha)詢
TDengine 雙活
雙活的使用場景:
- 部分客戶因為部署環境的特殊性只能部署兩臺服務器,同時希望實現一定的服務高可用和數據高可靠
- 客戶主要來自工業控制領域,也有些來自一些特殊的領域
- 既可以用于前面所述節點受限的環境,也可用于在兩套 TDengine 集群(不限節點數目)之間的災備場景
S3 存儲
S3 是可擴展、高可用的分布式存儲,存儲大量的非結構化數據對象,通過對象名(鍵值)索引到對象。S3 上的對象不能修改,且讀取對象的速度較本地磁盤慢,各廠商常根據上傳數據大小、讀取次數、讀取大小收費。
TDengine 針對 S3 存儲的特殊性,做(zuo)了很多(duo)優化,其優點(dian)包括:
- 存儲成本顯著降低
- 支持冷數據寫入、更新、刪除,行為透明
- 查詢速度下降在一倍左右,查詢行為透明
數據庫加密
數據庫存(cun)儲(chu)文件(jian)加密(mi),讀(du)寫透(tou)明。支持國標 sm4 加密(mi)算(suan)法,加密(mi)范(fan)圍(wei)包括(kuo)所(suo)有數據文件(jian)。
數據接入
本版本支持(chi)傳統關系型(xing)數據(ju)庫向 TDengine 平滑地進行遷移,包(bao)括:
- MySQL -> TDengine
- PostgreSQL -> TDengine
除此之外,每(mei)個版本都(dou)會做(zuo)很多其他的工作(zuo),比如 bug 修復(fu)、功能(neng)(neng)優化(hua)等(deng)(deng)等(deng)(deng)。如果想要了解新(xin)版本(時(shi)序(xu)數據庫功能(neng)(neng)更新(xin))更加詳細(xi)的發(fa)(fa)布(bu)信息,可以移步至??查看發(fa)(fa)布(bu)說明。歡迎大(da)家(jia)下載(zai)使用(yong)。


























