Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
✅ Azure Stream Analytics ✅ Fabric Eventstream
As janelas fornecem uma maneira de agregar eventos em vários intervalos de tempo, dependendo de definições de janela específicas. Existem quatro tipos de janelas temporais para escolher: Tumbling, Hopping, Sliding e Session.
A função Windows() estende esse conceito para calcular simultaneamente os resultados de várias definições de janela diferentes. A função Windows() permite especificar mais de uma definição de janela. A lógica de consulta é calculada para cada uma dessas definições de janela, e o resultado é uma união de todos os resultados da janela.
Como o resultado da função Windows() contém uma combinação de várias janelas, você precisa distinguir entre os diferentes resultados. Isso é feito atribuindo uma identidade a cada janela que pode ser acessada usando a função do sistema System.Window(). Id. System.Window() retorna um registro com o Id como seu campo.
Há duas maneiras de definir o Windows:
Atribua identidades exclusivas usando a função Window(),Window ( ID , window_definition ), onde ID é uma identidade de window_definition e é um valor varchar(max) exclusivo que não diferencia maiúsculas de minúsculas dentro da construção do Windows.
Sem identidades, caso em que System.Window(). Id resulta em valor nulo.
Sintaxe
| Windows ( window_definition, … )
| Windows ( Window ( id , window_definition ), … )
window_definition =
| HoppingWindow ( …
| TumblingWindow ( …
| SlidingWindow ( …
| SessionWindow ( …
| Hopping ( …
| Tumbling ( …
| Sliding ( …
| Session ( …
Observação
As construções do Windows não podem ser aninhadas. As identidades devem ser dadas a todas as definições de janela ou dadas a nenhuma.
Existem nomes de definição de janela encurtados, como "Tumbling", que podem ser usados no Windows() para evitar a repetição da palavra "janela" como em Windows(Window('MyWindow', TumblingWindow(…. Os nomes abreviados também podem ser usados fora da construção do Windows.
Não é um erro usar System.Window(). Id sem a construção do Windows, mas seu valor será nulo porque nenhuma identidade foi dada à janela.
Se as definições de janela forem especificadas usando a função Window(), todas as definições de janela deverão usar a função Window() e todas as IDs que não diferenciam maiúsculas de minúsculas deverão ser exclusivas. Nulo não é permitido.
Função System.Window()
A função System.Window() só pode ser usada na cláusula SELECT da instrução GROUP BY para recuperar metadados sobre a janela de tempo de agrupamento.
A função retorna um valor do tipo Record contendo um único campo Id, que contém a identidade da janela à qual o evento pertence.
Exemplos
Crie uma janela para contar carros para cada uma das durações 10, 20, 30, 40, 50 e 60 minutos sem identidade de janela.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
TumblingWindow(minute, 30),
TumblingWindow(minute, 40),
TumblingWindow(minute, 50),
TumblingWindow(minute, 60))
Crie janelas com um salto de 1 minuto e quatro durações diferentes - 1 min, 15 min, 30 min e 60 min.
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('1 min', TumblingWindow(minute, 1)),
Window('15 min', HoppingWindow(minute, 15, 1)),
Window('30 min', HoppingWindow(minute, 30, 1)),
Window('60 min', HoppingWindow(minute, 60, 1)))
Crie janelas de tamanhos diferentes e filtre os resultados com base na duração da janela especificada na tabela Referência.
WITH HoppingWindowResults AS
(
SELECT
System.Window().Id,
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
Window('H10', Hopping(minute, 10, 5)),
Window('H20', Hopping(minute, 20, 5)),
Window('H30', Hopping(minute, 30, 5)),
Window('H40', Hopping(minute, 40, 5)),
Window('H50', Hopping(minute, 50, 5)),
Window('H60', Hopping(minute, 60, 5)))
)
SELECT HoppingWindowResults.*
FROM HoppingWindowResults
JOIN ReferenceTable ON
HoppingWindowResults.TollId = ReferenceTable.TollId
AND HoppingWindowResults.Id = ReferenceTable.windowId