【发布时间】:2019-03-12 09:28:25
【问题描述】:
在我的 Azure 流分析作业中,我想为每个设备创建一个窗口(当设备收到数据时)。我正在使用会话窗口为每个设备维护一个单独的窗口。我希望每 5 分钟发出一次温度阈值违规警报,但有时行为会有所不同。以下是我的 ASA JOB 查询
SELECT
t1.DeviceId,MIN(t1.Temperature)MinTemperature,
MAX(t1.Temperature)MaxTemperature,t2.ThresholdLimit,System.Timestamp as
EventProcessedUtcTime,t3.EventProcessedUtcTime as LastAlertTime
,MIN(CAST(t1.MessageTime AS DateTime)) AS Window_start,
System.Timestamp AS Window_end,Count(t1.DeviceId)EventCount
INTO
[alertOutputsb]
FROM
[tsfInput] t1
INNER JOIN [device-threashold-Input] t2
ON t1.DeviceId = t2.DeviceId
LEFT OUTER JOIN [temperature-alerts-sql-Input] t3
ON t1.DeviceId = t3.DeviceId
WHERE t1.Temperature >= Cast(t2.ThresholdLimit as float)
GROUP BY t1.DeviceId,t2.ThresholdLimit,t3.EventProcessedUtcTime,
SESSIONWINDOW(minute, 4, 5) OVER (PARTITION BY t1.DeviceId)
HAVING MIN(t1.Temperature) >= Cast(t2.ThresholdLimit as float)
AND MAX(t1.Temperature) >= Cast(t2.ThresholdLimit as float)
输入JSON 我每隔 1 分钟发送一次设备数据。
{
"DeviceId": "9327848923ABE",
"Temperature": 300.5,
"MessageTime": "2019-03-02T05:50:05.362Z"
}
对于设备 - 9327848923ABE,我在 10 分钟内收到第一个警报,然后在 5 分钟窗口内收到所有警报。
【问题讨论】:
-
我认为这是 ASA 会话窗口中的错误。我开始为 3 台设备(间隔 30 秒)和 1 台设备停止 1 分钟后发送新作业发送事件。仍然,我每 5 分钟收到 3 个警报,并且所有结束时间都相同
标签: azure azure-stream-analytics