View a markdown version of this page

Migrating AWS Glue pour Spark Jobs AWS Glue la version 5.1 - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Migrating AWS Glue pour Spark Jobs AWS Glue la version 5.1

Cette rubrique décrit les modifications entre les AWS Glue versions 0.9, 1.0, 2.0, 3.0, 4.0 et 5.0 pour vous permettre de migrer vos applications Spark et vos tâches ETL vers la AWS Glue version 5.1. Il décrit également les fonctionnalités de la AWS Glue version 5.1 et les avantages de son utilisation.

Pour utiliser cette fonctionnalité avec vos tâches AWS Glue ETL, sélectionnez-la Glue version lors 5.1 de la création de vos tâches.

Nouvelles fonctionnalités

Cette section décrit les nouvelles fonctionnalités et les avantages de la AWS Glue version 5.1.

  • Mise à jour d'Apache Spark de la version 3.5.4 dans la AWS Glue version 5.0 à la version 3.5.6 dans AWS Glue la version 5.1.

  • Formats de table ouverts (OTF) mis à jour vers Hudi 1.0.2, Iceberg 1.10.0 et Delta Lake 3.3.2

  • Vues matérialisées d'iceberg - Créez et gérez des vues matérialisées d'iceberg (MV). Pour plus d'informations, consultez l'article de blog

  • Format Iceberg version 3.0 - Étend les types de données et les structures de métadonnées existantes pour ajouter de nouvelles fonctionnalités. Pour plus d'informations, consultez la spécification de la table Iceberg.

  • Accès complet aux tables Hudi - Contrôle de l'accès complet aux tables (FTA) pour Apache Hudi dans Apache Spark en fonction de vos politiques définies dans. AWS Lake Formation Cette fonctionnalité permet les opérations de lecture et d'écriture à partir de vos tâches AWS Glue ETL sur les tables AWS Lake Formation enregistrées lorsque le rôle de la tâche dispose d'un accès complet aux tables.

  • Le contrôle d'accès fin (FGAC) natif de Spark prend en charge DDL/DML des opérations AWS Lake Formation - (telles que CREATE, ALTER, DELETE, DROP) avec un contrôle d'accès affiné pour les tables Apache Hive, Apache Iceberg et Delta Lake enregistrées dans. AWS Lake Formation

  • Contexte d'audit pour les tâches Spark - Le contexte d'audit pour les tâches AWS Glue ETL sera disponible pour les appels d' AWS Lake Formation API AWS Glue et les appels d'API seront inclus dans les AWS CloudTrail journaux.

Limites et problèmes connus

Notez les problèmes et limites connus suivants :

  • Prise en charge limitée de la clause View SQL pour la création de vues matérialisées, la réécriture de requêtes et l'actualisation incrémentielle. Vous trouverez plus de détails sur la page de documentation des fonctionnalités d'Iceberg Materialized Views

  • Les écritures Hudi FTA nécessitent d'être utilisées HoodieCredentialedHadoopStorage pour la vente d'informations d'identification lors de l'exécution de la tâche. Définissez la configuration suivante lors de l'exécution des tâches Hudi :

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

  • La prise en charge de l'écriture Hudi FTA ne fonctionne qu'avec les configurations Hudi par défaut. Les paramètres Hudi personnalisés ou autres que ceux par défaut peuvent ne pas être entièrement pris en charge et peuvent entraîner un comportement inattendu. Le clustering pour les tables Hudi Merge-On-Read (MOR) n'est pas non plus pris en charge en mode d'écriture FTA.

Évolutions

Prenez note des modifications majeures suivantes :

Actions pour migrer vers AWS Glue 5.1

Pour les tâches existantes, modifiez la Glue version depuis la version précédente vers Glue 5.1 dans la configuration de la tâche.

  • Dans AWS Glue Studio, choisissez Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3 dansGlue version.

  • Dans l’API, choisissez 5.1 dans le paramètre GlueVersion de l’opération d’API UpdateJob.

Pour les nouvelles tâches, choisissez Glue 5.1 lorsque vous créez une tâche.

  • Dans la console, choisissez Spark 3.5.6, Python 3 (Glue Version 5.1) or Spark 3.5.6, Scala 2 (Glue Version 5.1) dans Glue version.

  • Dans AWS Glue Studio, choisissez Glue 5.1 - Supports Spark 3.5.6, Scala 2, Python 3 dansGlue version.

  • Dans l’API, choisissez 5.1 dans le paramètre GlueVersion de l’opération d’API CreateJob.

Pour consulter les journaux d'événements Spark AWS Glue 5.1 provenant de la AWS Glue version 2.0 ou d'une version antérieure, lancez un serveur d'historique Spark mis à niveau pour la AWS Glue version 5.1 à l'aide CloudFormation de Docker.

