Canalizaciones de ingesta, ETL y procesamiento de flujos con Azure Databricks y Delta Lake

Azure Databricks
Azure Data Lake Storage
Azure IoT Hub
Azure Data Factory
Azure Event Hubs

Ideas de solución

Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comunícalo a través de los Comentarios de GitHub.

Su organización debe ingerir datos de cualquier formato, tamaño y velocidad en la nube de forma coherente. La solución de este artículo satisface esa necesidad con una arquitectura que implementa las operaciones de extracción, transformación y carga (ETL) desde los orígenes de datos a un lago de datos. El lago de datos puede contener todos los datos, incluidas las versiones transformadas y mantenidas a varias escalas. Los datos se pueden usar para análisis de datos, inteligencia empresarial (BI), informes, ciencia de datos y aprendizaje automático.

Apache® y Apache Spark™ son marcas comerciales registradas o marcas comerciales de Apache Software Foundation en los Estados Unidos y otros países. El uso de estas marcas no implica la aprobación de Apache Software Foundation.

Architecture

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. Los datos se ingieren de las maneras siguientes:

    • Las colas de eventos como Event Hubs, IoT Hub o Kafka envían datos de streaming a Azure Databricks, que usa el motor Delta Engine optimizado para leer los datos.
    • Las canalizaciones de Data Factory programadas o desencadenadas copian datos de diferentes orígenes de datos en formatos sin procesar. Auto Loader de Azure Databricks procesa los datos a medida que llegan.
  2. Azure Databricks carga los datos en tablas o carpetas optimizadas y comprimidas de Delta Lake en la capa Bronze de Data Lake Storage.

  3. Los trabajos de streaming, programados o desencadenados de Azure Databricks leen las nuevas transacciones desde la capa Bronze de Data Lake Storage. Los trabajos unen, limpian, transforman y agregan los datos antes de usar transacciones ACID para cargarlos en conjuntos de datos mantenidos en las capas Silver y Gold de Data Lake Storage.

  4. Los conjuntos de datos se almacenan en Delta Lake en Data Lake Storage.

Cada servicio ingiere datos en un formato común para garantizar la coherencia. La arquitectura usa un lago de datos compartido basado en el formato abierto de Delta Lake. Los datos sin procesar se ingieren desde distintos orígenes de procesamiento por lotes y streaming para formar una plataforma de datos unificada. La plataforma se puede usar para casos de uso posteriores, como análisis, informes de BI, ciencia de datos, inteligencia artificial y aprendizaje automático.

Capas de almacenamiento Bronze, Silver y Gold

Con el patrón de medallas, que consta de las capas de almacenamiento Bronze, Silver y Gold, los clientes tienen acceso flexible y procesamiento de datos extensible.

  • Las tablas Bronze proporcionan el punto de entrada para los datos sin procesar cuando llegan a Data Lake Storage. Los datos se toman en su formato de origen sin procesar y se convierten al formato abierto y transaccional de Delta Lake para su procesamiento. La solución ingiere los datos en la capa Bronze mediante los elementos siguientes:
    • Las API de Apache Spark en Azure Databricks. Las API leen eventos de streaming de Event Hubs o IoT Hub y, a continuación, convierten esos eventos o archivos sin procesar al formato de Delta Lake.
    • El comando COPY INTO. Use el comando para copiar datos directamente de un archivo o directorio de origen en Delta Lake.
    • Auto Loader de Azure Databricks. Auto Loader toma los archivos cuando llegan al lago de datos y los escribe en el formato de Delta Lake.
    • Actividad de copia de Data Factory. Los clientes pueden usar esta opción para convertir los datos de cualquiera de sus formatos admitidos al formato de Delta Lake.
  • Las tablas Silver almacenan datos mientras se optimizan para los casos de uso de BI y ciencia de datos. La capa Bronze ingiere datos sin procesar y, a continuación, se realizan más tareas de procesamiento de flujos y ETL para filtrar, limpiar, transformar, unir y agregar los datos en conjuntos de datos mantenidos de la capa Silver. Las empresas pueden usar un motor de proceso coherente, como Delta Engine de estándares abiertos, cuando usan Azure Databricks como servicio inicial para estas tareas. Después, pueden usar lenguajes de programación conocidos como SQL, Python, R o Scala. Las empresas también pueden usar procesos de DevOps repetibles y clústeres de proceso efímeros con el tamaño de sus cargas de trabajo individuales.
  • Las tablas Gold contienen datos enriquecidos, listos para el análisis y los informes. Los analistas pueden usar su método de elección, como PySpark, Koalas, SQL, Power BI y Excel para obtener información nueva y formular consultas.

Componentes

  • Event Hubs analiza y puntúa los mensajes de streaming de varios orígenes, incluidos los sistemas locales, y proporciona información en tiempo real.
  • Data Factory orquesta las canalizaciones de datos para la ingesta, preparación y transformación de todos los datos a cualquier escala.
  • Data Lake Storage reúne datos de streaming y por lotes, incluidos datos estructurados, no estructurados y semiestructurados, como registros, archivos y medios.
  • Azure Databricks limpia y transforma los conjuntos de datos sin estructura y los combina con datos estructurados de bases de datos operativas o de almacenamientos de datos.
  • IoT Hub le proporciona una comunicación altamente segura y confiable entre la aplicación de IoT y los dispositivos.
  • Delta Lake en Data Lake Storage admite transacciones ACID para ofrecer confiabilidad y está optimizado para la ingesta, el procesamiento y las consultas eficaces.

Detalles del escenario

El procesamiento de flujos, ingesta y ETL con Azure Databricks es simple, abierto y colaborativo:

  • Simple: un lago de datos abierto con una capa mantenida en un formato de código abierto simplifica la arquitectura de datos. Delta Lake, una herramienta de código abierto, proporciona acceso al lago de datos de Azure Data Lake Storage. Delta Lake en Data Lake Storage admite las transacciones de atomicidad, coherencia, aislamiento y durabilidad (ACID) para ofrecer confiabilidad. Delta Lake está optimizado para la ingesta, el procesamiento y las consultas eficaces.
  • Abierto: la solución admite código fuente abierto, estándares abiertos y marcos abiertos. También funciona con entornos de desarrollo integrado (IDE), bibliotecas y lenguajes de programación conocidos. Mediante conectores y API nativos, la solución también funciona con una amplia gama de otros servicios.
  • Colaborativo: ingenieros de datos, científicos de datos y analistas trabajan juntos con esta solución. Pueden usar cuadernos de colaboración, IDE, paneles y otras herramientas para acceder a los datos subyacentes comunes y analizarlos.

Azure Databricks se integra perfectamente con otros servicios de Azure, como Data Lake Storage, Azure Data Factory, Azure Event Hubs y Azure IoT Hub.

Posibles casos de uso

Esta solución está inspirada en el sistema creado por Providence Health Care para el análisis en tiempo real. Cualquier sector que ingiera datos por lotes o de streaming también podría considerar esta solución. Algunos ejemplos son:

  • Comercio electrónico y venta al por menor
  • Finance
  • Sanidad y ciencias biológicas
  • Proveedores de energía

Pasos siguientes

  • Spanish Point Technologies crea su motor Matching Engine mediante Azure Databricks y Azure Data Factory para ingerir datos a escala para ayudar a los músicos a obtener una remuneración justa.

Guías y arquitecturas totalmente implementables: