【发布时间】:2019-12-12 04:55:27
【问题描述】:
将设计一个系统,其中多个传感器将数据传输到事件中心。每个传感器每秒将传输大量数据(最多 15-20(大约 5 KB))。
- 一个用例是所有这些原始数据都必须以最小/无延迟传输到 cosmosDB,这是我可以通过以下架构实现的。
原始数据 -> 事件中心 -> Azure 流分析 -> CosmosDB
注意:上述用例是确定传感器的连接状态。所以它必须尽可能快。
- 另一个用例是传感器的指示属性,它取决于传感器的最后一个值(最多前 200 个值)。 现在问题就在这里。我尝试使用以下架构。
原始数据 -> 事件中心 -> Azure 流分析 -> Azure 函数 -> CosmosDB
因此,在这里,流分析的输出转到 azure 函数,它从 cosmosDB 获取前 200 个值进行必要的计算,然后将结果再次存储回 cosmosDB。但是这个过程似乎很慢。
COSMOS DB CONTAINERS
//Sensor Property Container
{
id: "sensor_id",
connection:true, //This needs to be updated as soon as raw data is available
indication:"RED" //This depends on previous 200 values from sensor
}
//Sensor Raw Value Container
{
id: "sensor_id",
rawData: "RAW_VALUE",
}
您可以查看下面的图片,了解我正在寻找的内容。
我还尝试在 azure 流分析中添加用户定义函数以在其中运行算法,但它不支持 cosmosDB 作为参考数据。
【问题讨论】:
标签: azure-functions azure-cosmosdb iot azure-eventhub azure-stream-analytics