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, Base de Dados SQL do Azure, Azure Cosmos DB, Funções do Azure, Hubs de Eventos do Azure, Microsoft Power BI, entre outros.
Uma vez iniciada, uma consulta do Stream Analytics corre de forma contínua, processando novos dados à medida que chegam à entrada e armazenando os 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. Exatamente uma vez, o processamento é garantido com saídas selecionadas. Para mais informações, consulte Garantias de entrega de eventos. A Stream Analytics tem capacidades de recuperação incorporadas caso a entrega de um evento falhe. 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), é totalmente gerido. A sua integração incorporada com várias fontes e destinos proporciona um modelo de programabilidade flexível. O mecanismo do Stream Analytics permite computação na memória, oferecendo alto desempenho.
Trabalhos e clusters do Azure Stream Analytics
A forma mais fácil de usar o Azure Stream Analytics é criar uma tarefa de Stream Analytics numa subscrição do Azure, configurar a(s) sua(s) entrada(s) e saída(s) e definir a consulta que a tarefa usa 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 dos seus processos de fluxo forem complexos ou exigentes em recursos, pode criar um cluster de Stream Analytics, que utiliza o mesmo motor de processamento subjacente de um trabalho de Stream Analytics, mas numa implementação single-tenant (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. Para mais informações, consulte Visão Geral do cluster Azure Stream Analytics.
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, Base de Dados SQL do Azure 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 Hubs de Eventos do Azure.
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. Por defeito, o Stream Analytics usa a hora em que o evento chega à entrada como carimbo temporal, ou pode especificar explicitamente outro campo DateTime usando a cláusula TIMESTAMP BY , como mostrado neste exemplo. Dependendo da entrada a partir da qual os dados em streaming são lidos, podem ser criados automaticamente um ou mais campos potenciais de carimbo temporal; por exemplo, ao usar uma entrada do Event Hubs , é gerado um campo chamado EventEnqueuedUtcTime para registar a hora em que o evento foi recebido no event hub.
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 (pré-visualização) ou do portal Hubs de Eventos do Azure. O editor no-code oferece uma tela de arrastar e largar onde se ligam fontes de entrada, adicionam transformações (incluindo agregações de janelas temporais como tumbling, hopping e janelas de sessão) e configuram as saídas, sem escrever qualquer código. Para mais informações, consulte Processamento de fluxo sem código em Azure Stream Analytics.