我们部署了一个 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)方面获得相同程度的性能?
- 我们在浪费空间吗?
- 有没有更好的方式来组织活动?
- 如果我们更改属性并引入一个公共字段怎么办?
谢谢 :)