Compreender 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, 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 numa saída, como Azure Data Lake Storage Gen2, Azure SQL Database, Azure Cosmos DB, Azure Functions, Azure Event Hubs, Microsoft Power BI, entre outros.
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 seu processo de fluxo forem complexos ou consomem muitos recursos, pode criar um cluster de Análise de Fluxos, que utiliza o mesmo motor de processamento subjacente de um trabalho de Stream Analytics, mas num tenant dedicado (para que o seu processamento não seja afetado por outros clientes) e com escalabilidade configurável que lhe permita definir o equilíbrio certo entre throughput e custo para o 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
- Apache Kafka
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, pode definir entradas de referência que são usadas para ingerir dados estáticos para complementar 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 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 suporta uma grande variedade de sumidouros de saída, que podem ser usados para:
- Persistir os resultados para análise adicional; por exemplo, gravando em Azure Data Lake Storage Gen2, Azure SQL Database ou Azure Cosmos DB.
- Analisar dados de logaritmo e telemetria em escala; por exemplo, enviando resultados para o Azure Data Explorer.
- Mostrar uma visualização em tempo real do fluxo de dados; por exemplo, adicionando dados a um conjunto de dados no Microsoft Power BI.
- Gerar eventos filtrados ou resumidos para processamento a jusante; por exemplo, escrevendo resultados nos Azure Event Hubs.
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.
Editor sem código
Se preferir construir o seu trabalho de processamento de fluxos sem escrever SQL, o Azure Stream Analytics inclui um editor no-code. Pode aceder a ela através do portal Azure Stream Analytics ou do portal Azure Event Hubs. O editor sem código oferece uma interface de arrastar e soltar onde se conectam fontes de entrada, adicionam-se transformações (incluindo janelamento e agregações) e configuram-se as saídas — sem escrever qualquer código.
Pode usar o editor no-code para prototipar rapidamente e, opcionalmente, visualizar ou personalizar a consulta SQL gerada para cenários mais avançados.