数据格式说明

本次算子版本更新,最主要的变化是新增了对新的数据格式的支持。

旧数据格式:
../../../_images/javascriptold.png
新数据格式:
../../../_images/javascriptnew.png

如图所示,新旧数据格式的最主要区别为:

  • 旧数据格式中,算子通常将数据中的 modelIdpointId 这两个字段结合起来筛选数据;
  • 新数据格式中,有单独的 measurementId 字段,可以用来过滤数据。


其中,measurementId 字段与数据资产目录中 Measurement 类型元数据相对应,可以在 数据资产目录 服务中 创建 Measurement 数据、获取 measurementId

对于 Measurement 元数据类型,用户可以直接在 数据资产目录 服务中建模,而无需在 IoT Hub 中进行设备模型建模。接入平台的数据可按照规定的数据格式被其他数据产品消费。


通过结合新增的 Record Formatter 算子,用户能够给测点、资产数据打标签。进而,通过新增的 Record Filter 算子,用户可以根据数据中的标签信息,使用表达式,对数据进行更灵活的过滤。


为了在整个算子功能上支持新的数据格式,我们适配了数十个原有算子。

适配后的算子名称与旧算子相同,且适配新格式的算子图标右上角标有 * 号(为了方便区分,本文档中适配后的算子名称后也标有 * 号)。


../../../_images/operator.png

在计算逻辑方面,适配后算子除输入/输出配置(Input/Output)采用 measurementId 而非 modelId::pointId 外,计算逻辑基本维持不变,更多细节请参考对应算子文档。


下面我们将进一步地展示两种新旧格式之前的区别。

旧数据格式 (ModelId::PointId)

{
   "orgId":"o1234567890",
   "modelId":"inverter",
   "modelIdPath":"/rootModel/inverter",
   "pointId":"inverter",
   "assetId":"zabPDuHq",
   "time":1542609276270,
   "value":23.4,
   "quality":0,
   "dq":0,
   "attr": {}
}


字段 说明
orgId 组织 ID
modelId 模型 ID
modelIdPath 模型 ID 的完整路径
pointId 模型上测点 ID
assetId 资产 ID
time 时间戳
value 测点值
quality 测点上的质量位,无质量位其值默认为 0
dq 可选字段,数据质量算子及其他算子的 Quality Filter 使用
attr 用于存储算子计算结果等信息,默认为空 JSON Object

新数据格式 (MeasurementId)

{
   "orgId":"o1234567890",
   "modelId":"legacyModelId",
   "modelIdPath":"/legacyModelId",
   "pointId":"legacyPointId",
   "assetId":"zabPDuHq",
   "assetTags": {"DCMModel":{"DCMModel::ModelA":{}}},
   "measurementId":"measurement1234",
   "measurementTags": {"Haystack":{"Haystack::temp":{"temp-attr":"dummy"}}},
   "time":1542609276270,
   "value":23.4,
   "quality":0,
   "dq":0,
   "attr": {}
}


字段 说明
orgId 组织 ID
modelId 模型 ID,遗留字段。适配新格式的算子,除 Record Formatter 等少数算子外不再使用该字段,字段值的正确性由用户保证。
modelIdPath 模型 ID的完整路径。遗留字段,适配新格式的算子,除 Record Formatter 等少数算子外不再使用该字段,字段值的正确性由用户保证。
pointId 模型上测点 ID, 遗留字段。适配新格式的算子,除 Point Lookup* 等少数算子外不再使用该字段,字段值的正确性由用户保证。
assetId 资产 ID
assetTags 资产 ID关联的标签,可选字段,标签通过 Record Formatter 算子查出
measurementId 测点 ID,可与数据资产目录中 Measurement 元数据关联
measurementTags 测点 ID关联的标签,可选字段,标签通过 Record Formatter 算子查出
time 时间戳
value 测点值
quality 测点上的质量位,无质量位其值默认为 0
dq 可选字段,数据质量算子及其他算子的 Quality Filter 使用
attr 用于存储算子计算结果等信息,默认为空 JSON Object

算子列表


算子分类 算子名称 支持旧数据格式(ModelId::PointId) 支持新数据格式(MeasurementId)
数据源算子 EDH Kafka Consumer o o
  Dev Raw Data Source o o
资产主数据算子 Asset Lookup o
  Child Asset Lookup o
  Parent Asset Lookup o
  Point Lookup o
  Asset Lookup*
o
  Child Asset Lookup*
o
  Parent Asset Lookup*
o
  Point Lookup*
o
数据处理算子 Record Sorter By Time o o
  Normalizer o
  Point Selector o
  Record Generator o
  Virtual Record Generator o
  Related Record Obtainer o
  Partitioner o
  Fixed Time Window Aggregator o
  Sliding Time Window Aggregator o
  Batch Merger o
  Last Changed Record Appender o
  Latest Record Merger o
  Record Capturer o
  Record Restorer o
  Point Selector*
o
  Fixed Time Window Aggregator*
o
  Sliding Time Window Aggregator*
o
  Batch Merger*
o
  Last Changed Record Appender*
o
  Latest Record Merger*
o
  Record Capturer*
o
  Record Restorer*
o
其他数据处理算子 Python Evaluator o
  JavaScript o
  Internal HTTP Client o
  Python Evaluator*
o
  JavaScript*
o
  Internal HTTP Client*
o
  Record Filter
o
  Record Formatter
o
数据质量算子 Late Point Tagger o
  Off Limit Tagger o
  Late Point Tagger*
o
  Off Limit Tagger*
o
电量计算算子 Last Record Appender o
  Cumulant Decomposer o
  Simplified Time Window Aggregator o
  Last Record Appender*
o
  Cumulant Decomposer*
o
  Simplified Time Window Aggregator*
o
目标算子 EDH Kafka Producer o o
  Trash o o