天蓝色流分析实施或最佳方法

Posted

技术标签:

【中文标题】天蓝色流分析实施或最佳方法【英文标题】:azure stream analytics implementation or the best approach 【发布时间】:2020-02-04 14:44:52 【问题描述】:

我是 Steam 分析的新手,我需要帮助来完成特定任务。 我有来自这种格式的 iot 集线器的遥测数据。 基本上,我将获取机器遥测数据以及该机器上的操作阶段流式传输到物联网集线器。 阶段将用标签 ex:"stageid":"stage1" 表示。我需要使用基于时间戳和阶段标签的流分析来计算每个阶段所花费的时间。

数据包示例:

[
"Payload": 
    "devid": "01",
    "locid": "loc01",
    "machid": "mac01",
    "stageid": "stage1",
    "timestamp": "2020-01-24T09:22:00.3270000Z"
,
"Payload": 
    "devid": "02",
    "locid": "loc01",
    "machid": "mac01",
    "stageid": "stage1",
    "timestamp": "2020-01-24T09:22:00.3270000Z"

]

[
"Payload": 
    "devid": "01",
    "locid": "loc01",
    "machid": "mac01",
    "stageid": "stage2",
    "timestamp": "2020-01-24T09:26:00.3270000Z"
,
"Payload": 
    "devid": "02",
    "locid": "loc01",
    "machid": "mac01",
    "stageid": "stage2",
    "timestamp": "2020-01-26T09:24:00.3270000Z"

]

请帮助我,我们可以通过查询来实现这一点吗?查询可能是什么,或者其他最好的方法是什么? 谢谢,

【问题讨论】:

【参考方案1】:

据我所知,ASA 内置功能无法满足您的需求。 ASA是一个实时收集数据和分析服务。换句话说,数据需要实时处理。当前数据不能等待下一个数据集做一些计算或合并的事情。即使你可以使用windows function和group by,我相信设备推送消息的频率也是可变的。

作为一种解决方法,我的想法是使用iot-hub azure function trigger。在触发器内部,您可以使用代码解析消息并将关键列(stageid、timestamp、devid)保存到一些存储中,也许是天蓝色的表存储。在每次插入之前,只需获取当前设备的最新行,计算当前消息所花费的时间,以便您可以生成该时间以存储在其他位置。最后,更新每个设备的最新行。

【讨论】:

感谢杰伊的回复。我还有 1 个用例,我必须在工作中检测 siteid 的变化。看起来这在 ASA 中也是不可能的,或者请让我知道它是否是样本

以上是关于天蓝色流分析实施或最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

天蓝色流分析同时结合数据

天蓝色流分析是不是读取来自所有分区的数据

任何可用的调试天蓝色流分析作业的日志/步骤?

天蓝色流分析查询太复杂?没有给出正确的输出,现在出错。接下来做啥

Azure 流分析自定义 dll

如何捕获来自事件中心的错误 json 记录到 azure 流分析