Entender o processamento de eventos
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, o Hub IoT do Azure ou um contêiner de blobs do Azure Storage.
- Processe os dados usando uma consulta para selecionar, projetar e agregar valores de dados.
- Escreva os resultados em uma saída, como o Azure Data Lake Gen 2, o Banco de Dados SQL do Azure, o Azure Synapse Analytics, o Azure Functions, o Hub de Eventos do Azure, o Microsoft Power BI ou outros.
Uma vez iniciada, uma consulta do Stream Analytics será executada perpetuamente, processando novos dados à medida que chegarem na entrada e armazenando resultados na saída.
O Stream Analytics garante o processamento de eventos exatamente uma vez e a entrega de eventos pelo menos uma vez, portanto, os eventos nunca são perdidos. Ele tem funcionalidades de recuperação internas caso a entrega de um evento falhe. Além disso, o Stream Analytics fornece pontos de verificação internos para manter o estado do seu trabalho e produz resultados repetíveis. Como o Azure Stream Analytics é uma solução paaS (plataforma como serviço), ele é totalmente gerenciado e altamente confiável. Sua integração interna com várias fontes e destinos e fornece um modelo de programação flexível. O mecanismo do Stream Analytics habilita a computação na memória, portanto, 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 com uso intensivo de recursos, você poderá criar um cluster do Stream Analysis, que usa o mesmo mecanismo de processamento subjacente que um trabalho do Stream Analytics, mas em um locatário dedicado (portanto, seu processamento não é 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
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 usadas para ingerir dados estáticos para aumentar os dados do fluxo de eventos em tempo real. Por exemplo, você pode ingerir um fluxo de dados de observação do tempo em tempo real que inclua 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 a 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 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 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.
Perguntas
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 FROM 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 weather-events para incluir apenas dados de eventos com um valor de temperatura 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. Você pode usar esse campo para determinar o timestamp do evento, ou pode especificar explicitamente outro campo DateTime usando a cláusula TIMESTAMP BY, conforme mostrado neste exemplo. Dependendo da entrada do Hub de Eventos a partir da qual os dados de streaming são lidos, um ou mais campos potenciais de carimbo de data/hora podem ser criados automaticamente; por exemplo, ao usar uma entrada do Hub de Eventos, um campo chamado EventQueuedUtcTime se gera para registrar o momento em que o evento foi recebido na fila do Hub de Eventos.
O campo usado como timestamp é importante ao agregar dados em janelas temporais, algo que será discutido a seguir.