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 de instantâneos agrupam eventos que têm o mesmo carimbo de data/hora. Ao contrário de outros tipos de janelas, que exigem uma função de janela específica (como SessionWindow()), você pode aplicar uma janela de instantâneo adicionando System.Timestamp() à cláusula GROUP BY.
O diagrama a seguir ilustra um fluxo com uma série de eventos e como eles são mapeados em janelas de instantâneo.
System.Timestamp() pode ser considerado na cláusula GROUP BY como uma coluna chave ou uma definição de janela de instantâneo porque agrupa eventos em uma janela com base na igualdade de carimbos de data/hora. Quando combinado com outra função de janela, System.Timestamp() é tratado como uma chave e não como uma definição de janela. System.Timestamp() não produz um erro quando usado com outras funções de janela, ao contrário de quando várias funções de janela são usadas na cláusula GROUP BY. Usar System.Timestamp() e uma função de janela no GROUP BY pode ser útil para agrupar os resultados.
Qualquer expressão que contenha System.Timestamp() não é considerada uma janela. Por exemplo, GROUP BY DATEPART(minute, System.Timestamp()) falha com o erro "uma janela deve ser especificada".
Sintaxe
System.Timestamp()
Exemplos
Exemplo básico
O exemplo a seguir retorna a contagem de tweets com o mesmo tipo de tópico que ocorrem exatamente ao mesmo tempo:
SELECT Topic, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Exemplo de instantâneo de janela de tombamento
Um uso comum para janelas de instantâneo é agregar eventos depois que eles foram agrupados em um único carimbo de data/hora por meio de uma função de janela anterior, como TumblingWindow abaixo.
O exemplo a seguir retorna a contagem de tweets com o mesmo tipo de tópico pelo mesmo usuário em intervalos de 30 minutos:
WITH PerInterval AS (
SELECT Topic, User, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, User, TumblingWindow(minute, 30)
)
SELECT * INTO UserTopicsCount FROM PerInterval
Para encontrar o número de usuários e o total de tweets por tópico dentro do mesmo intervalo, você pode usar o resultado da consulta anterior. Como os resultados da janela de tombamento terão carimbos de data/hora alinhados ao limite de 30 minutos, você pode usar uma janela de instantâneo para retornar eventos em cada limite, já que todos eles têm o mesmo valor de carimbo de data/hora.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp()
A consulta anterior retornou o número de usuários e o total de tweets por tópico dentro do mesmo intervalo de 30 minutos. Para obter os mesmos resultados uma vez a cada 2 horas, adicione uma janela de queda de 2 horas à cláusula GROUP BY.
A consulta a seguir retorna os resultados de todos os quatro intervalos de 30 minutos no final de cada janela de 2 horas.
SELECT Topic, Users = COUNT(*), Total = SUM (count)
FROM PerInterval
GROUP BY Topic, System.Timestamp(), Tumbling (hour, 2)
Exemplo de janelas agregadas
Você pode usar System.Timestamp() como uma das janelas na construção agregada Windows().
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
System.Timestamp())