我在azure流分析中有以下查询... DataInput只返回1行(我输出到blob并且可以看到它)...但看起来像CalcData正在处理更多的行...它看起来像是从多个滑动窗口中取出行。当我有事件间隔,然后我得到正确的输出,但当事件发生在彼此旁边时,滑动窗口似乎不正确
WITH DataInput AS 1 AS (SELECT
CONCAT(fqn, '_HealthIndex') AS fqn,
value as value,
count(value) as cntvalue
FROM DataInput
GROUP BY fqn,value,SlidingWindow(Duration( hour, 8 ))
),
CalcData AS
(SELECT
fqn,
count(*) as records,
sum(value) as alm,
100 - sum(case when cast(value as bigint)=19 and cast(cntvalue as bigint) > 1 then 5
when cast(value as bigint)=23 and cast(cntvalue as bigint) > 1 then 5
when cast(value as bigint)=64 and cast(cntvalue as bigint) > 1 then 10
when cast(value as bigint)=72 and cast(cntvalue as bigint) > 1 then 10
when cast(value as bigint)=77 and cast(cntvalue as bigint) > 0 then 5
when cast(value as bigint)=78 and cast(cntvalue as bigint) > 0 then 5
when cast(value as bigint)=83 and cast(cntvalue as bigint) > 16 then 5
when cast(value as bigint)=84 and cast(cntvalue as bigint) > 16 then 5
when cast(value as bigint)=91 and cast(cntvalue as bigint) > 0 then 30
when cast(value as bigint)=92 and cast(cntvalue as bigint) > 1 then 5
when cast(value as bigint)=101 and cast(cntvalue as bigint) > 1 then 15 else 0 end ) as value
,System.TimeStamp as t
from DataInput1 group by fqn,SlidingWindow(Duration( hour, 8 ))
)
任何洞察为什么CalcData不仅仅采用DataInput的输出将非常感激
CalcData
步骤仅从DataInput1
步骤的输出中获取数据,但是您通过DataInput1
中的滑动窗口对事件进行分组。每次事件进入或离开窗口时,滑动窗口都会创建输出。因此,您可以在多个滑动窗口中包含一个事件。为了确保事件最多包含在一个窗口中,请考虑使用翻滚窗口进行分组。