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.
Temas
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:
-
El sistema de archivos S3A reemplazó el EMRFS como conector S3 predeterminado. Para obtener información acerca de cómo realizar la migración, consulte Migración de AWS Glue 5.0 a AWS Glue 5.1.
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 3enGlue version. -
En la API, elija
5.1en el parámetroGlueVersionde la operación de la APIUpdateJob.
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)enGlue version. -
En AWS Glue Studio, elija
Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3enGlue version. -
En la API, elija
5.1en el parámetroGlueVersionde la operación de la APICreateJob.
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.endpointyspark.hadoop.fs.s3a.endpoint.region, la región predeterminada utilizada por S3A esus-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ónspark.hadoop.fs.s3a.endpoint.regionde 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
-
Para conocer los pasos de migración relacionados con la versión de AWS Glue 4.0 a AWS Glue 5.0, consulte Migración de la versión de AWS Glue 4.0 a AWS Glue 5.0.
-
Para conocer los pasos de migración relacionados con la versión de AWS Glue 3.0 a AWS Glue 5.0, consulte Migración de la versión de AWS Glue 3.0 a AWS Glue 5.0.
-
Para conocer los pasos de migración relacionados con la versión de AWS Glue 2.0 a AWS Glue 5.0 y una lista de las diferencias de migración entre las versiones de AWS Glue 2.0 y 4.0, consulte Migración de la versión de AWS Glue 2.0 a AWS Glue 5.0.
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 |