Escolher um tecnologia do Azure de processamento de fluxosChoosing a stream processing technology in Azure

Este artigo compara opções tecnológicas para processamento no Azure em fluxo em tempo real.This article compares technology choices for real-time stream processing in Azure.

Processamento de fluxo em tempo real consome mensagens de fila ou armazenamento baseado em arquivo, processar as mensagens e reencaminhar o resultado para outra fila de mensagens, arquivo de ficheiros ou da base 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. Processamento pode incluir consultas, filtragem e agregar as mensagens.Processing may include querying, filtering, and aggregating messages. Stream motores de processamento tem de ser capaz de consumir um infinito fluxos de dados e produzir resultados com uma 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 ao escolher uma tecnologia para processamento em tempo real?What are your options when choosing a technology for real-time processing?

No Azure, todos os arquivos de dados seguinte irão cumprir os requisitos de núcleo oferecer 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, começam a escolher o serviço apropriado para as suas necessidades ao responder a estas perguntas:For real-time processing scenarios, begin choosing the appropriate service for your needs by answering these questions:

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

  • Precisa de suporte interno para processamento temporal ou windowing?Do you need built-in support for temporal processing or windowing?

  • É recebido a seus dados em formatos além Avro, JSON ou CSV?Does your data arrive in formats besides Avro, JSON, or CSV? Em caso afirmativo, considere as opções de suportam a qualquer formato utilizando código personalizado.If yes, consider options support any format using custom code.

  • Precisa dimensionar o processamento para além de 1 GB/s?Do you need to scale your processing beyond 1 GB/s? Em caso afirmativo, considere as opções que crescem com o tamanho do cluster.If yes, consider the options that scale with the cluster size.

Matriz de capacidadeCapability matrix

As tabelas seguintes resumem as principais diferenças nos recursos.The following tables summarize the key differences in capabilities.

Capacidades geraisGeneral capabilities

Azure Stream AnalyticsAzure Stream Analytics HDInsight com o Spark de transmissão em fluxoHDInsight with Spark Streaming Apache Spark no Azure DatabricksApache Spark in Azure Databricks HDInsight StormHDInsight with Storm Funções do AzureAzure Functions WebJobs do serviço de aplicações do AzureAzure App Service WebJobs
ProgramabilidadeProgrammability Idioma, o JavaScript de consulta do Stream analyticsStream analytics query language, JavaScript Scala, Python, JavaScala, Python, Java Scala, Python, Java, RScala, Python, Java, R Java, C#Java, C# C#, F#, Node.jsC#, F#, Node.js C#, Node.js, PHP, Java, PythonC#, Node.js, PHP, Java, Python
Paradigma de programaçãoProgramming paradigm DeclarativaDeclarative Combinação de imperativo e declarativoMixture of declarative and imperative Combinação de imperativo e declarativoMixture of declarative and imperative ImperativoImperative ImperativoImperative ImperativoImperative
Modelo preçosPricing model Unidades de transmissão em fluxoStreaming units Por hora de clusterPer cluster hour Unidades do DatabricksDatabricks units Por hora de clusterPer cluster hour Por consumo de recursos e execução de funçãoPer function execution and resource consumption Por hora de plano de serviço de aplicaçõesPer app service plan hour

Capacidades de integraçãoIntegration capabilities

Azure Stream AnalyticsAzure Stream Analytics HDInsight com o Spark de transmissão em fluxoHDInsight with Spark Streaming Apache Spark no Azure DatabricksApache Spark in Azure Databricks HDInsight StormHDInsight with Storm Funções do AzureAzure Functions WebJobs do serviço de aplicações do AzureAzure App Service WebJobs
EntradasInputs Hubs de eventos do Azure, IoT Hub do Azure, armazenamento de Blobs do AzureAzure Event Hubs, Azure IoT Hub, Azure Blob storage Os Hubs de eventos, o Hub IoT, Kafka, HDFS, Blobs de armazenamento, Azure Data Lake StoreEvent Hubs, IoT Hub, Kafka, HDFS, Storage Blobs, Azure Data Lake Store Os Hubs de eventos, o 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, o Hub IoT, Blobs de armazenamento do Azure Data Lake StoreEvent Hubs, IoT Hub, Storage Blobs, Azure Data Lake Store Enlaces suportadosSupported bindings Do Service Bus, armazenamento de filas, Blobs de armazenamento, os Hubs de eventos, WebHooks, Cosmos DB, os ficheirosService Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files
Coletores deSinks Tópicos do armazenamento, filas do Service Bus, Service Bus, o Cosmos DB, as funções do Azure de tabelas do Azure Data Lake Store, base de dados SQL do Azure, Blobs de armazenamento, os Hubs de eventos, Power BI,Azure 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, o Cosmos DBHDFS, Kafka, Storage Blobs, Azure Data Lake Store, Cosmos DB HDFS, Kafka, Blobs de armazenamento, Azure Data Lake Store, o Cosmos DBHDFS, Kafka, Storage Blobs, Azure Data Lake Store, Cosmos DB Os Hubs de eventos, Service Bus, KafkaEvent Hubs, Service Bus, Kafka Enlaces suportadosSupported bindings Do Service Bus, armazenamento de filas, Blobs de armazenamento, os Hubs de eventos, WebHooks, Cosmos DB, os ficheirosService Bus, Storage Queues, Storage Blobs, Event Hubs, WebHooks, Cosmos DB, Files

Recursos de processamentoProcessing capabilities

Azure Stream AnalyticsAzure Stream Analytics HDInsight com o Spark de transmissão em fluxoHDInsight with Spark Streaming Apache Spark no Azure DatabricksApache Spark in Azure Databricks HDInsight StormHDInsight with Storm Funções do AzureAzure Functions WebJobs do serviço de aplicações do AzureAzure App Service WebJobs
Suporte interno temporal/windowingBuilt-in temporal/windowing support SimYes SimYes SimYes SimYes NãoNo NãoNo
Formatos de dados de entradaInput data formats Avro, JSON ou CSV, codificado em UTF-8Avro, JSON or CSV, UTF-8 encoded Qualquer formato utilizando código personalizadoAny format using custom code Qualquer formato utilizando código personalizadoAny format using custom code Qualquer formato utilizando código personalizadoAny format using custom code Qualquer formato utilizando código personalizadoAny format using custom code Qualquer formato utilizando código personalizadoAny format using custom code
EscalabilidadeScalability Partições de consultaQuery partitions Limitado pelo tamanho do clusterBounded by cluster size Vinculado de acordo com a configuração de dimensionamento de cluster do DatabricksBounded by Databricks cluster scale configuration Limitado pelo tamanho do clusterBounded by cluster size Até 200 instâncias de aplicações de função de processamento em paraleloUp to 200 function app instances processing in parallel Vinculado de acordo com a capacidade de plano de serviço de aplicaçõesBounded by app service plan capacity
Chegada tardia e suporte de manipulação de eventos de fora de ordemLate arrival and out of order event handling support SimYes SimYes SimYes SimYes NãoNo NãoNo

Veja também:See also: