Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
✅ Fluxo de eventos do Azure Stream Analytics ✅ Fabric
Janelas de Instantâneos agrupam eventos que têm o mesmo carimbo de data/hora. Ao contrário de outros tipos de janela, 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 de 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, diferentemente 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 colocar em lote 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 ocorre exatamente ao mesmo tempo:
SELECT Topic, COUNT(*)
FROM TwitterStream TIMESTAMP BY CreatedAt
GROUP BY Topic, System.Timestamp()
Exemplo de instantâneo de janela em cascata
Um uso comum para janelas de instantâneo é agregar eventos depois que eles tiverem sido 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 localizar o número de usuários e o total de tweets por tópico no mesmo intervalo, você pode usar o resultado da consulta anterior. Devido aos resultados da janela em cascata todos 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, pois 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 no mesmo intervalo de 30 minutos. Para obter os mesmos resultados uma vez por 2 horas, adicione uma janela em cascata 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 de agregação
Você pode usar System.Timestamp() como uma das janelas na construção do Windows() agregado.
SELECT
TollId,
COUNT(*)
FROM Input TIMESTAMP BY EntryTime
GROUP BY
TollId,
Windows(
TumblingWindow(minute, 10),
TumblingWindow(minute, 20),
System.Timestamp())