Escolhendo uma tecnologia de processamento de fluxo no AzureChoosing a stream processing technology in Azure

Este artigo compara as opções de tecnologia de processamento de fluxo em tempo real no Azure.This article compares technology choices for real-time stream processing in Azure.

O processamento de fluxo em tempo real consome mensagens do armazenamento baseado em fila ou em arquivo, processa as mensagens e encaminha o resultado para outra fila de mensagens, repositório de arquivos ou banco de dados.Real-time stream processing consumes messages from either queue or file-based storage, process the messages, and forward the result to another message queue, file store, or database. O processamento pode incluir consulta, filtragem e agregação de mensagens.Processing may include querying, filtering, and aggregating messages. Os mecanismos de processamento de fluxo precisam conseguir consumir intermináveis fluxos de dados e produzir resultados com latência mínima.Stream processing engines must be able to consume an endless streams of data and produce results with minimal latency. Para obter mais informações, consulte Processamento em tempo real.For more information, see Real time processing.

Quais são as opções disponíveis ao escolher uma tecnologia de processamento em tempo real?What are your options when choosing a technology for real-time processing?

No Azure, todos os seguintes armazenamentos de dados atenderão aos requisitos básicos que dão suporte ao processamento em tempo real:In Azure, all of the following data stores will meet the core requirements supporting real-time processing:

Principais Critérios de SeleçãoKey Selection Criteria

Para cenários de processamento em tempo real, comece escolhendo o serviço apropriado para suas necessidades respondendo a estas perguntas:For real-time processing scenarios, begin choosing the appropriate service for your needs by answering these questions:

  • Você prefere uma abordagem declarativa ou imperativa para a criação da lógica de processamento de fluxo?Do you prefer a declarative or imperative approach to authoring stream processing logic?

  • Você precisa de suporte interno para as janelas ou o processamento temporal?Do you need built-in support for temporal processing or windowing?

  • Os dados são recebidos em formatos além do Avro, JSON ou CSV?Does your data arrive in formats besides Avro, JSON, or CSV? Nesse caso, considere opções que dão suporte a qualquer formato que usa um código personalizado.If yes, consider options support any format using custom code.

  • Você precisa dimensionar o processamento além de 1 GB/s?Do you need to scale your processing beyond 1 GB/s? Nesse caso, considere as opções que podem ser dimensionadas com o tamanho do cluster.If yes, consider the options that scale with the cluster size.

Matriz de funcionalidadesCapability matrix

As tabelas a seguir resumem as principais diferenças em funcionalidades.The following tables summarize the key differences in capabilities.

Funcionalidades geraisGeneral capabilities

RecursoCapability Stream Analytics do AzureAzure Stream Analytics HDInsight com Spark StreamingHDInsight with Spark Streaming Apache Spark no Azure DatabricksApache Spark in Azure Databricks HDInsight com StormHDInsight with Storm Funções do AzureAzure Functions WebJobs no Serviço de Aplicativo do AzureAzure App Service WebJobs
ProgramaçãoProgrammability Linguagem de consulta do Stream Analytics, JavaScriptStream analytics query language, JavaScript C#/F#, Java, Python, ScalaC#/F#, Java, Python, Scala C#/F#, Java, Python, R, ScalaC#/F#, Java, Python, R, Scala C#, JavaC#, Java C#, F#, Java, Node.js, PythonC#, F#, Java, Node.js, Python C#, Java, Node.js, PHP, PythonC#, Java, Node.js, PHP, Python
Paradigma de programaçãoProgramming paradigm DeclarativoDeclarative Combinação de declarativo e imperativoMixture of declarative and imperative Combinação de declarativo e imperativoMixture of declarative and imperative ImperativoImperative ImperativoImperative ImperativoImperative
Modelo de preçosPricing model Unidades de streamingStreaming units Por hora de clusterPer cluster hour Unidades do DatabricksDatabricks units Por hora de clusterPer cluster hour Por execução de função e consumo de recursosPer function execution and resource consumption Por hora do plano de serviço de aplicativoPer app service plan hour

Funcionalidades de integraçãoIntegration capabilities

