Migración de trabajos de Spark para AWS Glue a la versión 5.1 de AWS Glue - AWS Glue

Migración de trabajos de Spark para AWS Glue a la versión 5.1 de AWS Glue

En este tema se describen los cambios entre las versiones 0.9, 1.0, 2.0, 3.0, 4.0 y 5.0 de AWS Glue para permitirle migrar sus aplicaciones de Spark y trabajos de ETL a la versión 5.1 de AWS Glue. También se describen las características de la versión 5.1 de AWS Glue y las ventajas de usarla.

Para usar esta función con sus trabajos de ETL de AWS Glue, elija 5.1 para la Glue version cuando cree sus trabajos.

Nuevas características

En esta sección se describen las nuevas características y ventajas de la versión 5.1 de AWS Glue.

  • Actualización de Apache Spark de la versión 3.5.4 en AWS Glue 5.0 a la versión 3.5.6 en AWS Glue 5.1.

  • Los formatos de tabla abierta (OTF) se actualizaron a Hudi 1.0.2, Iceberg 1.10.0 y Delta Lake 3.3.2

  • Vistas materializadas de iceberg: cree y administre vistas materializadas (MV) de Iceberg. Para obtener más información, consulte la publicación del blog.

  • Formato Iceberg versión 3.0: amplía los tipos de datos y las estructuras de metadatos existentes para añadir nuevas capacidades. Para obtener más información, consulte Especificación de tablas de Iceberg.

  • Acceso completo a la tabla de Hudi: control de acceso completo a la tabla (FTA) para Apache Hudi en Apache Spark según las políticas definidas en . Esta característica permite realizar operaciones de lectura y escritura desde los trabajos de ETL de AWS Glue en tablas registradas, siempre que el rol del trabajo tenga acceso completo a la tabla.

  • Compatibilidad con el control de acceso detallado (FGAC) nativo de Spark mediante: operaciones de DDL/DML (como CREATE, ALTER, DELETE, DROP) con control de acceso detallado para las tablas de Apache Hive, Apache Iceberg y Delta Lake registradas en .

  • Contexto de auditoría para trabajos de Spark: el contexto de auditoría para los trabajos de ETL de AWS Glue con los trabajos habilitados estarán disponibles para las llamadas a la API de AWS Glue y AWS Lake Formation en el registro.

Problemas conocidos y limitaciones

Tenga en cuenta los siguientes problemas y limitaciones conocidos:

  • Compatibilidad limitada con la visualización de la cláusula de SQL para la creación de vistas materializadas, la reescritura de consultas y la actualización incremental. Puede encontrar más información en la página de documentación de características de las vistas materializadas de Iceberg.

  • Las escrituras de FTA de Hudi requieren el uso de HoodieCredentialedHadoopStorage para la venta de credenciales durante la ejecución del trabajo. Establezca la siguiente configuración cuando ejecute los trabajos de Hudi:

    hoodie.storage.class=org.apache.spark.sql.hudi.storage.HoodieCredentialedHadoopStorage

  • La compatibilidad con la escritura de FTA de Hudi solo funciona con las configuraciones predeterminadas de Hudi. Los ajustes de Hudi personalizados o no predeterminados podrían no ser totalmente compatibles y podrían causar un comportamiento inesperado. Tampoco es compatible la agrupación en clústeres para las tablas Fusionar al leer (MOR) en el modo de escritura de FTA.

Cambios bruscos

Tenga en cuenta los siguientes cambios importantes:

Acciones para migrar a AWS Glue 5.1

Para los trabajos existentes, cambie la Glue version de la versión anterior a Glue 5.1 en la configuración del trabajo.

  • En AWS Glue Studio, elija Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3 en Glue version.

  • En la API, elija 5.1 en el parámetro GlueVersion de la operación de la API UpdateJob.

