Explorar elementos comuns da arquitetura de processamento de fluxo de dados

Concluído

Há muitas tecnologias que você pode usar para implementar uma solução de processamento de fluxo, mas, embora os detalhes de implementação específicos possam variar, há elementos comuns à maioria das arquiteturas de fluxo.

Uma arquitetura geral para processamento de fluxo

Na sua forma mais simples, uma arquitetura de alto nível para processamento de fluxo tem esta aparência:

An event generates data, which is captured in a queue before being processed, and the results are written to a data store or visualization

  1. Um evento gera alguns dados. Isso pode ser um sinal emitido por um sensor, uma mensagem de mídia social sendo postada, uma entrada de arquivo de log sendo gravada ou qualquer outra ocorrência que resulte em alguns dados digitais.
  2. Os dados gerados são capturados em uma fonte de streaming para processamento. Em casos simples, a origem pode ser uma pasta em um armazenamento de dados de nuvem ou uma tabela em um banco de dado. Em soluções de streaming mais robustas, a origem pode ser uma "fila" que encapsula a lógica para garantir que os dados do evento sejam processados ​​em ordem e que cada evento seja processado apenas uma vez.
  3. Os dados do evento são processados, geralmente por uma consulta perpétua que opera nos dados do evento para selecionar dados para tipos específicos de eventos, valores de dados do projeto ou valores de dados agregados em períodos (ou janelas) temporais (com base no tempo) — para por exemplo, contando o número de emissões do sensor por minuto.
  4. Os resultados da operação de processamento de fluxo são gravados em uma saída (ou coletor), que pode ser um arquivo, uma tabela de banco de dados, um painel visual em tempo real ou outra fila para processamento adicional por uma consulta de downstream subsequente.

Análise em tempo real no Azure

O Microsoft Azure oferece suporte a várias tecnologias que você pode usar para implementar análises em tempo real de dados de streaming, como:

  • Azure Stream Analytics: uma solução de plataforma como serviço (PaaS) que você pode usar para definir trabalhos de streaming que ingerem dados de uma fonte de streaming, aplicam uma consulta perpétua e gravam os resultados em uma saída.
  • Streaming Estruturado do Spark: uma biblioteca de código aberto que permite desenvolver soluções de streaming complexas em serviços baseados no Apache Spark, incluindo o Azure Synapse Analytics, o Azure Databricks e o Azure HDInsight.
  • Azure Data Explorer: um serviço de análise e banco de dados de alto desempenho otimizado para ingestão e consulta de dados em lote ou streaming com um elemento de série temporal e que pode ser usado como um serviço autônomo do Azure ou como um tempo de execução do Azure Synapse Data Explorer em um espaço de trabalho do Azure Synapse Analytics.

Fontes para processamento de fluxo

Os serviços a seguir são comumente usados para ingerir dados para processamento de fluxo no Azure:

  • Hubs de Eventos do Azure: um serviço de ingestão de dados que você pode usar para gerenciar filas de dados de eventos, garantindo que cada evento seja processado em ordem, exatamente uma vez.
  • Hub IoT do Azure: um serviço de ingestão de dados semelhante aos Hubs de Eventos do Azure, mas otimizado para gerenciar dados de eventos de dispositivos da Internet das Coisas (IoT).
  • Azure Data Lake Store Gen 2: um serviço de armazenamento altamente escalonável que é frequentemente usado em cenários de processamento em lotes, mas que também pode ser usado como fonte de dados de streaming.
  • Apache Kafka: uma solução de ingestão de dados de código aberto que é comumente usada em conjunto com o Apache Spark. Você pode usar o Azure HDInsight para criar um cluster Kafka.

Coletores para processamento de fluxo

A saída do processamento de fluxo geralmente é enviada para os seguintes serviços:

  • Hubs de Eventos do Azure: usados ​​para enfileirar os dados processados ​​para processamento posterior.
  • Azure Data Lake Store Gen 2 ou Azure blob storage: usados para manter os resultados processados ​​como um arquivo.
  • Azure SQL Database ou Azure Synapse Analytics, ou Azure Databricks: usados para manter os resultados processados ​​em uma tabela de banco de dados para consulta e análise.
  • Microsoft Power BI: usado para gerar visualizações de dados em tempo real em relatórios e painéis.