数据格式说明

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

旧数据格式:
../../../_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