Para nuevos trabajos, elija Glue 5.1 cuando cree un trabajo.

  • En la consola, elija Spark 3.5.6, Python 3 (Glue Version 5.1) or Spark 3.5.6, Scala 2 (Glue Version 5.1) en Glue version.

  • En AWS Glue Studio, elija Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3 en Glue version.

  • En la API, elija 5.1 en el parámetro GlueVersion de la operación de la API CreateJob.

Para ver los registros de eventos de Spark de AWS Glue 5.1 procedentes de AWS Glue 2.0 o una versión anterior, active un servidor de historial de Spark actualizado para AWS Glue 5.1 mediante CloudFormation o Docker.

Lista de comprobación de migración

Revise esta lista de comprobación para la migración:

  • [Python] Actualización de las referencias a boto de 1.34 a 1.40.

Migración de AWS Glue 5.0 a AWS Glue 5.1

Todos los parámetros de trabajo existentes y las principales características que existen en AWS Glue 5.0 existirá en AWS Glue 5.1. Tenga en cuenta los siguientes cambios al migrar:

  • En AWS Glue 5.1, el sistema de archivos S3A reemplazó el EMRFS como conector S3 predeterminado. Si no se establecen spark.hadoop.fs.s3a.endpoint y spark.hadoop.fs.s3a.endpoint.region, la región predeterminada utilizada por S3A es us-east-2. Esto puede provocar problemas, como errores de tiempo de espera de carga en S3, especialmente en los trabajos de VPC. Para mitigar los problemas ocasionados por este cambio, establezca la configuración spark.hadoop.fs.s3a.endpoint.region de Spark cuando utilice el sistema de archivos S3A en AWS Glue 5.1.

  • Para seguir utilizando el EMRFS en lugar del S3A, establezca las siguientes configuraciones de Spark:

    --conf spark.hadoop.fs.s3.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem --conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem --conf spark.hadoop.fs.AbstractFileSystem.s3.impl=org.apache.hadoop.fs.s3.EMRFSDelegate

Consulte la documentación de migración de Spark:

Migración desde versiones anteriores de AWS Glue a AWS Glue 5.1

Migración de conectores y controladores JDBC para AWS Glue 5.1

Para ver las versiones de los conectores de lago de datos y JDBC que se actualizaron, consulte:

Los siguientes cambios se aplican a las actualizaciones de las versiones de OTF identificadas en Apéndice D: actualizaciones del formato de tabla abierta para AWS Glue 5.1.

Apache Hudi

Tenga en cuenta los siguientes cambios:

  • Compatibilidad con el acceso a la lectura y escritura de FTA en las tablas registradas en Lake Formation.

Apache Iceberg

Tenga en cuenta los siguientes cambios:

  • Compatibilidad con el formato Iceberg versión 3. Se admiten las siguientes características:

    • Transformaciones con varios argumentos para la partición y clasificación.

    • Seguimiento del linaje de filas.

    • Vectores de eliminación. Puede obtener más información en la publicación del blog.

    • Claves de cifrado de tablas.

  • Compatibilidad con las escrituras de FGAC nativo de Spark en tablas registradas.

  • Compatibilidad con SQL de Athena: no se pueden leer las tablas de Iceberg V3 creadas por Spark en EMR debido a un error: GENERIC_INTERNAL_ERROR: Cannot read unsupported version 3.

Delta Lake

Tenga en cuenta los siguientes cambios:

  • Compatibilidad con el acceso a la lectura y escritura de FTA en las tablas registradas en Lake Formation.

Apéndice A: actualizaciones de dependencias importantes

Las siguientes son las actualizaciones de dependencias:

