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 easy 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 Basis 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 massive knowledge, los marcos de lago de datos agrupan archivos de massive knowledge 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.
Nosotros disponibilidad basic anunciada para soporte nativo para Apache Hudi, Linux Basis 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 | Hudi | lago delta | 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 Pocket book.
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:
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
Full los siguientes pasos para lanzar un cuaderno de AWS Glue Studio:
- Descargar el Archivo de cuaderno de Jupyter.
- En la consola de AWS Glue, elija Trabajos en el plano de navegación.
- Por debajo crear trabajoSeleccione Cuaderno Jupyter.
- Seleccione Cargar y editar un cuaderno existente.
- Subir
native_iceberg_dataframe.ipynb
mediante Elija el archivo por debajo Subir archivo.
- Escoger Crear.
- Para Nombre del trabajoingresar
native_iceberg_dataframe
. - Para Rol de gestión de identidades y accesoselija su rol de IAM.
- Escoger Iniciar trabajo de cuaderno.
Preparar y configurar SparkSession con la configuración de Iceberg
Full los siguientes pasos para configurar SparkSession para procesar tablas Iceberg:
- Ejecute la siguiente celda.
Puedes 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.
- 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.
- Ejecute las siguientes celdas para inicializar SparkSession.
- 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
Full los siguientes pasos para crear una tabla Iceberg usando el cuaderno:
- Ejecute la siguiente celda para crear un DataFrame (
df_products
) escribir.
Si tiene éxito, puede ver la siguiente tabla.
- Ejecute la siguiente celda para crear una tabla Iceberg usando DataFrame.
- Ahora puede leer datos de la tabla Iceberg ejecutando la siguiente celda.
Agregar registros a la tabla Iceberg
Full los siguientes pasos para agregar registros a la tabla Iceberg:
- Ejecute la siguiente celda para crear un DataFrame (
df_products_appends
) para anexar.
- Ejecute la siguiente celda para agregar los registros a la tabla.
- 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:
- 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.
- En la consola de AWS Glue, elija Trabajos en el plano de navegación.
- Seleccione su trabajo y en el Comportamiento menú, elige Eliminar trabajo(s).
- Escoger 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.learn.format("hudi").load("s3://path_to_data")
- SparkSQL, por ejemplo
SELECT * FROM desk
- GlueContext, por ejemplo
create_data_frame.from_catalog
,write_data_frame.from_catalog
,getDataFrame
ywriteDataFrame
Más información 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 program en el equipo de AWS Glue. Le gusta el software program 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 Massive Knowledge en el equipo de AWS Glue. Es responsable de crear artefactos de software program 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 program 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.