Logotipo de Zephyrnet

Presentación del soporte nativo para Apache Hudi, Delta Lake y Apache Iceberg en AWS Glue para Apache Spark, Parte 1: Introducción

Fecha:

Pegamento AWS es un servicio de integración de datos escalable y sin servidor que facilita descubrir, preparar, mover e integrar datos de múltiples fuentes. AWS Glue proporciona una arquitectura extensible que permite a los usuarios diferentes casos de uso de procesamiento de datos.

Un caso de uso común es la creación de lagos de datos en Servicio de almacenamiento simple de Amazon (Amazon S3) con trabajos de extracción, transformación y carga (ETL) de AWS Glue. Los lagos de datos lo liberan de los formatos de datos propietarios definidos por las herramientas de inteligencia comercial (BI) y la capacidad limitada de almacenamiento propietario. Además, los lagos de datos lo ayudan a desglosar los silos de datos para maximizar los conocimientos de datos de un extremo a otro. A medida que los lagos de datos crecieron en tamaño y maduraron en uso, se puede dedicar una cantidad significativa de esfuerzo a mantener los datos actualizados al garantizar que los archivos se actualicen de manera transaccionalmente consistente.

Los clientes de AWS Glue ahora pueden usar los siguientes marcos de almacenamiento de lagos de datos de código abierto: Apache Hudi, Linux Foundation Delta Lake y Apache Iceberg. Estos marcos de lago de datos lo ayudan a almacenar datos y datos de interfaz con sus aplicaciones y marcos. Aunque los formatos de archivo de datos populares, como Apache Parquet, CSV y JSON, pueden almacenar big data, los marcos de lago de datos agrupan archivos de big data distribuidos en estructuras tabulares que, de otro modo, serían difíciles de administrar. Esto hace que los marcos de trabajo de tablas de lagos de datos sean construcciones de construcción de bases de datos en lagos de datos.

We disponibilidad general anunciada para soporte nativo para Apache Hudi, Linux Foundation Delta Lake y Apache Iceberg en AWS Glue for Spark. Esta característica elimina la necesidad de instalar un conector independiente o dependencias asociadas, administrar versiones y simplifica los pasos de configuración necesarios para usar estos marcos en AWS Glue para Apache Spark. Con estos marcos de lago de datos de código abierto, puede simplificar el procesamiento de datos incrementales en lagos de datos creados en Amazon S3 mediante el uso de transacciones, upserts y eliminaciones ACID (atomicidad, consistencia, aislamiento, durabilidad).

Esta publicación demuestra cómo funciona AWS Glue para Apache Spark con tablas de conjuntos de datos de Hudi, Delta e Iceberg, y describe casos de uso típicos en un cuaderno de AWS Glue Studio.

Habilite Hudi, Delta, Iceberg en Glue para Apache Spark

Puede usar Hudi, Delta o Iceberg especificando un nuevo parámetro de trabajo --datalake-formats. Por ejemplo, si desea utilizar Hudi, debe especificar la clave como --datalake-formats y el valor como hudi. Si la opción está configurada, AWS Glue agrega automáticamente los archivos JAR requeridos en el classpath de Java en tiempo de ejecución, y eso es todo lo que necesita. No es necesario compilar y configurar las bibliotecas requeridas ni instalar un conector independiente. Puede utilizar las siguientes versiones de biblioteca con esta opción.

Versión de AWS Glue Malo Delta Lake Iceberg
AWS pegamento 3.0 0.10.1 1.0.0 0.13.1
AWS pegamento 4.0 0.12.1 2.1.0 1.0.0

Si desea utilizar otras versiones de las bibliotecas anteriores, puede elegir cualquiera de las siguientes opciones:

Si elige cualquiera de las opciones anteriores, debe asegurarse de que la --datalake-formats el parámetro de trabajo no está especificado. Para más información, ver Procesar conjuntos de datos Apache Hudi, Delta Lake, Apache Iceberg a escala, parte 1: AWS Glue Studio Notebook.

Requisitos previos

Para continuar con este tutorial, debe crear los siguientes recursos de AWS por adelantado:

Procese conjuntos de datos de Hudi, Delta e Iceberg en un cuaderno de AWS Glue Studio

Los portátiles de AWS Glue Studio proporcionan portátiles sin servidor con una configuración mínima. Hace que los ingenieros y desarrolladores de datos exploren y procesen sus conjuntos de datos de forma rápida e interactiva. Puede comenzar a usar Hudi, Delta o Iceberg en un cuaderno de AWS Glue Studio especificando el parámetro a través de %%configure magic y configurando la versión de AWS Glue en 3.0 de la siguiente manera:

# Use Glue version 3.0
%glue_version 3.0 # Configure '--datalake-formats' Job parameter
%%configure
{ "--datalake-formats": "your_comma_separated_formats"
}

Para obtener más información, consulte los cuadernos de ejemplo disponibles en el repositorio de GitHub:

Para esta publicación, usamos un Iceberg DataFrame como ejemplo.

Las siguientes secciones explican cómo usar un cuaderno de AWS Glue Studio para crear una tabla Iceberg y agregar registros a la tabla.

Inicie un cuaderno Jupyter para procesar tablas Iceberg

