代码之家  ›  专栏  ›  技术社区  ›  MAK

流分析输入上的引用数据连接不提供输出

  •  0
  • MAK  · 技术社区  · 8 年前

    这是我在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存储。速度值已经超过500了,但我没有得到任何结果。

    我做错什么了?

    1 回复  |  直到 8 年前
        1
  •  1
  •   MAK    8 年前