物联网传感器每10分钟在1kHZ进行1000次测量,并将10个单独消息中的值发送到Azure IoT Hub。我应该将十个单独的消息连接回一个用于进一步处理,例如计算RMS和FFT。
消息具有以下结构:
{
"SampleID" : 12344,
"PartionIdx" : 2,
"NbrPartitions": 10,
"Values" : [12,13,14,13,12,11,10,9]
}
因此,在收到所有10个消息后,具有相同SampleID的所有消息的值应按PartitionIdx顺序连接在一起。我尝试使用Stream Analytics但失败了。
Stream Analytics的这项任务太复杂了吗?如果是,除了编写连接的Web作业之外,还有其他选择。
答案 0 :(得分:1)
问题有两个方面
1, 如果特定设备Id的事件始终到达eventhub和同一个eventhub分区,或者如果您对数据的乱序方式有所了解,可以使用TIMESTAMP BY OVER()子句创建一个每个设备的不同时间线。这将阻止deviceId的输出,直到收到来自该分区的足够数据。
对于2,您可以像@ js-azure一样使用Collect()。如果您希望将数据格式化为特定记录而不是记录数组,则可以使用javascript aggregates。