В Azure Stream Analytics группировка по скользящему окну из нескольких окон - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующие запросы в Azure Stream Analytics ... 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

1 Ответ

0 голосов
/ 19 сентября 2018

Шаг CalcData принимает данные только с выхода шага DataInput1, однако вы группируете свои события через скользящее окно в DataInput1.Скользящее окно создает вывод каждый раз, когда событие входит в окно или покидает его.Таким образом, вы можете включить событие в несколько скользящих окон.Чтобы удостовериться, что событие включено не более чем в одно окно, рассмотрите возможность использования группировки вместо окна.

...