工业物联网时序数据库管理系统 Apache IoTDB 是支持物联网时序数据收集、存储、查询与分析一体化的数据管理引擎,支持“端-边-云”一体化部署,适用于高端装备、工厂设备、高速网联设备等多种数据管理场景,是工业互联网时序数据管理的核心基础支撑。
1
升级指南
0.13正式版预计春节前发布,新功能陆续发布中,欢迎大家积极使用!
数据查询支持嵌套表达式计算
▎在0.12版本及以前版本中,数据查询不支持表达式运算,如下查询是不支持的:
IoTDB> select a + b from root.sg
Msg: 401: Error occurred while parsing SQL to physical plan: line 1:9 mismatched input '+' expecting {FROM, ',', '.', '*'}
▎在最新的0.13版本中,数据查询中支持使用嵌套表达式进行计算。例如,在某电器监控场景下,监控某设备root.sg.device1。现在有电压时间序列 root.sg.device.u ,电流时间序列 root.sg.device1.i,若我们希望查看设备在各个时间戳下的功率,可以通过SQL语句 “SELECT u*i FROM root.sg”来完成。
2
功能定义
我们根据是否包含聚合查询函数将嵌套表达式分为两类,聚合查询函数不能和时间序列或时间序列生成函数同时出现在一个查询语句中。下面是嵌套表达式的功能定义。
下图是在ANTLR中对嵌套表达式相关功能的语法定义。在官方用户手册中也有相应解释。
3
使用说明
3.1 不包括聚合查询的嵌套表达式
▎示例:
▎注意点:
某时间戳下,只有左右操作数的值均不为null,表达式才会有结果,否则表达式值为null,且默认不显示。
如果表达式中某个操作数对应多条时间序列(如 select a + * from root.sg),那么每条时间序列对应的结果都会出现在结果集中。
3.2 包括聚合查询的嵌套表达式
▎示例:
▎注意点: