小 T 導(dǎo)讀:作為一款典型的時序數(shù)據(jù)庫(Time-Series Database)產(chǎn)品,TDengine 被廣泛運(yùn)用于物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)、車聯(lián)網(wǎng)、IT 運(yùn)維、能源、金融等領(lǐng)域。TDengine 本身提供了大量的計(jì)算函數(shù),在很多場景下,用戶都不需要自己編程來實(shí)現(xiàn)某些計(jì)算功能。當(dāng)然,隨著場景的不斷增多,用戶提出了越來越多的需求,TDengine 也在不斷地演進(jìn)和提升。
經(jīng)過研發(fā)同學(xué)的不懈努力,TDengine 2.6 版本正式發(fā)布了。該版本帶來眾多新特性,一方面是優(yōu)化了 SQL 語法,一方面是增加了大量的計(jì)算函數(shù),以支持用戶的更多使用場景。該版本還修復(fù)了之前版本存在的一些 bug。
下面具體來看一下,2.6 版本帶來的重要更新。
SQL 語法優(yōu)化
- 在新的 SQL 語法中,TIMESTAMP 支持縮寫
在 SQL 語句中用到的時間戳,可以只提供日期,比如 “2022-02-02”,系統(tǒng)自動將其轉(zhuǎn)換為“2022-02-02 00:00:00”。
比如在之前的版本中,執(zhí)行以下語句:
taos> select last(ts), sum(f1) from t1987 where ts>="2017-07-15" interval(1m) ;
TDengine 會報(bào)錯:
DB error: invalid SQL: invalid timestamp (0.000065s)
我們必須這樣寫:
select last(ts), sum(f1) from t1987 where ts>="2017-07-15 00:00:00.000" interval(1m)
在 2.6 版本中,可以只提供日期部分了。
- 增強(qiáng)了 LIKE 通配符使用的校驗(yàn)規(guī)則
當(dāng) LIKE 匹配字符為字符串時,SQL 才可以被解析。
- 新增多個時間窗口關(guān)鍵詞
_WSTART:窗口起始時間
_WSTOP:窗口結(jié)束時間
_WDURATION(precision):窗口持續(xù)時間
_QSTART: 查詢起始時間
_QSTOP: 查詢結(jié)束時間
_QDURATION: 查詢持續(xù)時間
- 建立明確的轉(zhuǎn)義字符表
提供了明確的轉(zhuǎn)義規(guī)則。
新增函數(shù)
- 新增聚合函數(shù)
HYPERLOGLOG() :采? hyperloglog 算法,估算某列的基數(shù)。
SELECT HYPERLOGLOG(field_name) FROM { tb_name | stb_name } [WHERE clause];
MODE():返回 database 中出現(xiàn)頻率最高的值,若存在多個頻率相同的最高值,輸出空。
HISTOGRAM():統(tǒng)計(jì)數(shù)據(jù)按照用戶指定區(qū)間的分布。
ELAPSED():表達(dá)了統(tǒng)計(jì)周期內(nèi)連續(xù)的時間長度,和 TWA 函數(shù)配合使用可以計(jì)算統(tǒng)計(jì)曲線下的面積。在通過 INTERVAL 子句指定窗口的情況下,統(tǒng)計(jì)在給定時間范圍內(nèi)的每個窗口內(nèi)有數(shù)據(jù)覆蓋的時間范圍;如果沒有 INTERVAL 子句,則返回整個給定時間范圍內(nèi)的有數(shù)據(jù)覆蓋的時間范圍。
- 新增多個時間相關(guān)函數(shù)
NOW() :返回客戶端當(dāng)前系統(tǒng)時間。
TODAY() :返回客戶端當(dāng)日零時的系統(tǒng)時間。
TIMEZONE() :返回客戶端當(dāng)前時區(qū)信息。
TO_ISO8601() :將 UNIX 時間戳轉(zhuǎn)換成為 ISO8601 標(biāo)準(zhǔn)的日期時間格式,并附加客戶端時區(qū)信息。
TO_UNIXTIMESTAMP():將日期時間格式字符串轉(zhuǎn)換成 UNIX 時間戳,輸入字符串內(nèi)包含時區(qū)信息也會做相應(yīng)轉(zhuǎn)換。
TIMETRUNCATE() :將時間戳按照指定的時間單位進(jìn)行截?cái)唷?
TIMEDIFF() :計(jì)算兩個時間戳之間的差值,并近似到指定時間單位所指定的精度。
- 新增多個字符串處理函數(shù)
LOWER() :將字符串參數(shù)值轉(zhuǎn)換為全小寫字母。
UPPER() :將字符串參數(shù)值轉(zhuǎn)換為全大寫字母。
CONCAT() :字符串連接函數(shù)。
CONCAT_WS() :帶分隔符的字符串連接函數(shù)。
SUBSTR() :從源字符串 str 中的指定位置 pos 開始取一個長度為 len 的子串并返回。
LENGTH() :以字節(jié)計(jì)數(shù)的字符串長度。
CHAR_LENGTH() :以字符計(jì)數(shù)的字符串長度。
- 新增選擇函數(shù)
TAIL():返回跳過最后 offset_val 個,然后取連續(xù) k 個記錄,不忽略 NULL 值。
SELECT TAIL(field_name, k, offset_val) FROM {tb_name | stb_name} [WHERE clause];
UNIQUE(): 返回該列的數(shù)值首次出現(xiàn)的值。
SELECT UNIQUE(field_name) FROM {tb_name | stb_name} [WHERE clause];
- 其他新增計(jì)算函數(shù)
STATEDURATION():返回滿?某個條件的連續(xù)記錄的時間?度,結(jié)果作為新的?列追加在每?后?。
STATECOUNT():返回滿?某個條件的連續(xù)記錄的個數(shù),結(jié)果作為新的?列追加在每?后?。
CAST():數(shù)據(jù)類型轉(zhuǎn)換函數(shù),輸入?yún)?shù) expression 支持普通列、常量、標(biāo)量函數(shù)及它們之間的四則運(yùn)算,不支持 tag 列,只適用于 select 子句中。
MAVG():計(jì)算連續(xù) k 個值的移動平均數(shù)(moving average)。
典型的數(shù)學(xué)函數(shù) ABS、COS、LOG 等。
增強(qiáng)了 DIFF() 函數(shù),支持忽略負(fù)值。
taosAdapter 更新
- taosAdapter 支持 Prometheus 數(shù)據(jù)讀寫分離的集群方案 remote_read 和 remote_write。
- taosAdapter 增加新的 RESTful 接口,支持無上限的數(shù)據(jù)批量拉取功能,保證應(yīng)用能夠獲取任意大小的查詢結(jié)果,并且大大減小查詢的時延。
- JDBC-RESTful 支持 taosAdapter 的多次批量返回的數(shù)據(jù)結(jié)果。
當(dāng)前版本也修復(fù)了之前版本中發(fā)現(xiàn)的一些 bug,具體可參見完整的發(fā)布說明。
2.6 版本的哪些功能是你期待已久的?趕快下載體驗(yàn)吧:http://www.fjzmyy.cn/all-downloads。
此外,TDengine 的企業(yè)版本還提供了 DELETE 功能,可以刪除指定表或超級表中的數(shù)據(jù)。感興趣的用戶可以聯(lián)系我們,試用體驗(yàn)。



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



-1.png)







證.png)


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



