流分析输入上的参考数据连接不提供输出
Posted
技术标签:
【中文标题】流分析输入上的参考数据连接不提供输出【英文标题】:Reference data join on stream analytics input not giving output 【发布时间】: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/… 【参考方案1】:这一直有效。我只需要在流分析的参考输入路径中指定参考 blob 的输入路径,包括文件名。我基本上只引用了没有实际文件的 blob 容器。因此,当我将路径模式更改为“filename.json”时,我得到了结果。这是一个愚蠢的错误。
【讨论】:
以上是关于流分析输入上的参考数据连接不提供输出的主要内容,如果未能解决你的问题,请参考以下文章