Escolher uma tecnologia de processamento de fluxo no Azure

Este artigo compara as opções de tecnologia para processamento de fluxo em tempo real no Azure.

O processamento de fluxo em tempo real consome mensagens de fila ou armazenamento baseado em arquivo, processa as mensagens e encaminha o resultado para outra fila de mensagens, armazenamento de arquivos ou banco de dados. O processamento pode incluir consulta, filtragem e agregação de mensagens. Os mecanismos de processamento de fluxo devem ser capazes de consumir fluxos infinitos de dados e produzir resultados com latência mínima. Para obter mais informações, consulte Processamento em tempo real.

Quais são as suas opções ao escolher uma tecnologia para processamento em tempo real?

No Azure, todos os seguintes armazenamentos de dados atenderão aos principais requisitos de suporte ao processamento em tempo real:

Principais critérios de seleção

Para cenários de processamento em tempo real, comece a escolher o serviço adequado às suas necessidades, respondendo a estas perguntas:

  • Você prefere uma abordagem declarativa ou imperativa para a criação da lógica de processamento de fluxo?

  • Você precisa de suporte interno para processamento temporal ou janelas?

  • Seus dados chegam em formatos além de Avro, JSON ou CSV? Se sim, considere opções que suportam qualquer formato usando código personalizado.

  • Precisa de escalar o seu processamento para além de 1 GB/s? Em caso afirmativo, considere as opções que são dimensionadas de acordo com o tamanho do cluster.

Matriz de capacidades

As tabelas a seguir resumem as principais diferenças nos recursos.

Capacidades gerais

Funcionalidade Azure Stream Analytics HDInsight com Spark Streaming Apache Spark no Azure Databricks HDInsight com Storm Funções do Azure WebJobs do Serviço de Aplicações do Azure
Programabilidade SQL, JavaScript C#/F#, Java, Python, Scala C#/F#, Java, Python, R, Scala C#, Java C#, F#, Java, Node.js, Python C#, Java, Node.js, PHP, Python
Paradigma de programação Declarativo Mistura de declarativo e imperativo Mistura de declarativo e imperativo Imperativo Imperativo Imperativo
Modelo de preços Unidades de streaming Por hora de cluster Unidades Databricks Por hora de cluster Execução por função e consumo de recursos Por hora do plano de serviço de aplicativo

Capacidades de integração

Funcionalidade Azure Stream Analytics HDInsight com Spark Streaming Apache Spark no Azure Databricks HDInsight com Storm Funções do Azure WebJobs do Serviço de Aplicações do Azure
Entradas Hubs de Eventos do Azure, Hub IoT do Azure, armazenamento de Blob do Azure/ADLS Gen2 Hubs de Eventos, Hub IoT, Kafka, HDFS, Blobs de Armazenamento, Azure Data Lake Store Hubs de Eventos, Hub IoT, Kafka, HDFS, Blobs de Armazenamento, Azure Data Lake Store Hubs de Eventos, Hub IoT, Blobs de Armazenamento, Azure Data Lake Store Ligações suportadas Barramento de Serviço, Filas de Armazenamento, Blobs de Armazenamento, Hubs de Eventos, WebHooks, Azure Cosmos DB, Arquivos
Pias Azure Data Lake Storage Gen 1, Azure Data Explorer, Banco de Dados do Azure para PostgreSQL, Banco de Dados SQL do Azure, Azure Synapse Analytics, Armazenamento de Blob e Azure Data Lake Gen 2, Hubs de Eventos do Azure, Power BI, Armazenamento de Tabela do Azure, filas do Barramento de Serviço do Azure, tópicos do Barramento de Serviço do Azure, Azure Cosmos DB, Azure Functions HDFS, Kafka, Blobs de Armazenamento, Azure Data Lake Store, Azure Cosmos DB HDFS, Kafka, Blobs de Armazenamento, Azure Data Lake Store, Azure Cosmos DB Hubs de Eventos, Service Bus, Kafka Ligações suportadas Barramento de Serviço, Filas de Armazenamento, Blobs de Armazenamento, Hubs de Eventos, WebHooks, Azure Cosmos DB, Arquivos

Capacidades de processamento

Funcionalidade Azure Stream Analytics HDInsight com Spark Streaming Apache Spark no Azure Databricks HDInsight com Storm Funções do Azure WebJobs do Serviço de Aplicações do Azure
Suporte temporal/windowing integrado Sim Sim Sim Sim No Não
Formatos de dados de entrada Avro, JSON ou CSV, UTF-8 codificado Qualquer formato usando código personalizado Qualquer formato usando código personalizado Qualquer formato usando código personalizado Qualquer formato usando código personalizado Qualquer formato usando código personalizado
Escalabilidade Partições de consulta Delimitado pelo tamanho do cluster Limitado pela configuração de escala de cluster do Databricks Delimitado pelo tamanho do cluster Até 200 instâncias de aplicativos funcionais processando em paralelo Delimitado pela capacidade do plano de serviço do aplicativo
Suporte de manuseio de eventos de chegada tardia e fora de ordem Sim Sim Sim Sim No Não

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Próximos passos