Compreender 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.
  • Processe os dados usando uma consulta para selecionar, projetar e agregar valores de dados.
  • Escreva 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 resultados na saída.

O Stream Analytics garante exatamente uma vez o processamento de eventos e pelo menos uma vez na entrega de eventos, para que os eventos nunca sejam perdidos. Ele tem recursos de recuperação integrados no caso de falha na entrega de um evento. Além disso, o Stream Analytics fornece pontos de verificação integrados para manter o estado do seu trabalho e produz resultados repetíveis. Como o Azure Stream Analytics é uma solução de plataforma como serviço (PaaS), ele é totalmente gerenciado e altamente confiável. Sua integração integrada com várias fontes e destinos e fornece um modelo de programação flexível. O mecanismo do Stream Analytics permite computação na memória, oferecendo 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 sua(s) entrada(s) e saída(s) e definir a consulta que o trabalho usará para processar os dados. A consulta é expressa usando sintaxe SQL (linguagem de consulta estruturada) e pode incorporar dados de referência estáticos 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 exigirem 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.

Insumos

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

As entradas geralmente são usadas para fazer referência a 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 para aumentar os dados de fluxo de eventos em tempo real. Por exemplo, você pode ingerir um fluxo de dados de observação meteorológica em tempo real que inclua um ID exclusivo para cada estação meteorológica e aumentar esses dados com uma entrada de referência estática que corresponda ao ID da estação meteorológica para um nome mais significativo.

Saídas

As 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 gama de saídas, que podem ser usadas para:

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

Interrogações

A lógica de processamento de fluxo é encapsulada em uma consulta. As consultas são definidas usando instruções SQL que SELECIONAM campos de dados DE uma ou mais entradas, filtram ou agregam os dados e gravam os resultados EM uma saída. Por exemplo, a consulta a seguir filtra os eventos da entrada de eventos climáticos para incluir apenas dados de eventos com um valor de temperatura menor que 0 e grava os resultados na saída de temperaturas frias :

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 sua consulta do Azure Stream Analytics. Você pode usar 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 de onde os dados de streaming são lidos, um ou mais campos potenciais de timestamp podem ser criados automaticamente; por exemplo, ao usar uma entrada de Hubs de Eventos, 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 um carimbo de data/hora é importante ao agregar dados em janelas temporais, como será discutido a seguir.