Liste de contrôle de migration

Consultez cette liste de contrôle pour la migration :

  • [Python] Mettre à jour les références boto de 1.34 à 1.40.

Migration à partir de AWS Glue De 5,0 à AWS Glue 5.1

Tous les paramètres de tâche existants et les principales fonctionnalités de la AWS Glue version 5.0 seront disponibles dans la version AWS Glue 5.1. Notez les modifications suivantes lors de la migration :

  • Dans la AWS Glue version 5.1, le système de fichiers S3A a remplacé EMRFS en tant que connecteur S3 par défaut. Si spark.hadoop.fs.s3a.endpoint les deux ne spark.hadoop.fs.s3a.endpoint.region sont pas définis, la région par défaut utilisée par S3A estus-east-2. Cela peut entraîner des problèmes, tels que des erreurs de délai de chargement dans S3, en particulier pour les tâches VPC. Pour atténuer les problèmes causés par cette modification, définissez la configuration de spark.hadoop.fs.s3a.endpoint.region Spark lors de l'utilisation du système de fichiers S3A dans la AWS Glue version 5.1.

  • Pour continuer à utiliser EMRFS au lieu de S3A, définissez les configurations Spark suivantes :

    --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

Reportez-vous à la documentation sur la migration de Spark :

Migration depuis une version plus ancienne AWS Glue Versions pour AWS Glue 5.1

Migration de connecteurs et de pilotes JDBC pour AWS Glue 5.1

Pour en savoir plus sur les versions des connecteurs JDBC et de lac de données qui ont été mises à niveau, consultez :

Les modifications suivantes s'appliquent aux mises à niveau de la version OTF identifiées dans Annexe D : Mises à niveau du format de table ouverte la version AWS Glue 5.1.

Apache Hudi

Notez les modifications suivantes :

  • Soutenez l'accès en lecture et en écriture à la FTA sur les tables enregistrées de Lake Formation.

Apache Iceberg

Notez les modifications suivantes :

  • Supporte la version 3 du format Iceberg. Les fonctionnalités suivantes sont prises en charge :

    • Suivi du lignage des lignes.

    • Vecteurs de délétion. Pour en savoir plus, consultez le billet de blog

    • Clés de chiffrement des tables.

    • Prise en charge des valeurs par défaut pour les colonnes.

  • Supporte les écritures Spark-native FGAC sur les tables AWS Lake Formation enregistrées.

  • Compatibilité avec Athena SQL - Impossible de lire les tables Iceberg V3 créées par EMR Spark en raison d'une erreur : GENERIC_INTERNAL_ERROR: Cannot read unsupported version 3

Delta Lake

Notez les modifications suivantes :

  • Soutenez l'accès en lecture et en écriture à la FTA sur les tables enregistrées de Lake Formation.

Annexe A : Mises à niveau notables des dépendances

Voici les mises à niveau des dépendances :

Dépendance Version en AWS Glue 5.1 Version en AWS Glue 5.0 Version en AWS Glue 4.0 Version en AWS Glue 3.0 Version en AWS Glue 2.0 Version 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
Flèche 12,0,1 12,0,1 7.0.0 2.0.0 0.10.0 0.10.0
AWS Glue Client Data Catalog 4.9.0 4.5.0 3.7.0 3.0.0 1.10.0 N/A
AWS SDK pour Java 2,35,5 2,29,52 1.12 1.12
Python 3,11 3,11 3,10 3.7 2.7 et 3.6 2.7 et 3.6
Boto 1,40,61 1,34,131 1,26 1,18 1.12 N/A
Connecteur EMR DynamoDB 5.7.0 5.6.0 4,16,0

Annexe B : Mises à niveau du pilote JDBC

Voici les mises à niveau du pilote JDBC :

Pilote Version du pilote JDBC en 5.1 AWS Glue Version du pilote JDBC en 5.0 AWS Glue Version du pilote JDBC en 4.0 AWS Glue Version du pilote JDBC en 3.0 AWS Glue Version du pilote JDBC dans les versions précédentes AWS Glue
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 Databases 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

Annexe C : Mises à niveau des connecteurs

Les mises à niveau des connecteurs sont les suivantes :

Pilote Version du connecteur en AWS Glue 5.1 Version du connecteur en AWS Glue 5.0 Version du connecteur en AWS Glue 4.0 Version du connecteur en AWS Glue 3.0
Connecteur EMR DynamoDB 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

Annexe D : Mises à niveau du format de table ouverte

Les mises à niveau du format de table ouverte sont les suivantes :

OTF Version du connecteur en AWS Glue 5.1 Version du connecteur en AWS Glue 5.0 Version du connecteur en AWS Glue 4.0 Version du connecteur 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