Referência da linguagem de consulta do Stream Analytics

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

Linguagem de Consulta do Stream Analytics, um subconjunto da sintaxe T-SQL

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

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

O cenário de cabine do pedágio

As estações de pedágio são comuns e encontradas em várias estradas, pontes e túneis em todo o mundo. Cada estação de pedágio tem várias cabines, que podem ser manuais, o que significa que você deve parar para pagar o pedágio a um atendente, ou automatizado, em que um sensor que é colocado na cabine examina um cartão RFID fixado no para-brisa do seu veículo conforme você passa pelo pedágio. É fácil visualizar a passagem dos veículos por essas estações de pedágio como uma transmissão de eventos sobre quais operações interessantes podem ser executadas.

Horário de chegada x horário de aplicativo

Em qualquer sistema temporal, como o Azure Stream Analytics, é essencial compreender o andamento de tempo. Cada evento que flui pelo sistema vem com um carimbo de data/hora que pode ser acessado por meio de System.Timestamp(). Em outras palavras, cada evento em nosso sistema ilustra um ponto no tempo. Esse carimbo pode também ser uma hora do aplicativo que o usuário pode especificar na consulta ou que o sistema pode atribuir com base na hora da 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 o Armazenamento de Blobs, é a hora da última modificação do blob. O carimbo de data e hora é o ponto no tempo que é relevante para capturar ou analisar dados. Se o usuário quiser usar um tempo de aplicativo, ele poderá fazer isso usando o palavra-chave TIMESTAMP BY. No cenário anterior, é a entrada do veículo no pedágio. É fundamental identificar o "carimbo de data/hora" no fluxo de dados de entrada, 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 cobrados, o ideal é que o carimbo de data/hora do evento seja "bem-sucedido em vez de "cobrança gerada".

TIMESTAMP BY

No Azure Stream Analytics, todos os eventos possuem um carimbo de data e hora bem definido. Se o usuário quiser usar o tempo do aplicativo, ele poderá usar o TIMESTAMP BY palavra-chave para especificar a coluna na carga que deve ser usada para carimbo de data/hora de cada evento de entrada para executar qualquer computação temporal como Janelas, Junções etc. É recomendável usar TIMESTAMP BY ao longo do tempo de chegada como uma prática recomendada. TIMESTAMP BY pode ser usado em qualquer coluna do tipo datetime e todos os formatos ISO 8601 têm suporte. System.Timestamp() só pode ser usado em Selecionar.

Veja abaixo um exemplo de CARIMBO DE DATA E HORA POR 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  
  

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

Os nomes de campo para um trabalho criado usando o nível de compatibilidade 1.0 são alterados para maiúsculas e minúsculas (não diferencia maiúsculas de minúsculas) quando processados pelo mecanismo do Azure Stream Analytics. Para formatos de entrada que dão suporte a esquemas sensíveis a maiúsculas e minúsculas, por exemplo, JSON, você pode construir eventos que têm campos duplicados quando os nomes de campo são comparados de maneira insensibilidade de caso. Esses eventos são considerados eventos inválidos e são descartados durante o processamento.

A diferenciação de maiúsculas e minúsculas é persistente 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 o nível de compatibilidade .

Nesta seção

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

Consulte Também