Azure Digital Twins 属性和遥测之间的区别?

Azure Digital Twins difference between properties and telemetries?

我正在从事 Azure 数字孪生项目,我对遥测和 属性 的理解有点困惑。

https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md 我得到:

Telemetry describes the data emitted by any digital twin, whether the data is a regular stream of sensor readings or a computed stream of data, such as occupancy, or an occasional error or information message.

我把这个总结为遥测=数据流

A Property describes the read-only and read/write state of any digital twin. For example, a device serial number may be a read-only property, the desired temperature on a thermostat may be a read-write property; and the name of a room may be a read-write property.

我的总结:属性是双胞胎的变量,具有低频率更新率,可以从双胞胎和物联网平台设置。属性不是来自传感器的流数据。

好的,如果我现在采用这些定义并查看 Microsoft 的示例,例如: https://docs.microsoft.com/en-us/azure/digital-twins/how-to-ingest-iot-hub-data?tabs=cli#add-a-model-and-twinhttps://techcommunity.microsoft.com/t5/internet-of-things-blog/rewind-the-metaverse-with-data-history-for-azure-digital-twins/bc-p/3302065#M672 我看到微软在文章中写了关于遥测数据并使用流数据,但在他们的 dtdl 模型中使用“@type”:“属性”。这与dtdl 的定义不一致。

我是不是理解错了?还是 Microsoft 示例不遵循自己的定义?

我知道,这里的很多内容仍处于预览和开发阶段,但无论如何我都想了解这种差异。

我不想用“我感觉到你的痛苦”来开始这个回答,但你得出了很多好的结论,所以:

我感受到你的痛苦。您分享的第一个 link 是关于 DTDL(数字孪生定义语言)的。它是一种在两个地方使用的语言:Azure 数字孪生 (ADT) 和 IoT Plug-and-Play(IoT PNP,Azure IoT 中心的一项功能)。虽然两者都使用这种语言,但 Azure 数字孪生仅使用该语言的一个子集,并且不会将属性和遥测视为相同。官方记录了差异 here,但我将在下面分享其中的含义。

ADT 确实支持遥测功能,它不会将遥测存储在孪生图中。因此,您可以将遥测数据上传到 ADT,但您需要添加一个事件侦听器,然后获取完全相同的遥测数据以对其执行任何操作。因此,您的设备发送的大多数 遥测 类型的消息将存储在 ADT 的 属性 类型字段中。这也是为什么即使是 Microsoft 示例也会将遥测数据存储在属性中的原因。

如果您对通过 ADT 流式传输遥测感兴趣,请注意 service rate limits。因此,在 high-frequency 遥测的情况下,您可能希望使用不同的服务来分析 and/or 转换该数据,然后再将其存储在... ADT 双胞胎 属性.

要点:

  • 遥测数据未存储在图表中,属性存储在图表中。
  • 遥测数据通常存储在双胞胎的 属性 字段中。
  • 如果您有 high-frequency 遥测数据,请不要通过 ADT 对其进行流式传输,transform/analyze 并将其存储在 属性.

我应该补充一点,我喜欢使用 ADT,我希望将来能解决 telemetry/property 功能。但在撰写本文时,请将遥测数据存储在属性中。