RecursoCapability Stream Analytics do AzureAzure Stream Analytics HDInsight com Spark StreamingHDInsight with Spark Streaming Apache Spark no Azure DatabricksApache Spark in Azure Databricks HDInsight com StormHDInsight with Storm Funções do AzureAzure Functions WebJobs no Serviço de Aplicativo do AzureAzure App Service WebJobs
EntradasInputs Hubs de Eventos do Azure, Hub IoT do Azure e Armazenamento de Blobs do AzureAzure Event Hubs, Azure IoT Hub, Azure Blob storage Hubs de Eventos, Hub IoT, Kafka, HDFS, Blobs de Armazenamento, Azure Data Lake StoreEvent Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store Hubs de Eventos, Hub IoT, Kafka, HDFS, Blobs de Armazenamento, Azure Data Lake StoreEvent Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store Hubs de Eventos, Hub IoT, Blobs de Armazenamento, Azure Data Lake StoreEvent Hubs, IoT Hub, Storage Blobs, Azure Data Lake Store Associações compatíveisSupported bindings Barramento de Serviço, Filas de Armazenamento, Blobs de Armazenamento, Hubs de Eventos, WebHooks, Cosmos DB, ArquivosService Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files
ColetoresSinks Azure Data Lake Store, Banco de Dados SQL do Azure, Blobs de armazenamento, Hubs de Eventos, Power BI, Armazenamento de Tabelas, Filas do Barramento de Serviço, Tópicos do Barramento de Serviço, Cosmos DB, Azure FunctionsAzure Data Lake Store, Azure SQL Database, Storage Blobs, Event Hubs, Power BI, Table Storage, Service Bus Queues, Service Bus Topics, Cosmos DB, Azure Functions HDFS, Kafka, Blobs de armazenamento, Azure Data Lake Store, Cosmos DBHDFS, Kafka, Storage Blobs, Azure Data Lake Store, Cosmos DB HDFS, Kafka, Blobs de armazenamento, Azure Data Lake Store, Cosmos DBHDFS, Kafka, Storage Blobs, Azure Data Lake Store, Cosmos DB Hubs de Eventos, Barramento de Serviço, KafkaEvent Hubs, Service Bus, Kafka Associações compatíveisSupported bindings Barramento de Serviço, Filas de Armazenamento, Blobs de Armazenamento, Hubs de Eventos, WebHooks, Cosmos DB, ArquivosService Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files

Funcionalidades de processamentoProcessing capabilities

RecursoCapability Stream Analytics do AzureAzure Stream Analytics HDInsight com Spark StreamingHDInsight with Spark Streaming Apache Spark no Azure DatabricksApache Spark in Azure Databricks HDInsight com StormHDInsight with Storm Funções do AzureAzure Functions WebJobs no Serviço de Aplicativo do AzureAzure App Service WebJobs
Suporte a janelas internas/temporalBuilt-in temporal/windowing support SimYes SimYes SimYes SimYes NãoNo NãoNo
Formatos de dados de entradaInput data formats Avro, JSON ou CSV, codificados em UTF-8Avro, JSON or CSV, UTF-8 encoded Qualquer formato que usa um código personalizadoAny format using custom code Qualquer formato que usa um código personalizadoAny format using custom code Qualquer formato que usa um código personalizadoAny format using custom code Qualquer formato que usa um código personalizadoAny format using custom code Qualquer formato que usa um código personalizadoAny format using custom code
EscalabilidadeScalability Partições de consultaQuery partitions Limitado pelo tamanho do clusterBounded by cluster size Limitado pela configuração de escala de cluster do DatabricksBounded by Databricks cluster scale configuration Limitado pelo tamanho do clusterBounded by cluster size Até 200 instâncias de aplicativo de funções processadas em paraleloUp to 200 function app instances processing in parallel Limitado pela capacidade do plano de serviço de aplicativoBounded by app service plan capacity
Suporte à chegada tardia e manipulação de eventos fora de ordemLate arrival and out of order event handling support SimYes SimYes SimYes SimYes NãoNo NãoNo

Consulte também:See also: