我有一个IOT集线器,其中的设备会将其传感器数据推送到其中,并存储在SQL数据库中。通过Stream Analytics作业似乎很容易做到。
但是,棘手的部分如下。我要推送的数据未规范化,并且由于我使用的是SQL数据库,因此我希望在多个表之间构建数据。对于Stream Analytics,这似乎不是一件容易的事。
这是我推送到IOT集线器的有效负载的一个示例:
{
"timestamp" : "2019-01-10 12:00",
"section" : 1,
"measurements" :
{
"temperature" : 28.7,
"height" : 280,
"ec" : 6.8
},
"pictures" : {
"101_a.jpg",
"102_b.jpg",
"103_c.jpg"
}
}
我的数据库有一个表 Measurement , MeasurementItem 和 Picture 。我想将时间戳和节存储在 Measurement 记录中,将温度,高度和ec存储在 MeasurementItem 记录中,并将图片存储在 Picture 中>表格。 填充一个表很容易,但是要填充第二个表,我需要前一条记录的生成的自动增量ID来保持关系完整。
Stream Analytics实际上可行吗?如果没有,我应该怎么做?
答案 0 :(得分:2)
出于多种原因,您不应该在Stream Analytics(SA)上尝试使用它。它不是为这样的工作负载而设计的,因为否则SA将无法执行此工作。它只是根据输入数据将数据发送到一个或多个接收器。
我建议将数据传递到能够在输出端执行逻辑的组件。有一些选择。 2个示例可能是:
Azure Function
(通过服务总线触发,指向here中所述的IoT中心内置端点)此解决方案还附带有价格,每个传入数据包将调用一个逻辑单元,您必须为此额外付费。请注意,Azure Functions上有计费选项,这些选项不取决于调用数量,但可以为您提供更像应用程序服务的模型中的逻辑。
如果要处理的数据量很大,则可以考虑将Data Lake Storage Account与Data Lake Analytics结合使用的体系结构。后者也可以将传入的数据收集,汇总和分发到不同的数据存储中。
答案 1 :(得分:0)