在Azure Stream Analytics分组中,通过从多个窗口滑动窗口分组

问题描述 投票:0回答:1

我在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的输出将非常感激

azure-stream-analytics
1个回答
0
投票

CalcData步骤仅从DataInput1步骤的输出中获取数据,但是您通过DataInput1中的滑动窗口对事件进行分组。每次事件进入或离开窗口时,滑动窗口都会创建输出。因此,您可以在多个滑动窗口中包含一个事件。为了确保事件最多包含在一个窗口中,请考虑使用翻滚窗口进行分组。

© www.soinside.com 2019 - 2024. All rights reserved.