Dependencia Versión en AWS Glue 5.1 Versión en AWS Glue 5.0 Versión en AWS Glue 4.0 Versión en AWS Glue 3.0 Versión en AWS Glue 2.0 Versión en AWS Glue 1.0
Java 17 17 8 8 8 8
Spark 3.5.6 3.5.4 3.3.0-amzn-1 3.1.1-amzn-0 2.4.3 2.4.3
Hadoop 3.4.1 3.4.1 3.3.3-amzn-0 3.2.1-amzn-3 2.8.5-amzn-5 2.8.5-amzn-1
Scala 2.12.18 2.12.18 2.12 2.12 2.11 2.11
Jackson 2.15.2 2.15.2 2.12 2.12 2.11 2.11
Hive 2.3.9-amzn-4 2.3.9-amzn-4 2.3.9-amzn-2 2.3.7-amzn-4 1.2 1.2
EMRFS 2.73.0 2.69.0 2.54.0 2.46.0 2.38.0 2.30.0
Json4s 3.7.0-M11 3.7.0-M11 3.7.0-M11 3.6.6 3.5.x 3.5.x
Arrow 12.0.1 12.0.1 7.0.0 2.0.0 0.10.0 0.10.0
AWS GlueCliente del Catálogo de datos de 4.9.0 4.5.0 3.7.0 3.0.0 1.10.0 N/A
AWS SDK para Java 2.35.5 2.29.52 1.12 1.12
Python 3.11 3.11 3.10 3.7 2.7 y 3.6 2.7 y 3.6
Boto 1.40.61 1.34.131 1.26 1.18 1.12 N/A
Conector de DynamoDB para EMR 5.7.0 5.6.0 4.16.0

Apéndice B: actualizaciones de controladores JDBC

Las siguientes son las actualizaciones de controladores JDBC:

Controlador Versión del controlador JDBC en AWS Glue 5.1 Versión del controlador JDBC en AWS Glue 5.0 Versión del controlador JDBC en   AWS Glue 4.0 Versión del controlador JDBC en AWS Glue 3.0 Versión del controlador JDBC en las versiones de AWS Glue anteriores
MySQL 8.0.33 8.0.33 8.0.23 8.0.23 5.1
Microsoft SQL Server 10.2.0 10.2.0 9.4.0 7.0.0 6.1.0
Oracle Database 23.3.0.23.09 23.3.0.23.09 21.7 21.1 11.2
PostgreSQL 42.7.3 42.7.3 42.3.6 42.2.18 42.1.0
Amazon Redshift

redshift-jdbc42-2.1.0.29

redshift-jdbc42-2.1.0.29

redshift-jdbc42-2.1.0.16

redshift-jdbc41-1.2.12.1017

redshift-jdbc41-1.2.12.1017

SAP Hana 2.20.17 2.20.17 2.17.12
Teradata 20.00.00.33 20.00.00.33 20.00.00.06

Apéndice C: actualizaciones del conector

A continuación se indican las actualizaciones del conector:

Controlador Versión del conector en AWS Glue 5.1 Versión del conector en AWS Glue 5.0 Versión del conector en   AWS Glue 4.0 Versión del conector en   AWS Glue 3.0
Conector de DynamoDB para EMR 5.7.0 5.6.0 4.16.0
Amazon Redshift 6.4.2 6.4.0 6.1.3
OpenSearch 1.2.0 1.2.0 1.0.1
MongoDB 10.3.0 10.3.0 10.0.4 3.0.0
Snowflake 3.1.1 3.0.0 2.12.0
Google BigQuery 0.32.2 0.32.2 0.32.2
AzureCosmos 4.33.0 4.33.0 4.22.0
AzureSQL 1.3.0 1.3.0 1.3.0
Vertica 3.3.5 3.3.5 3.3.5

Apéndice D: actualizaciones del formato de tabla abierta

A continuación, puede ver las actualizaciones del formato de tabla abierta:

OTF Versión del conector en AWS Glue 5.1 Versión del conector en AWS Glue 5.0 Versión del conector en   AWS Glue 4.0 Versión del conector en   AWS Glue 3.0
Hudi 1.0.2 0.15.0 0.12.1 0.10.1
Delta Lake 3.3.2 3.3.0 2.1.0 1.0.0
Iceberg 1.10.0 1.7.1 1.0.0 0.13.1