Selección de una tecnología de procesamiento por lotes en Azure

Las soluciones de macrodatos a menudo utilizan trabajos por lotes de ejecución prolongada para filtrar, agregar y preparan de otra forma los datos para su análisis. Normalmente estos trabajos implican leer archivos de código fuente desde un almacenamiento escalable (por ejemplo, HDFS, Azure Data Lake Store, and Azure Storage), procesarlos y escribir la salida a los nuevos archivos de almacenamiento escalable.

El requisito clave de estos motores de procesamiento de lotes es la capacidad para escalar horizontalmente los cálculos, con el fin de administrar un gran volumen de datos. Sin embargo, a diferencia del procesamiento en tiempo real, el procesamiento por lotes se espera que tenga las latencias (el tiempo transcurrido entre la ingesta de datos y calcular un resultado) que se miden en minutos y horas.

Opciones de tecnología para el procesamiento por lotes

Azure Synapse Analytics

Azure Synapse es un sistema distribuido diseñado para realizar análisis con datos de gran tamaño. Admite el procesamiento paralelo masivo (MPP), lo que lo hace idóneo para ejecutar análisis de alto rendimiento. Considere la posibilidad de usar Azure Synapse cuando tenga grandes cantidades de datos (más de 1 TB) y esté ejecutando una carga de trabajo de análisis que aprovecharía el paralelismo.

Análisis con Azure Data Lake

Data Lake Analytics es un servicio de trabajos de análisis a petición. Está optimizado para el procesamiento distribuido de conjuntos de datos muy grandes almacenados en Azure Data Lake Store.

  • Lenguajes: U-SQL (incluidas las extensiones de Python, R y C#).
  • Se integra con Azure Data Lake Store, los blobs de Azure Storage, Azure SQL Database y Azure Synapse.
  • El modelo de precios es por trabajo.

HDInsight

HDInsight es un servicio de Hadoop administrado. Se usa para implementar y administrar clústeres de Hadoop en Azure. Para el procesamiento por lotes, puede usar Spark, Hive, Hive LLAP y MapReduce.

  • Lenguajes: R, Python, Java, Scala y SQL
  • Autenticación Kerberos con Active Directory y control de acceso basado en Apache Ranger
  • Proporciona control total del clúster de Hadoop

Azure Databricks

Azure Databricks es una plataforma de análisis basada en Apache Spark. Puede considerarlo como "Spark como un servicio". Es la manera más fácil de usar Spark en la plataforma Azure.

  • Lenguajes: R, Python, Java, Scala y Spark SQL
  • Horas de inicio rápido del clúster, terminación automática, escalado automático.
  • Administra automáticamente el clúster de Spark.
  • Integración incorporada con Azure Blob Storage, Azure Data Lake Storage (ADLS), Azure Synapse y otros servicios. Consulte Orígenes de datos.
  • Autenticación de usuario con Azure Active Directory.
  • Cuadernos web para la exploración de datos y la colaboración.
  • Admite clústeres con GPU habilitado

Azure Distributed Data Engineering Toolkit

Distributed Data Engineering Toolkit (AZTK) es una herramienta para el aprovisionamiento de Spark a petición en clústeres de Docker en Azure.

AZTK no es un servicio de Azure. Más bien es una herramienta de cliente con una interfaz de CLI y SDK de Python que se basa en Azure Batch. Esta opción ofrece el máximo control sobre la infraestructura al implementar un clúster de Spark.

  • Aporte su propia imagen de Docker.
  • Use máquinas virtuales de prioridad baja para lograr un 80 % de descuento.
  • Clústeres de modo mixto que usan no solo máquinas virtuales de prioridad baja sino también máquinas virtuales dedicadas.
  • Compatibilidad integrada con una conexión de Azure Blob Storage y Azure Data Lake.

Principales criterios de selección

Para restringir las opciones, empiece por responder a estas preguntas:

  • ¿Quiere un servicio administrado en lugar de administrar sus propios servidores?

  • ¿Desea crear la lógica del procesamiento por lotes de forma declarativa o imperativa?

  • ¿Realizará el procesamiento por lotes en ráfagas? Si es así, considere el uso de opciones que le permitan terminar automáticamente el clúster o cuyo modelo de precios se por trabajo por lotes.

  • ¿Necesita consultar almacenes de datos relacionales junto con procesamiento por lotes, por ejemplo, para buscar datos de referencia? En caso afirmativo, considere la posibilidad de usar opciones que permita la realización de consultas en almacenes relacionales externos.

Matriz de funcionalidades

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

Funcionalidades generales

Capacidad Análisis con Azure Data Lake Azure Synapse HDInsight Azure Databricks
Es un servicio administrado 1
Almacenes de datos relacionales No No
Modelo de precios Por trabajo por lotes Por hora de clúster Por hora de clúster Unidad de Databricks2 + hora de clúster

[1] Con configuración manual.

[2] Una unidad de Databricks (DBU) es una unidad de funcionalidad de procesamiento por hora.

Funcionalidades

Capacidad Análisis con Azure Data Lake Azure Synapse HDInsight con Spark HDInsight con Hive HDInsight con Hive LLAP Azure Databricks
Escalado automático No No
Granularidad de escalabilidad horizontal Por trabajo Por clúster Por clúster Por clúster Por clúster Por clúster
Admite el almacenamiento en caché en memoria de datos No No
Consulta de almacenes relacionales externos No No No
Authentication Azure AD SQL/Azure AD No Azure AD1 Azure AD1 Azure AD
Auditoría No 1 1
Seguridad de nivel de fila No 2 No 1 1 No
Admite firewalls 3 3 No
Enmascaramiento de datos dinámicos No No 1 1 No

[1] Requiere el uso de un clúster de HDInsight unido a un dominio.

[2] Solo predicados de filtro. Vea Seguridad de nivel de fila.

[3] Se admite cuando se usa en una instancia de Azure Virtual Network.

Pasos siguientes