我在Apache IoTDB中做了一个聚合查询计算,查询语句是这样的:
SELECT SUM(NON_NEGATIVE_DIFFERENCE(sql_select_time) /NON_NEGATIVE_DIFFERENCE(sql_select_count)/1000000) FROM root.olm.
OCEAN_BASE_04.
QPS.
359409358596864.obdemo.** GROUP BY ([now() - 30m, now()), 1m, 1m), level = 6
。然而,我从这一句话中得到了两种结果。右边的,level=6
指的是数据结构的sys
层,两个字段都除以sys
层值。对于错误的路径,带有 level=6
的一条路径是 sys
,另一条路径是 ora_001
。它们不应该属于同一组,但它们聚合在一起。这种情况是错误还是配置错误?有什么解决办法吗?
在Apache IoTDB的树形数据模型中,此类查询会执行笛卡尔积,因此会出现您提到的现象。如果是对单个设备进行查询,结果是没有问题的。如果进行多个设备查询,可以通过检查过滤计算值。不过已经有计划参考标准SQL实现表模型了,这样的问题就不会再出现了。