塑造来自不同设备的事件(即不同的 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
实际上,我们拥有永远不会共享任何属性的不同类型的设备。因此,
- 我们是否会在速度和内存分配 (blob) 方面获得相同程度的性能?
- 我们在浪费 space 吗?
- 是否有更好的组织活动的方式?
- 如果我们更改属性并引入公共字段会怎么样?
谢谢:)
感谢您对 TSI 的关注。我是团队的高级产品经理。
我相信你组织活动的方式是好的。您还可以使用 propertyType
之类的东西进行优化,以减少 columns.For 示例的数量:
{
"deviceType" : "a"
"propertyType": "humidity"
"value": 22.5
}
这将在您的环境中创建一个 table 结构,如下所示:
propertyType value
humidity 22.5
temperature 26.5
该结构将取决于您在环境中拥有的属性数量。在您在主题中发布的示例中,您可以直接通过查询查询属性。但是,如果您使用我的方法,则需要在查询中使用过滤器(如果属性太多,这可能无法为您提供最佳查询性能。)
我希望这能澄清您的问题。如果我能回答更多问题,请告诉我。
我们部署了一个 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
实际上,我们拥有永远不会共享任何属性的不同类型的设备。因此,
- 我们是否会在速度和内存分配 (blob) 方面获得相同程度的性能?
- 我们在浪费 space 吗?
- 是否有更好的组织活动的方式?
- 如果我们更改属性并引入公共字段会怎么样?
谢谢:)
感谢您对 TSI 的关注。我是团队的高级产品经理。
我相信你组织活动的方式是好的。您还可以使用 propertyType
之类的东西进行优化,以减少 columns.For 示例的数量:
{
"deviceType" : "a"
"propertyType": "humidity"
"value": 22.5
}
这将在您的环境中创建一个 table 结构,如下所示:
propertyType value
humidity 22.5
temperature 26.5
该结构将取决于您在环境中拥有的属性数量。在您在主题中发布的示例中,您可以直接通过查询查询属性。但是,如果您使用我的方法,则需要在查询中使用过滤器(如果属性太多,这可能无法为您提供最佳查询性能。)
我希望这能澄清您的问题。如果我能回答更多问题,请告诉我。