Reconhecer o processamento de eventos

Concluído

O Azure Stream Analytics é um serviço para processamento de eventos complexos e análise de dados de streaming. O Stream Analytics é usado para:

  • Ingerir dados de uma entrada, como um hub de eventos do Azure, Hub IoT do Azure ou contêiner de blob de armazenamento do Azure.
  • Processar os dados usando uma consulta para selecionar, projetar e agregar valores de dados.
  • Gravar os resultados em uma saída, como Azure Data Lake Gen 2, Banco de Dados SQL do Azure, Azure Synapse Analytics, Azure Functions, Hub de eventos do Azure, Microsoft Power BI ou outros.

Diagrama que mostra um trabalho do Stream Analytics com entradas, uma consulta e saídas

Uma vez iniciada, uma consulta do Stream Analytics será executada perpetuamente, processando novos dados à medida que chegam na entrada e armazenando os resultados na saída.

O Stream Analytics garante o processamento de eventos exatamente uma vez e pelo menos uma entrega de eventos. Portanto, os eventos nunca são perdidos. Ele tem funcionalidades internas de recuperação no caso de falha na entrega de um evento. Além disso, o Stream Analytics fornece um ponto de verificação interno para manter o estado do trabalho e produz resultados reproduzíveis. Como o Azure Stream Analytics é uma solução PaaS (plataforma como serviço), ele é totalmente gerenciado e altamente confiável. Ele tem integração interna com várias origens e destinos e fornece um modelo de programação flexível. O mecanismo do Stream Analytics permite computação na memória, portanto ele oferece alto desempenho.

Trabalhos e clusters do Azure Stream Analytics

A maneira mais fácil de usar o Azure Stream Analytics é criar um trabalho do Stream Analytics em uma assinatura do Azure, configurar suas entradas e saídas e definir a consulta que o trabalho usará para processar os dados. A consulta é expressa usando a sintaxe de linguagem de consulta estruturada (SQL) e pode incorporar dados de referência estática de várias fontes de dados para fornecer valores de pesquisa que podem ser combinados com os dados de streaming ingeridos de uma entrada.

Se os requisitos do processo de fluxo forem complexos ou consumirem muitos recursos, você poderá criar um cluster do Stream Analysis, que usa o mesmo mecanismo de processamento subjacente de um trabalho do Stream Analytics, mas em um locatário dedicado (para que seu processamento não seja afetado por outros clientes) e com escalabilidade configurável que permite definir o equilíbrio certo de taxa de transferência e custo para seu cenário específico.

Entradas

O Azure Stream Analytics pode ingerir dados dos seguintes tipos de entrada:

  • Hubs de eventos do Azure
  • Hub IoT do Azure
  • Armazenamento de Blobs do Azure
  • Azure Data Lake Storage Gen2

Em geral, as entradas são usadas para referenciar uma fonte de dados de streaming, que é processada à medida que novos registros de eventos são adicionados. Além disso, você pode definir entradas de referência que são usadas para ingerir dados estáticos a fim de aumentar os dados do fluxo de eventos em tempo real. Por exemplo, você pode ingerir um fluxo de dados de observação meteorológica em tempo real que inclui uma ID exclusiva para cada estação meteorológica e aumentar esses dados com uma entrada de referência estática que corresponde à ID da estação meteorológica com um nome mais significativo.

Saídas

Saídas são destinos para os quais os resultados do processamento de fluxo são enviados. O Azure Stream Analytics dá suporte a uma ampla variedade de saídas, que podem ser usadas para:

  • Persistir os resultados do processamento de fluxo para análise posterior, por exemplo, carregando-os em um data lake ou em um data warehouse.
  • Exibir uma visualização em tempo real do fluxo de dados, por exemplo, acrescentando os dados a um conjunto de dados no Microsoft Power BI.
  • Gerar eventos filtrados ou resumidos para processamento downstream, por exemplo, gravando os resultados do processamento de fluxo em um hub de eventos.

Consultas

A lógica do processamento de fluxo é encapsulada em uma consulta. As consultas são definidas por meio de instruções SQL que executam SELECT nos campos de dados de uma ou mais entradas com FROM, filtram ou agregam os dados e gravam os resultados em uma saída usando INTO. Por exemplo, a seguinte consulta filtra os eventos da entrada weather-events para incluir apenas os dados de eventos com um valor de temperature menor que 0 e grava os resultados na saída cold-temps:

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Um campo chamado EventProcessedUtcTime é criado automaticamente para definir a hora em que o evento é processado pela consulta do Azure Stream Analytics. Use esse campo para determinar o carimbo de data/hora do evento ou especificar explicitamente outro campo DateTime usando a cláusula TIMESTAMP BY, conforme mostrado neste exemplo. Dependendo da entrada da qual os dados de streaming são lidos, um ou mais campos de carimbo de data/hora potenciais podem ser criados automaticamente. Por exemplo, quando uma entrada dos Hubs de Eventos é usada, um campo chamado EventQueuedUtcTime é gerado para registrar a hora em que o evento foi recebido na fila do hub de eventos.

O campo usado como carimbo de data/hora é importante ao agregar os dados em janelas temporais, o que é discutido em seguida.