关于tdengine:TDengine-26-正式发布新增大量计算函数

44次阅读

共计 2456 个字符,预计需要花费 7 分钟才能阅读完成。

小 T 导读:作为一款典型的时序数据库(Time-Series Database)产品,TDengine 被宽泛使用于物联网、工业互联网、车联网、IT 运维、能源、金融等畛域。TDengine 自身提供了大量的计算函数,在很多场景下,用户都不须要本人编程来实现某些计算性能。当然,随着场景的一直增多,用户提出了越来越多的需要,TDengine 也在一直地演进和晋升。

通过研发同学的不懈努力,TDengine 2.6 版本正式公布了。该版本带来泛滥新个性,一方面是优化了 SQL 语法,一方面是减少了大量的计算函数,以反对用户的更多应用场景。该版本还修复了之前版本存在的一些 bug。

上面具体来看一下,2.6 版本带来的重要更新。

SQL 语法优化

1. 在新的 SQL 语法中,TIMESTAMP 反对缩写

在 SQL 语句中用到的工夫戳,能够只提供日期,比方“2022-02-02”,零碎主动将其转换为“2022-02-02 00:00:00”。

比方在之前的版本中,执行以下语句:

taos> select last(ts), sum(f1) from t1987 where ts>="2017-07-15" interval(1m) ;

Dengine 会报错:

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 版本中,能够只提供日期局部了。

2. 加强了 LIKE 通配符应用的校验规定

当 LIKE 匹配字符为字符串时,SQL 才能够被解析。

3. 新增多个工夫窗口关键词

_WSTART:窗口起始工夫

_WSTOP:窗口完结工夫

_WDURATION(precision):窗口持续时间

_QSTART: 查问起始工夫

_QSTOP: 查问完结工夫

_QDURATION: 查问持续时间

4. 建设明确的转义字符表

提供了明确的本义规定。

新增函数

1. 新增聚合函数

HYPERLOGLOG():采⽤ hyperloglog 算法,估算某列的基数。

SELECT HYPERLOGLOG(field_name) FROM {tb_name | stb_name} [WHERE clause];

MODE():返回 database 中呈现频率最高的值,若存在多个频率雷同的最高值,输入空。

HISTOGRAM():统计数据依照用户指定区间的散布。

ELAPSED():表白了统计周期内间断的工夫长度,和 TWA 函数配合应用能够计算统计曲线下的面积。在通过 INTERVAL 子句指定窗口的状况下,统计在给定工夫范畴内的每个窗口内有数据笼罩的工夫范畴;如果没有 INTERVAL 子句,则返回整个给定工夫范畴内的有数据笼罩的工夫范畴。

2. 新增多个工夫相干函数

NOW():返回客户端以后零碎工夫。

TODAY():返回客户端当日零时的零碎工夫。

TIMEZONE():返回客户端以后时区信息。

TO_ISO8601():将 UNIX 工夫戳转换成为 ISO8601 规范的日期工夫格局,并附加客户端时区信息。

TO_UNIXTIMESTAMP():将日期工夫格局字符串转换成 UNIX 工夫戳,输出字符串内蕴含时区信息也会做相应转换。

TIMETRUNCATE():将工夫戳依照指定的工夫单位进行截断。

TIMEDIFF():计算两个工夫戳之间的差值,并近似到指定工夫单位所指定的精度。

3. 新增多个字符串处理函数

LOWER():将字符串参数值转换为全小写字母。

UPPER():将字符串参数值转换为全大写字母。

CONCAT():字符串连贯函数。

CONCAT_WS():带分隔符的字符串连贯函数。

SUBSTR():从源字符串 str 中的指定地位 pos 开始取一个长度为 len 的子串并返回。

LENGTH():以字节计数的字符串长度。

CHAR_LENGTH():以字符计数的字符串长度。

4. 新增选择函数

TAIL():返回跳过最初 offset_val 个,而后取间断 k 个记录,不疏忽 NULL 值。

SELECT TAIL(field_name, k, offset_val) FROM {tb_name | stb_name} [WHERE clause];
UNIQUE(): 返回该列的数值首次呈现的值。

SELECT UNIQUE(field_name) FROM {tb_name | stb_name} [WHERE clause];

5. 其余新增计算函数

STATEDURATION():返回满⾜某个条件的间断记录的工夫⻓度,后果作为新的⼀列追加在每⾏后⾯。

STATECOUNT():返回满⾜某个条件的间断记录的个数,后果作为新的⼀列追加在每⾏后⾯。

CAST():数据类型转换函数,输出参数 expression 反对一般列、常量、标量函数及它们之间的四则运算,不反对 tag 列,只实用于 select 子句中。

MAVG():计算间断 k 个值的挪动平均数(moving average)。

典型的数学函数 ABS、COS、LOG 等。

加强了 DIFF() 函数,反对疏忽负值。

taosAdapter 更新

  1. taosAdapter 反对 Prometheus 数据读写拆散的集群计划 remote_read 和 remote_write。
  2. taosAdapter 减少新的 RESTful 接口,反对无下限的数据批量拉取性能,保障利用可能获取任意大小的查问后果,并且大大减小查问的时延。
  3. JDBC-RESTful 反对 taosAdapter 的屡次批量返回的数据后果。

以后版本也修复了之前版本中发现的一些 bug,具体可参见残缺的公布阐明。

2.6 版本的哪些性能是你期待已久的?赶快下载体验吧:https://www.taosdata.com/all-…。

此外,TDengine 的企业版本还提供了 DELETE 性能,能够删除指定表或超级表中的数据。感兴趣的用户能够分割咱们,试用体验。


想理解更多 TDengine Database 的具体细节,欢送大家在 GitHub 上查看相干源代码。

正文完
 0