Selección de una tecnología de procesamiento de flujos en Azure

Este artículo compara las opciones de tecnología para procesamiento de flujos en tiempo real en Azure.

El procesamiento de flujos en tiempo real usa mensajes de una cola o almacenamiento basado en archivos, procesa los mensajes y reenvía el resultado a otra cola de mensajes, almacén de archivos o base de datos. El procesamiento puede incluir la consulta, el filtrado y la agregación de mensajes. Los motores de procesamiento de flujos deben poder utilizar un flujo ilimitado de datos y generar resultados con una latencia mínima. Para más información, consulte Procesamiento en tiempo real.

¿De qué opciones dispone a la hora de elegir una tecnología de procesamiento en tiempo real?

En Azure, los almacenes de datos siguientes cumplirán los requisitos principales para el procesamiento en tiempo real:

Principales criterios de selección

En escenarios de procesamiento en tiempo real, seleccione primero el servicio adecuado para sus necesidades respondiendo a estas preguntas:

  • ¿Prefiere un enfoque declarativo o imperativo para crear una lógica de procesamiento de flujos?

  • ¿Necesita compatibilidad integrada para procesamiento temporal o basado en ventanas?

  • ¿Recibe datos en formatos distintos a Avro, JSON o CSV? Si es así, tenga en cuenta opciones que admitan cualquier formato que use código personalizado.

  • ¿Necesita escalar el procesamiento más allá de 1 GB/s? En caso afirmativo, considere la posibilidad de usar opciones que se escalan con el tamaño del clúster.

Matriz de funcionalidades

En las tablas siguientes se resumen las diferencias clave en cuanto a funcionalidades.

Funcionalidades generales

Capacidad Azure Stream Analytics HDInsight con Spark Streaming Apache Spark en Azure Databricks HDInsight con Storm Azure Functions Azure App Service WebJobs
Programación Lenguaje de consulta de Stream Analytics, 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 programación Declarativa Mezcla de declarativa e imperativa Mezcla de declarativa e imperativa Imperativo Imperativo Imperativo
Modelo de precios Unidades de streaming Por hora de clúster Unidades de Databricks Por hora de clúster Por ejecución de funciones y consumo de recursos Por hora de plan de App Service

Funcionalidades de integración

Capacidad Azure Stream Analytics HDInsight con Spark Streaming Apache Spark en Azure Databricks HDInsight con Storm Azure Functions Azure App Service WebJobs
Entradas Azure Event Hubs, Azure IoT Hub, Azure Blob Storage Event Hubs, IoT Hub, Kafka, HDFS, blobs de Storage, Azure Data Lake Store Event Hubs, IoT Hub, Kafka, HDFS, blobs de Storage, Azure Data Lake Store Event Hubs, IoT Hub, blobs de Storage, Azure Data Lake Store Enlaces admitidos Service Bus, colas de Storage, blobs de Storage, Event Hubs, WebHooks, Cosmos DB, Files
Receptores 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 Storage, Azure Data Lake Store, Cosmos DB HDFS, Kafka, blobs de Storage, Azure Data Lake Store, Cosmos DB Event Hubs, Service Bus, Kafka Enlaces admitidos Service Bus, colas de Storage, blobs de Storage, Event Hubs, WebHooks, Cosmos DB, Files

Funcionalidades de procesamiento

Capacidad Azure Stream Analytics HDInsight con Spark Streaming Apache Spark en Azure Databricks HDInsight con Storm Azure Functions Azure App Service WebJobs
Compatibilidad integrada con almacenamiento temporal o basado en ventanas No No
Formatos de datos de entrada Avro, JSON o CSV, con codificación UTF-8 Cualquier formato que use código personalizado Cualquier formato que use código personalizado Cualquier formato que use código personalizado Cualquier formato que use código personalizado Cualquier formato que use código personalizado
Escalabilidad Particiones de consulta Limitada por el tamaño del clúster Limitado por la configuración de escalado del clúster de Databricks Limitada por el tamaño del clúster Hasta 200 instancias de aplicación de función procesándose en paralelo Limitada por la capacidad del plan de App Service
Compatibilidad con control de eventos desordenados y llegada tardía No No

Consulte también: