Referência da Linguagem de Consulta do Stream Analytics

O Azure Stream Analytics oferece uma linguagem de consulta SQL para realizar transformações e cálculos através de fluxos de eventos.

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

Este documento descreve a sintaxe, a utilização e as melhores práticas da linguagem de consulta do Stream Analytics. Todos os exemplos utilizados neste documento dependem de um cenário de portagem, conforme descrito abaixo.

A linguagem de consulta do Stream Analytics é um subconjunto de sintaxe T-SQL padrão para realizar cálculos de transmissão em fluxo.

O cenário de portagem

Uma estação de portagens é um fenómeno comum– encontramo-los em muitas vias rápidas, pontes e túneis em todo o mundo. Cada portagem tem várias portagens, o que pode ser manual – ou seja, parar para pagar a portagem a um atendedor ou automatizada – em que um sensor colocado em cima da cabine analisa um cartão RFID afixado ao pára-brisas do seu veículo à medida que passa pela portagem. É fácil visualizar a passagem de veículos através destas estações de portagem como um fluxo de eventos sobre o qual podem ser realizadas operações interessantes.

Hora de Chegada vs Hora da Aplicação

Em qualquer sistema temporal como o Azure Stream Analytics, é essencial compreender o progresso do tempo. Todos os eventos que fluem através do sistema incluem um carimbo de data/hora que pode ser acedido através de System.Timestamp(). Por outras palavras, todos os eventos no nosso sistema representam um ponto anterior no tempo. Este carimbo de data/hora pode ser uma hora da aplicação que o utilizador 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 origens 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 última vez que o blob foi modificado. O carimbo de data/hora é o ponto anterior no tempo que é relevante para capturar ou analisar dados. Se o utilizador quiser utilizar uma hora de aplicação, pode fazê-lo com a palavra-chave TIMESTAMP BY . No cenário acima, é a entrada do veículo na portagem. É fundamental identificar o "carimbo de data/hora" no fluxo de dados recebido, deve-se garantir que a hora capturada também confirma a ocorrência de um evento. Por exemplo, se estiver a monitorizar contadores de caixa e quiser contar o número de clientes faturados, idealmente, o carimbo de data/hora do evento deve ser "pagamento bem-sucedido" em vez do tempo "fatura gerado".

TIMESTAMP BY

No Azure Stream Analytics, todos os eventos têm um carimbo de data/hora bem definido. Se o utilizador quiser utilizar o tempo da aplicação, pode utilizar a palavra-chave TIMESTAMP BY para especificar a coluna no payload que deve ser utilizada para carimbo de data/hora em todos os eventos recebidos para efetuar qualquer computação temporal como Janela, Associações, etc. Recomendamos que utilize TIMESTAMP BY durante a hora de chegada como melhor prática. TIMESTAMP BY pode ser utilizado em qualquer coluna do tipo datetime e todos os formatos ISO 8601 são suportados. System.Timestamp() só pode ser utilizado em Selecionar.

Segue-se um exemplo TIMESTAMP BY que utiliza a coluna EntryTime como a hora da aplicação para eventos:

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

Sensibilidade a Maiúsculas/Minúsculas do Nome do Campo

Os nomes de campo para uma tarefa criada com o nível de compatibilidade 1.0 são alterados para minúsculas (não sensíveis a maiúsculas e minúsculas) quando processados pelo motor do Azure Stream Analytics. Para formatos de entrada que suportam esquema sensível a maiúsculas e minúsculas, por exemplo JSON, pode construir eventos que tenham campos duplicados quando os nomes dos campos são comparados de uma forma de insensibilidade de casos. Estes eventos são considerados eventos inválidos e são removidos durante o processamento.

A sensibilidade a maiúsculas e minúsculas persiste para nomes de campos quando a tarefa do Stream Analytics é criada através do nível de compatibilidade 1.1 ou superior. Para obter mais informações, veja o tópico configurar o nível de compatibilidade .

Nesta secção

Veja os seguintes tópicos para obter orientações sobre como utilizar a linguagem de consulta do Stream Analytics.

Consulte também