Migration AWS Glue des tâches Spark vers la AWS Glue 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.

Migration AWS Glue des tâches Spark vers la AWS Glue version 5.1

Cette rubrique décrit les modifications apportées entre AWS Glue les 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, 5.1 choisissez-la Glue version lors 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'icebergs - Créez et gérez des vues matérialisées d'icebergs (MV). Pour plus d'informations, consultez le billet 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 les spécifications 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. Cette fonctionnalité permet d'effectuer des opérations de lecture et d'écriture à partir de vos tâches AWS Glue ETL sur des tables enregistrées lorsque le rôle de tâche dispose d'un accès complet aux tables.

  • Supporte le contrôle d'accès fin natif (FGAC) à l'aide d' DDL/DML opérations (telles que CREATE, ALTER, DELETE, DROP) avec un contrôle d'accès fin pour les tables Apache Hive, Apache Iceberg et Delta Lake enregistrées dans.

  • Contexte d'audit pour les tâches Spark - Le contexte d'audit pour les tâches AWS Glue ETL dont les tâches sont activées sera disponible AWS Glue et les appels d' AWS Lake Formation API seront enregistrés dans le journal

Limites et problèmes connus
  • Support limité pour 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 de la fonctionnalité Iceberg Materialized Views

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

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

  • Le support d'é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 la AWS Glue version 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 in Glue 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 in Glue 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 issus de la AWS Glue version 2.0 ou d'une version antérieure, lancez un serveur d'historique Spark mis à niveau pour AWS Glue 5.1 à l'aide CloudFormation de Docker.

Liste de contrôle de migration

Consultez cette liste de contrôle pour la migration :

  • [Python] Mettez à jour les références de démarrage de la version 1.34 à la version 1.40.

Migration de la AWS Glue version 5.0 vers AWS Glue la version 5.1

Tous les paramètres de travail existants et les fonctionnalités principales qui existent dans la AWS Glue version 5.0 existeront dans la AWS Glue version 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 spark.hadoop.fs.s3a.endpoint.region Spark lorsque vous utilisez le 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 des anciennes AWS Glue versions vers AWS Glue la version 5.1

Migration du connecteur et du pilote JDBC pour 5.1 AWS Glue

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 :

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

Apache Iceberg

Notez les modifications suivantes :

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

    • Transformations à arguments multiples pour le partitionnement et le tri.

    • Suivi du lignage des lignes.

    • Vecteurs de suppression. Pour en savoir plus, consultez un article de blog

    • Clés de chiffrement des tables.

  • Support les écritures FGAC natives de Spark sur les tables 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 :

  • Support de l'accès en lecture et en écriture au 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,1,18 2,1,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 de catalogue de données 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,10
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,1,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