塑造来自不同设备的事件(即不同的 json 属性)

Shaping events from different devices (i.e. different json properties)

我们部署了一个 Azure TSI 预览版,用于接收来自 IoT 中心的消息。 我们正在思考当不同类型的设备生成的事件没有属性交集时适用的最佳实践是什么。

例如,考虑来自类型 A 的设备的消息:

{
  "timestamp" : "2019-02-25T01:08:00Z",
  "devicetype" : "a",
  "windspeed" : 10,
  "airpressure" : 101300
}

以及来自 B 类设备的消息

{
  "timestamp" : "2019-02-25T01:09:00Z",
  "devicetype" : "b",
  "temperature" : 26.5,
  "humidity" : 22.5
}

其中 timestamp 是用作源时间戳的列,devicetype 是用作时间序列 ID 的列。

按照文档,并在资源管理器中检查结果事件,结果输出看起来像

  timestamp            | devicetype | windspeed | airpressure | tempearature | humidity 
  2019-02-25T01:08:00Z | a          | 10        | 101300      |              |          
  2019-02-25T01:09:00Z | b          |           |             | 26.5         | 22.5     

实际上,我们拥有永远不会共享任何属性的不同类型的设备。因此,

谢谢:)

感谢您对 TSI 的关注。我是团队的高级产品经理。

我相信你组织活动的方式是好的。您还可以使用 propertyType 之类的东西进行优化,以减少 columns.For 示例的数量:

{
"deviceType" : "a"
"propertyType": "humidity"
"value": 22.5
}

这将在您的环境中创建一个 table 结构,如下所示:

propertyType     value
humidity         22.5
temperature      26.5

该结构将取决于您在环境中拥有的属性数量。在您在主题中发布的示例中,您可以直接通过查询查询属性。但是,如果您使用我的方法,则需要在查询中使用过滤器(如果属性太多,这可能无法为您提供最佳查询性能。)

我希望这能澄清您的问题。如果我能回答更多问题,请告诉我。