Partilhar via


Azure Stream Analytics & Eventstream Query Language Reference

O Azure Stream Analytics oferece uma linguagem de consulta SQL para executar transformações e cálculos em fluxos de eventos.

Um subconjunto da sintaxe T-SQL

Este documento descreve a sintaxe, o uso e as práticas recomendadas para a linguagem de consulta do Stream Analytics. Todos os exemplos usados neste documento dependem de um cenário de cabine de pedágio, conforme descrito abaixo.

A linguagem de consulta do Stream Analytics é um subconjunto da sintaxe T-SQL padrão para fazer cálculos de streaming.

O cenário das cabines de pedágio

Uma estação de pedágio é um fenômeno comum – nós as encontramos em muitas vias expressas, pontes e túneis em todo o mundo. Cada estação de pedágio tem várias cabines de pedágio, que podem ser manuais – o que significa que você para para pagar o pedágio a um atendente, ou automatizadas – onde um sensor colocado no topo da cabine escaneia um cartão RFID afixado no para-brisa do seu veículo quando você passa pela cabine de pedágio. É fácil visualizar a passagem de veículos por essas estações de pedágio como um fluxo de eventos sobre o qual operações interessantes podem ser realizadas.

Hora de chegada vs hora de aplicação

Em qualquer sistema temporal como o Azure Stream Analytics, é essencial entender o progresso do tempo. Cada evento que flui através do sistema vem com um carimbo de data/hora que pode ser acessado via System.Timestamp(). Em outras palavras, cada evento em nosso sistema retrata um ponto no tempo. Este carimbo de data/hora pode ser uma hora do aplicativo que o usuário pode especificar na consulta ou o sistema pode atribuir com base na hora de chegada. A hora de chegada tem significados diferentes com base nas fontes de entrada. Para os eventos do Hub de Eventos do Azure, a hora de chegada é o carimbo de data/hora fornecido pelo hub de eventos; para armazenamento de Blob, é a última hora modificada do blob. O carimbo de data/hora é o ponto no tempo relevante para capturar ou analisar dados. Se o usuário quiser usar uma hora de aplicativo, ele pode fazê-lo usando a palavra-chave TIMESTAMP BY . No cenário acima, é a entrada do veículo na cabine de pedágio. É fundamental identificar o "carimbo de data/hora" no fluxo de entrada de dados, deve-se garantir que o tempo capturado também confirme a ocorrência de um evento. Por exemplo, se alguém estiver monitorando contadores de caixa e quiser contar o número de clientes faturados, o ideal é que o carimbo de data/hora do evento seja "pagamento bem-sucedido" em vez de "fatura gerada".

MARCAÇÃO TEMPORAL POR

No Azure Stream Analytics, todos os eventos têm um carimbo de data/hora bem definido. Se o usuário quiser usar a hora do aplicativo, ele pode usar a palavra-chave TIMESTAMP BY para especificar a coluna na carga que deve ser usada para carimbo de data/hora de cada evento de entrada para executar qualquer cálculo temporal como Windowing, Junções etc. Recomendamos o uso de TIMESTAMP BY durante a hora de chegada como uma prática recomendada. TIMESTAMP BY pode ser usado em qualquer coluna do tipo datetime e todos os formatos ISO 8601 são suportados. System.Timestamp() só pode ser usado em Select.

A seguir está um exemplo de carimbo de data/hora BY que usa a coluna EntryTime como a hora do aplicativo para eventos:

  
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime  
  

Nome do campo Diferenciação de maiúsculas e minúsculas

Os nomes de campo de um trabalho criado usando o nível de compatibilidade 1.0 são alterados para minúsculas (sem distinção entre maiúsculas e minúsculas) quando processados pelo mecanismo do Azure Stream Analytics. Para formatos de entrada que suportam esquema que diferencia maiúsculas de minúsculas, por exemplo, JSON, você pode construir eventos com campos duplicados quando os nomes de campo são comparados de maneira insensível a maiúsculas e minúsculas. Esses eventos são considerados eventos inválidos e são descartados durante o processamento.

A diferenciação de maiúsculas e minúsculas é mantida para nomes de campo quando o trabalho do Stream Analytics é criado usando o nível de compatibilidade 1.1 ou superior. Para obter mais informações, consulte o tópico configurar nível de compatibilidade .

Nesta secção

Consulte os tópicos a seguir para obter orientação sobre como usar a linguagem de consulta do Stream Analytics.

Ver também