Complete los siguientes pasos para lanzar un cuaderno de AWS Glue Studio:

  1. Descargue nuestra Archivo de cuaderno Jupyter.
  2. En la consola de AWS Glue, elija Empleo en el plano de navegación.
  3. under Crear trabajo, seleccione Cuaderno Jupyter.

  1. Seleccione Cargar y editar un cuaderno existente.
  2. Subir native_iceberg_dataframe.ipynb a Elija el archivo bajo Carga de archivo.

  1. Elige Crear.
  2. Nombre del trabajo, introduzca native_iceberg_dataframe.
  3. Rol de IAM, elija su función de IAM.
  4. Elige Iniciar trabajo de cuaderno.

Preparar y configurar SparkSession con la configuración de Iceberg

Complete los siguientes pasos para configurar SparkSession para procesar tablas Iceberg:

  1. Ejecute la siguiente celda.

Usted puede ver --datalake-formats iceberg es puesto por el %%configure Comando mágico de Jupyter. Para obtener más información sobre la magia de Jupyter, consulte Configuración de sesiones interactivas de AWS Glue para cuadernos de Jupyter y AWS Glue Studio.

  1. Proporcione el nombre de su depósito S3 y el prefijo del depósito para la ubicación de su tabla Iceberg en la siguiente celda y ejecútelo.

  1. Ejecute las siguientes celdas para inicializar SparkSession.

  1. Opcionalmente, si ya ejecutó el cuaderno, debe ejecutar la siguiente celda para limpiar los recursos existentes.

Ahora está listo para crear tablas Iceberg usando el cuaderno.

Crea una mesa Iceberg

Complete los siguientes pasos para crear una tabla Iceberg usando el cuaderno:

  1. Ejecute la siguiente celda para crear un DataFrame (df_products) escribir.

Si tiene éxito, puede ver la siguiente tabla.

  1. Ejecute la siguiente celda para crear una tabla Iceberg usando DataFrame.

  1. Ahora puede leer datos de la tabla Iceberg ejecutando la siguiente celda.

Agregar registros a la tabla Iceberg

Complete los siguientes pasos para agregar registros a la tabla Iceberg:

  1. Ejecute la siguiente celda para crear un DataFrame (df_products_appends) para anexar.

  1. Ejecute la siguiente celda para agregar los registros a la tabla.

  1. Ejecute la siguiente celda para confirmar que los registros anteriores se agregaron correctamente a la tabla.

Limpiar

Para evitar incurrir en cargos continuos, limpie sus recursos:

  1. Ejecute el paso 4 en el Preparar y configurar SparkSession con la configuración de Iceberg en esta publicación para eliminar la tabla y los objetos S3 subyacentes.
  2. En la consola de AWS Glue, elija Empleo en el plano de navegación.
  3. Seleccione su trabajo y en el Acciones menú, seleccione Eliminar trabajo(s).
  4. Elige Borrar para confirmar.

Consideraciones

Con esta capacidad, tiene tres opciones diferentes para acceder a las mesas Hudi, Delta e Iceberg:

  • Spark DataFrames, por ejemplo spark.read.format("hudi").load("s3://path_to_data")
  • SparkSQL, por ejemplo SELECT * FROM table
  • GlueContext, por ejemplo create_data_frame.from_catalog, write_data_frame.from_catalog, getDataFramey writeDataFrame

Aprenda más en Uso del marco Hudi en AWS Glue, Uso del marco Delta Lake en AWS Gluey Uso del marco Iceberg en AWS Glue.

La integración nativa de Delta Lake funciona con las tablas de catálogo creadas a partir de tablas nativas de Delta Lake por rastreadores de AWS Glue. Esta integración no depende de los archivos de manifiesto. Para obtener más información, consulte Presentamos la compatibilidad con tablas nativas de Delta Lake con rastreadores de AWS Glue.

Conclusión

Esta publicación demostró cómo procesar conjuntos de datos de Apache Hudi, Delta Lake y Apache Iceberg con AWS Glue para Apache Spark. Puede integrar sus datos usando esos formatos de lago de datos fácilmente sin tener que lidiar con la administración de dependencias de la biblioteca.

En publicaciones posteriores de esta serie, le mostraremos cómo puede usar AWS Glue Studio para crear visualmente sus trabajos de ETL con una configuración y configuración más simples para estos formatos de lago de datos, y cómo usar los flujos de trabajo de AWS Glue para orquestar canalizaciones de datos y automatizar la ingesta. en sus lagos de datos en Amazon S3 con trabajos de AWS Glue. ¡Manténganse al tanto!

Si tiene comentarios o comentarios, déjelos en los comentarios.


Sobre los autores

Akira Ajisaka es ingeniero sénior de desarrollo de software en el equipo de AWS Glue. Le gusta el software de código abierto y los sistemas distribuidos. En su tiempo libre, le gusta jugar tanto juegos de arcade como de consola.

Noritaka Sekiyama es Arquitecto Principal de Big Data en el equipo de AWS Glue. Es responsable de crear artefactos de software para ayudar a los clientes. En su tiempo libre, disfruta andar en bicicleta con su nueva bicicleta de carretera.

savio dsouza es gerente de desarrollo de software en el equipo de AWS Glue. Sus equipos trabajan en la construcción e innovación en marcos y sistemas informáticos distribuidos, concretamente en Apache Spark.

punto_img

Información más reciente

punto_img