Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

count flat timeseries 统计所有多元序列分量个数及一元序列个数
count timeseries 统计所有多元序列个数及一元序列个数

entity == device

存储组.实体.一元物理量 的完整路径 unarySeries
存储组.实体.多元物理量 的完整路径 multiSeries

一元物理量 unaryMeasurement
多元物理量 multiMeasurement
多元物理量分量 MultiMeasurementComponent


在现在的IoTDB中,device指的是除了路径最后一层外的部分,例如对于root.sg1.d1.s1来说,root.sg1.d1就是deviceId。引入vector后,路径中会多出一个vector name,如root.sg1.d1.vector1.s1,对于这个序列而言,它的deviceId应该依然是root.sg1.d1而不是root.sg1.d1.vector1,它的measurementId应该是vector1.s1而不是单独的s1,同样的对于root.sg1.d1.vector1这个多元序列而言,它的deviceId也是root.sg1.d1,measurementId是vector1



PartialPath

现在IoTDB中,序列名是用PartialPath来表征的,在其中也是默认将倒数第二层作为deviceId,PartialPath内部是用一个String[] nodes记录路径的,所以需要在PartialPath中再记录一个index,来表示第几层是deviceId。

...


这里可以让 VectorPartialPath 内部的 nodes 始终只表示到 vector 层,即 ("root", "sg", "device", "vector"),然后下面的 subSensors 统一改为用 String 存储,这样 device 直接返回上一层,measurement 根据 subSensor 的 size,1个就返回 vector + subSensor[0], 否则返回 vector。对于需要使用 subSensor 作为 PartialPath 使用的情况,用 nodes + subsensor 返回数组新建 PartialPath 即可 ————————————魏祥威注).


MTree & MManager改动

MTree中需要记录deviceId的信息(需要考虑如何实现,因为我们支持嵌套序列),也就是说一个MNode,可能既充当Measurement,也要充当device

...

注意:s1 节点依然为 MeasurementMNode 节点,也就是说它依然可以作为一条时间序列的叶子节点,不影响现有计算时间序列、展示和查找时间序列的逻辑


设备模板改动

设备模板中字段:
Map<String, IMeasurementSchema> schemaMap
记录了每一个测点名称到其schema的映射,这里需要将其key变为完整测点名称

...

应改为:
vector.s1 -> VectorMeasurementSchema(s1, s2)
vector.s2 -> VectorMeasurementSchema(s1, s2)
s3 -> MeasurementSchema(s3)
s4 -> MeasurementSchema(s4)

在设备模板中查找测点时,应传入完整测点路径


对查询的影响

查询构造逻辑计划时,QueryOperator中的SelectComponent中的List<PartialPath> pathsCache,是从MTree中拿到的PartialPath,在这一步的时候,就需要确定deviceId在哪一层。

...