Compreender o processamento de eventos
O Azure Stream Analytics é um serviço para processamento complexo de eventos e análise de dados de transmissão em fluxo. O Stream Analytics é utilizado para:
- Ingerir dados de uma entrada, como um hub de eventos do Azure, Hub IoT do Azure ou contentor de blobs do Armazenamento do Azure.
- Processe os dados utilizando uma consulta para selecionar, projetar e agregar valores de dados.
- Escreva os resultados numa saída, como o Azure Data Lake Gen2, a Base de Dados SQL do Azure, o Azure Synapse Analytics, Funções do Azure, 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 chegam à entrada e armazenando resultados na saída.
O Stream Analytics garante exatamente um processamento de eventos e pelo menos uma entrega de eventos, para que os eventos não sejam perdidos. Tem capacidades de recuperação incorporadas para a eventualidade de a entrega de um evento falhar. Além disso, o Stream Analytics fornece um ponto de verificação incorporado para manter o estado da sua tarefa e produzir resultados repetíveis. Uma vez que o Azure Stream Analytics é uma solução paaS (plataforma como serviço), é totalmente gerido e altamente fiável. A sua integração incorporada com várias origens e destinos e fornece um modelo de programação flexível. O motor do Stream Analytics ativa a computação dentro da memória, pelo que oferece um elevado desempenho.
Tarefas e clusters do Azure Stream Analytics
A forma mais fácil de utilizar o Azure Stream Analytics é criar uma tarefa do Stream Analytics numa subscrição do Azure, configurar as entradas e saídas e definir a consulta que a tarefa irá utilizar para processar os dados. A consulta é expressa com a sintaxe da linguagem de consulta estruturada (SQL) e pode incorporar dados de referência estática de várias origens de dados para fornecer valores de pesquisa que podem ser combinados com os dados de transmissão em fluxo ingeridos a partir de uma entrada.
Se os requisitos do processo de transmissão em fluxo forem complexos ou intensivos em recursos, pode criar um cluster do Stream Analysis, que utiliza o mesmo motor de processamento subjacente que uma tarefa do Stream Analytics, mas num inquilino dedicado (para que o processamento não seja afetado por outros clientes) e com escalabilidade configurável que lhe permite definir o equilíbrio certo de débito e custo para o seu cenário específico.
Entradas
O Azure Stream Analytics pode ingerir dados dos seguintes tipos de entrada:
- Azure Event Hubs
- Azure IoT Hub
- Armazenamento de Blobs do Azure
- Armazenamento do Azure Data Lake Ger2
Geralmente, as entradas são utilizadas para referenciar uma origem de dados de transmissão em fluxo, que é processada à medida que são adicionados novos registos de eventos. Além disso, pode definir entradas de referência que são utilizadas para ingerir dados estáticos para aumentar os dados do fluxo de eventos em tempo real. Por exemplo, 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 a um nome mais significativo.
Saídas
As saídas são destinos para os quais são enviados os resultados do processamento de fluxos. O Azure Stream Analytics suporta uma vasta gama de saídas, que podem ser utilizadas para:
- Persista os resultados do processamento de fluxos para uma análise mais aprofundada; por exemplo, carregando-os para um data lake ou armazém de dados.
- Apresentar uma visualização em tempo real do fluxo de dados; por exemplo, ao anexar dados a um conjunto de dados no Microsoft Power BI.
- Gerar eventos filtrados ou resumidos para processamento a jusante; por exemplo, ao escrever os resultados do processamento de fluxos num hub de eventos.
Consultas
A lógica de processamento do fluxo é encapsulada numa consulta. As consultas são definidas com instruções SQL que selecionam campos de dados DE uma ou mais entradas, filtram ou agregam os dados e escrevem os resultados numa saída. Por exemplo, a seguinte consulta filtra os eventos da entrada weather-events para incluir apenas dados de eventos com um valor de temperatura inferior a 0 e escreve os resultados na saída de temperatura fria :
SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0
É criado automaticamente um campo com o nome EventProcessedUtcTime para definir a hora em que o evento é processado pela consulta do Azure Stream Analytics. Pode utilizar este campo para determinar o carimbo de data/hora do evento ou pode especificar explicitamente outro campo DateTime com a cláusula TIMESTAMP BY , conforme mostrado neste exemplo. Dependendo da entrada a partir da qual os dados de transmissão em fluxo são lidos, um ou mais campos de carimbo de data/hora potenciais podem ser criados automaticamente; por exemplo, ao utilizar uma entrada dos Hubs de Eventos , é gerado um campo com o nome EventQueuedUtcTime para registar a hora em que o evento foi recebido na fila do hub de eventos.
O campo utilizado como carimbo de data/hora é importante ao agregar dados através de janelas temporais, que é discutido a seguir.