Azure functions Azure中的数据处理体系结构

Azure functions Azure中的数据处理体系结构,azure-functions,azure-cosmosdb,iot,azure-eventhub,azure-stream-analytics,Azure Functions,Azure Cosmosdb,Iot,Azure Eventhub,Azure Stream Analytics,将设计一个系统,其中多个传感器将数据传输至事件中心。每个传感器每秒传输的数据数(最大15-20(约5 KB)) 一个用例是,所有这些原始数据都必须以最小/无延迟的方式传输到cosmosDB,我可以用下面的架构实现这一点 原始数据->事件中心->Azure流分析->宇宙数据库 注:上述用例用于确定传感器的连接状态。所以它必须尽可能快 另一个用例是传感器的指示属性,该属性取决于传感器的最后一个值(最大前200个值)。 现在问题就在这里。我尝试使用以下架构 原始数据->事件中心->Azure流

将设计一个系统,其中多个传感器将数据传输至事件中心。每个传感器每秒传输的数据数(最大15-20(约5 KB))

  • 一个用例是,所有这些原始数据都必须以最小/无延迟的方式传输到cosmosDB,我可以用下面的架构实现这一点
原始数据->事件中心->Azure流分析->宇宙数据库

注:上述用例用于确定传感器的连接状态。所以它必须尽可能快

  • 另一个用例是传感器的指示属性,该属性取决于传感器的最后一个值(最大前200个值)。 现在问题就在这里。我尝试使用以下架构
原始数据->事件中心->Azure流分析->Azure功能->宇宙数据库

所以在这里,流分析的输出进入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 stream analytics中添加用户定义的函数,以便在其中运行算法,但它不支持将cosmosDB作为参考数据。

您应该尝试将逻辑合并到stream analytics中。添加更多移动部件总是会导致延迟。您能按deviceId对每分钟接收到的值进行计数吗?并在该计数低于预期值时生成警报?

我正在按设备Id对值分组一秒钟,只获取最新的值。我尝试将逻辑融入流分析中。然而,每秒钟当一个新数据到达时,我需要保存在cosmosdb中的以前的状态。因此,每次新数据到达时,我都需要从cosmosdb读取数据。我不知道如何在流分析中做到这一点。