【发布时间】:2018-09-05 20:59:23
【问题描述】:
我正在尝试使用来自事件中心的参考数据和输入流在 Azure 流分析作业中设置规则。
这是我在 BLOB 存储中的参考数据 JSON 包:
{
"ruleId": 1234,
"Tag" : "TAG1",
"metricName": "velocity",
"alertName": "velocity over 500",
"operator" : "AVGGREATEROREQUAL",
"value": 500
}
这是流分析作业中的转换查询:
WITH
transformedInput AS
(
SELECT
metric = GetArrayElement(DeviceInputStream.data,0),
masterTag = rules.Tag,
ruleId = rules.ruleId,
alertName = rules.alertName,
ruleOperator = rules.operator,
ruleValue = rules.value
FROM
DeviceInputStream
timestamp by EventProcessedUtcTime
JOIN
rules
ON DeviceInputStream.masterTag = rules.Tag
)
--rule output--
SELECT
System.Timestamp as time,
transformedInput.Tag as Tag,
transformedInput.ruleId as ruleId,
transformedInput.alertName as alert,
AVG(metric.velocity) as avg
INTO
alertruleblob
FROM
transformedInput
GROUP BY
transformedInput.masterTag,
transformedInput.ruleId,
transformedInput.alertName,
ruleOperator,
ruleValue,
TumblingWindow(second, 6)
HAVING
ruleOperator = 'AVGGREATEROREQUAL' AND avg(metric.velocity) >= ruleValue
这不会产生任何结果。但是,当我使用样本输入和参考数据进行测试时,我得到了预期的结果。但这似乎不适用于流数据。我的用例是,如果 6 秒窗口的平均速度大于 500,则将结果存储到另一个 blob 存储中。一段时间以来,velocity 的值一直大于 500,但我没有得到任何结果。
我做错了什么?
【问题讨论】:
-
根据您的描述,我这边很难重现您的问题。建议您尝试追踪ASA的日志,请参考此文档:azure.microsoft.com/en-us/blog/…
标签: json azure azure-stream-analytics