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 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 o Azure Data Lake Storage Gen2, o Banco de Dados SQL do Azure, o Azure Cosmos DB, o Azure Functions, os Hubs de Eventos do Azure, o Microsoft Power BI ou outros.
Uma vez iniciada, uma consulta do Stream Analytics é executada perpetuamente, processando novos dados à medida que chegam 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. O processamento exatamente uma vez é garantido com saídas selecionadas. Para obter mais informações, consulte as garantias de entrega de eventos. O Stream Analytics 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 Azure Stream Analytics é uma solução paaS (plataforma como serviço), ela é totalmente gerenciada. Sua integração nativa com várias fontes e destinos 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 Azure Stream Analytics é criar uma tarefa do Stream Analytics em uma assinatura Azure, configurar suas entradas e saídas e definir a consulta que a tarefa usa 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 Analytics cluster, que usa o mesmo mecanismo de processamento subjacente que um trabalho do Stream Analytics, mas em uma implantação dedicada (portanto, seu processamento não é afetado por outros clientes) e com escalabilidade configurável que permite definir o equilíbrio certo entre taxa de transferência e custo para seu cenário específico. Para obter mais informações, consulte Visão geral de Azure Stream Analytics cluster.
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
- 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, você pode definir entradas de referência 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 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 coletores de saída, que podem ser usados para:
- Armazene os resultados para análises posteriores; por exemplo, gravando-os no Azure Data Lake Storage Gen2, no Banco de Dados SQL do Azure ou no Azure Cosmos DB.
- Analisar dados de log e telemetria em escala; por exemplo, enviando resultados para o Azure Data Explorer.
- 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, escrevendo resultados nos Hubs de Eventos do Azure.
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. Por padrão, o Stream Analytics usa a hora em que o evento chega à entrada como seu carimbo de data/hora ou você pode 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, ao usar uma entrada Event Hubs, um campo chamado EventEnqueuedUtcTime é gerado para registrar a hora em que o evento foi recebido no hub de eventos.
O campo usado como timestamp é importante ao agregar dados em janelas temporais, algo que será discutido a seguir.
Editor sem código
Se você preferir criar seu trabalho de processamento de fluxo sem escrever SQL, o Azure Stream Analytics incluirá um editor sem código. Você pode acessá-lo no portal do Azure Stream Analytics (versão prévia) ou no portal do Hubs de Eventos do Azure. O editor sem código fornece uma tela de arrastar e soltar em que você conecta fontes de entrada, adiciona transformações (incluindo agregações de janela de tempo, como janelas deslizantes, saltantes e de sessão) e configura saídas, sem escrever nenhum código. Para obter mais informações, consulte Processamento de fluxo sem código no Azure Stream Analytics.