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.
Cette rubrique décrit les modifications apportées entre AWS Glue les versions 0.9, 1.0, 2.0, 3.0 et 4.0 pour vous permettre de migrer vos applications Spark et vos tâches ETL vers la AWS Glue version 5.0. Il décrit également les fonctionnalités de la AWS Glue version 5.0 et les avantages de son utilisation.
Pour utiliser cette fonctionnalité avec vos tâches AWS Glue ETL, 5.0
choisissez-la Glue version
lors de la création de vos tâches.
Rubriques
Nouvelles fonctionnalités
Cette section décrit les nouvelles fonctionnalités et les avantages de la AWS Glue version 5.0.
-
Mise à jour d'Apache Spark de la version 3.3.0 dans la AWS Glue version 4.0 à la version 3.5.2 dans AWS Glue la version 5.0. Consultez Améliorations majeures de Spark 3.3.0 à Spark 3.5.2.
-
Contrôle d'accès à grain fin (FGAC) natif de Spark à l'aide de Lake Formation. Pour plus d'informations, consultez la section Utilisation AWS Glue avec AWS Lake Formation pour un contrôle d'accès précis.
Notez les considérations ou limites suivantes pour le FGAC natif de Spark :
Actuellement, les écritures de données ne sont pas prises en charge
Pour écrire dans Iceberg en
GlueContext
utilisant Lake Formation, il faut plutôt utiliser le contrôle d'accès IAM
Pour une liste complète des limites et des considérations relatives à l'utilisation du FGAC natif de Spark, voir. Considérations et restrictions
-
Support des subventions d'accès Amazon S3 en tant que solution de contrôle d'accès évolutive à vos données Amazon S3 depuis AWS Glue. Pour de plus amples informations, veuillez consulter Utilisation d'Amazon S3 Access Grants avec AWS Glue.
-
Open Table Formats (OTF) mis à jour vers Hudi 0.15.0, Iceberg 1.6.1 et Delta Lake 3.2.1
-
Support d'Amazon SageMaker Unified Studio.
-
Amazon SageMaker Lakehouse et intégration de l'abstraction de données. Pour de plus amples informations, veuillez consulter Interrogation de catalogues de données de métastore à partir de l'ETL AWS Glue.
-
Support pour installer des bibliothèques Python supplémentaires à l'aide de
requirements.txt
. Pour de plus amples informations, veuillez consulter Installation de bibliothèques Python supplémentaires dans AWS Glue 5.0 à l'aide de requirements.txt. -
AWS Glue La version 5.0 prend en charge le lignage des données sur Amazon DataZone. Vous pouvez configurer AWS Glue pour collecter automatiquement des informations de lignage lors de l'exécution des tâches Spark et envoyer les événements de lignage à visualiser sur Amazon. DataZone Pour plus d'informations, consultez la section Lignage des données sur Amazon DataZone.
Pour le configurer sur la AWS Glue console, activez Generate lineage events et saisissez votre identifiant de DataZone domaine Amazon dans l'onglet Job details.
Vous pouvez également fournir le paramètre de tâche suivant (indiquez votre ID de DataZone domaine) :
Clé :
--conf
Valeur :
extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener —conf spark.openlineage.transport.type=amazon_datazone_api -conf spark.openlineage.transport.domainId=<your-domain-ID>
-
Mises à jour du connecteur et du pilote JDBC. Pour plus d’informations, consultez Annexe B : Mises à niveau du pilote JDBC et Annexe C : Mises à niveau des connecteurs.
-
Mise à jour de Java de 8 à 17.
-
Stockage accru pour les
G.2X
employés AWS GlueG.1X
et les employés, l'espace disque passant respectivement à 94 Go et 138 Go. Pour plus d’informations, consultez Tâches. Support pour les tâches AWS SDK for Java, versions 2 AWS Glue à 5.0, peuvent utiliser les versions
1.12.569 ou 2.28.8 pour Java si la tâche prend en charge la version v2. Le AWS SDK pour Java 2.x est une réécriture majeure de la base de code de la version 1.x. Il repose sur Java 8+ et ajoute plusieurs fonctionnalités fréquemment demandées. Cela inclut la prise en charge d’E/S non bloquantes et la possibilité de brancher une implémentation HTTP différente au moment de l’exécution. Pour plus d'informations, y compris un guide de migration du SDK pour Java v1 vers la v2, consultez AWS le guide du SDK pour Java, version 2.
Évolutions
Notez les modifications majeures suivantes :
GlueContext
le contrôle d'accès basé sur une table avec des AWS Lake Formation autorisations prises en charge dans Glue 4.0 ou antérieur n'est pas pris en charge dans Glue 5.0. Utilisez le nouveau contrôle d'accès fin natif de Spark (FGAC) dans Glue 5.0. Notez les informations suivantes :Si vous avez besoin d'un contrôle d'accès détaillé (FGAC) pour le contrôle row/column/cell d'accès, vous devez migrer depuis
GlueContext
DynamicFrame
/Glue in Glue 4.0 et vers une version antérieure à Spark inDataFrame
Glue 5.0.Si vous avez besoin d'database/table level access control, you can grant database/tableautorisations pour accéder à vos rôles. Cela évite de devoir migrer depuis des dataframes
GlueContext
vers Spark.Si vous n'avez pas besoin du FGAC, aucune migration vers le dataframe Spark n'est nécessaire et les
GlueContext
fonctionnalités telles que les signets de tâches et les prédicats push down continueront de fonctionner.Les tâches au sein du FGAC nécessitent un minimum de 4 travailleurs : un pilote utilisateur, un pilote système, un exécuteur système et un exécuteur utilisateur de secours.
Pour plus d'informations, consultez la section Utilisation AWS Glue avec AWS Lake Formation pour un contrôle d'accès précis.
Le lecteur CSV SIMD vectorisé n'est pas pris en charge.
La journalisation continue dans le groupe de journaux de sortie n'est pas prise en charge. Utilisez plutôt un groupe de
error
journaux.Le AWS Glue Job Run Insights
job-insights-rule-driver
est devenu obsolète. Le flux dujob-insights-rca-driver
journal se trouve désormais dans le groupe des journaux d'erreurs.Les connecteurs personnalisés/de marché basés sur Athena ne sont pas pris en charge.
Les connecteurs Adobe Marketo Engage, Facebook Ads, Google Ads, Google Analytics 4, Google Sheets, Hubspot, Instagram Ads, Intercom, Jira Cloud, Oracle, Salesforce, Salesforce Marketing Cloud NetSuite, Salesforce Marketing Cloud Account Engagement, SAP, Slack, Snapchat Ads OData ServiceNow, Stripe, Zendesk et Zoho CRM ne sont pas pris en charge.
Les propriétés log4j personnalisées ne sont pas prises en charge dans Glue 5.0.
Améliorations majeures de Spark 3.3.0 à Spark 3.5.2
Notez les améliorations suivantes :
-
Client Python pour Spark Connect (SPARK-39375
). -
Implémenter le support des valeurs DEFAULT pour les colonnes des tables (SPARK-38334
). -
Support « Références d'alias de colonne latérale » (SPARK-27561
). -
Renforcez l'utilisation de SQLSTATE pour les classes d'erreur (SPARK-41994).
-
Activez les jointures du filtre Bloom par défaut (SPARK-38841
). -
Amélioration de l'évolutivité de l'interface utilisateur Spark et de la stabilité des pilotes pour les applications de grande envergure (SPARK-41053
). -
Suivi de la progression asynchrone dans le streaming structuré (SPARK-39591
). -
Traitement dynamique arbitraire en Python dans le streaming structuré (SPARK-40434
). -
Améliorations de la couverture de l'API Pandas (SPARK-42882
) et de la prise en charge des NumPy entrées dans (SPARK-39405). PySpark -
Fournissez un profileur de mémoire pour les fonctions PySpark définies par l'utilisateur (SPARK-40281
). -
PyTorch Distributeur d'outils (SPARK-41589
). -
Publiez des artefacts SBOM (SPARK-41893
). -
Support IPv6 uniquement pour l'environnement (SPARK-39457
). -
Planificateur K8s personnalisé (Apache YuniKorn et Volcano) GA (SPARK-42802).
-
Support client Scala et Go dans Spark Connect (SPARK-42554) et (SPARK-43351
). -
PyTorchSupport ML distribué basé sur Spark Connect (SPARK-42471
). -
Support de streaming structuré pour Spark Connect en Python et Scala (SPARK-42938
). -
Support de l'API Pandas pour le client Python Spark Connect (SPARK-42497
). -
Présentez Arrow Python UDFs (SPARK-40307
). -
Support des fonctions de table définies par l'utilisateur en Python (SPARK-43798
). -
Migrez PySpark les erreurs vers les classes d'erreurs (SPARK-42986
). -
PySpark cadre de test (SPARK-44042
). -
Ajout du support pour Datasketches HllSketch (SPARK-16484
). -
Amélioration de la fonction SQL intégrée (SPARK-41231
). -
Clause IDENTIFIER (SPARK-43205
). -
Ajoutez des fonctions SQL dans Scala, Python et R API (SPARK-43907
). -
Ajout de la prise en charge des arguments nommés pour les fonctions SQL (SPARK-43922
). -
ML distribué <> Spark Connect (SPARK-42471
). -
DeepSpeed distributeur (SPARK-44264
). -
Introduisez la propagation des filigranes parmi les opérateurs (SPARK-42376
). -
Présentez dropDuplicatesWithin Watermark (SPARK-42931
). -
Améliorations apportées à la gestion de la mémoire du fournisseur RockSDB State Store (SPARK-43311
).
Actions pour migrer vers la AWS Glue version 5.0
Pour les tâches existantes, modifiez la Glue version
depuis la version précédente vers Glue 5.0
dans la configuration de la tâche.
-
Dans AWS Glue Studio, choisissez «
Glue 5.0 - Supports Spark 3.5.2, Scala 2, Python 3
inGlue version
». -
Dans l'API, choisissez
5.0
dans le paramètreGlueVersion
de l'opération d'APIUpdateJob
.
Pour les nouvelles tâches, choisissez Glue 5.0
lorsque vous créez une tâche.
-
Dans la console, choisissez
Spark 3.5.2, Python 3 (Glue Version 5.0) or Spark 3.5.2, Scala 2 (Glue Version 5.0)
dansGlue version
. -
Dans AWS Glue Studio, choisissez «
Glue 5.0 - Supports Spark 3.5.2, Scala 2, Python 3
inGlue version
». -
Dans l'API, choisissez
5.0
dans le paramètreGlueVersion
de l'opération d'APICreateJob
.
Pour consulter les journaux d'événements Spark de la AWS Glue version 5.0 à partir de la version AWS Glue 2.0 ou d'une version antérieure, lancez un serveur d'historique Spark mis à niveau pour la AWS Glue version 5.0 à l'aide AWS CloudFormation de Docker.
Liste de contrôle de migration
Consultez cette liste de contrôle pour la migration :
-
Mises à jour de Java 17
-
[Scala] Mettre à niveau les appels du AWS SDK de la v1 à la v2
-
Migration de Python 3.10 vers 3.11
-
[Python] Mettre à jour les références de démarrage de la version 1.26 à la version 1.34
AWS Glue Caractéristiques de la version 5.0
Cette section décrit les AWS Glue fonctionnalités de manière plus détaillée.
Interrogation de catalogues de données de métastore à partir de l'ETL AWS Glue
Vous pouvez enregistrer votre AWS Glue travail pour accéder au AWS Glue Data Catalog, qui met les tables et autres ressources de métastore à la disposition de clients disparates. Le catalogue de données prend en charge une hiérarchie de catalogues multiples, qui unifie toutes vos données dans les lacs de données Amazon S3. Il fournit également une API de métastore Hive et une API Apache Iceberg open source pour accéder aux données. Ces fonctionnalités sont disponibles pour AWS Glue d'autres services axés sur les données tels qu'Amazon EMR, Amazon Athena et Amazon Redshift.
Lorsque vous créez des ressources dans le catalogue de données, vous pouvez y accéder à partir de n'importe quel moteur SQL prenant en charge l'API REST Apache Iceberg. AWS Lake Formation gère les autorisations. Après la configuration, vous pouvez tirer parti des capacités AWS Glue de l'application pour interroger des données disparates en interrogeant ces ressources de métastore avec des applications familières. Il s'agit notamment d'Apache Spark et de Trino.
Comment les ressources de métadonnées sont organisées
Les données sont organisées selon une hiérarchie logique de catalogues, de bases de données et de tables, à l' AWS Glue Data Catalog aide des éléments suivants :
Catalogue : conteneur logique qui contient des objets provenant d'un magasin de données, tels que des schémas ou des tables.
Base de données : organise les objets de données tels que les tables et les vues dans un catalogue.
Tables et vues : objets de données d'une base de données qui fournissent une couche d'abstraction avec un schéma compréhensible. Ils facilitent l'accès aux données sous-jacentes, qui peuvent être dans différents formats et à différents endroits.
Migration de la AWS Glue version 4.0 vers AWS Glue la version 5.0
Tous les paramètres de travail existants et les principales fonctionnalités qui existent dans la AWS Glue version 4.0 existeront dans la AWS Glue version 5.0, à l'exception des transformations liées à l'apprentissage automatique.
Les nouveaux paramètres suivants ont été ajoutés :
-
--enable-lakeformation-fine-grained-access
: Active la fonctionnalité de contrôle d'accès détaillé (FGAC) dans les tables de AWS Lake Formation.
Reportez-vous à la documentation sur la migration de Spark :
Migration de la AWS Glue version 3.0 à AWS Glue la version 5.0
Note
Pour les étapes de migration liées à la AWS Glue version 4.0, voirMigration de la AWS Glue version 3.0 à AWS Glue la version 4.0.
Tous les paramètres de travail existants et les fonctionnalités principales qui existent dans la AWS Glue version 3.0 existeront dans la AWS Glue version 5.0, à l'exception des transformations de machine learning.
Migration de la AWS Glue version 2.0 vers AWS Glue la version 5.0
Note
Pour les étapes de migration liées à la version AWS Glue 4.0 et la liste des différences de migration entre les AWS Glue versions 3.0 et 4.0, voirMigration de la AWS Glue version 3.0 à AWS Glue la version 4.0.
Notez également les différences de migration suivantes entre AWS Glue les versions 3.0 et 2.0 :
Tous les paramètres de travail existants et les fonctionnalités principales qui existent dans la AWS Glue version 2.0 existeront dans la AWS Glue version 5.0, à l'exception des transformations de machine learning.
Plusieurs modifications Spark peuvent à elles seules nécessiter une révision de vos scripts pour s'assurer que les fonctions supprimées ne sont pas référencées. Par exemple, Spark 3.1.1 et versions ultérieures n'activent pas Scala-Untyped, UDFs mais Spark 2.4 le permet.
Python 2.7 n'est pas pris en charge.
Tout fichier jar supplémentaire fourni dans les tâches AWS Glue 2.0 existantes peut entraîner des dépendances conflictuelles, car plusieurs dépendances ont été mises à niveau. Vous pouvez éviter les conflits de chemin de classe avec le paramètre de
--user-jars-first
tâche.Modifications du comportement des fichiers de loading/saving of timestamps from/to parquet. Pour plus de détails, veuillez consulter Mise à niveau de Spark SQL 3.0 vers 3.1.
Parallélisme différent des tâches Spark pour la configuration pilote/exécuteur. Vous pouvez ajuster le parallélisme des tâches en transmettant l'argument
--executor-cores
job.
Migration du connecteur et du pilote JDBC pour la version 5.0 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 versions du connecteur ou du pilote identifiées dans les annexes de Glue 5.0.
Amazon Redshift
Notez les modifications suivantes :
Ajoute la prise en charge des noms de table en trois parties pour permettre au connecteur d'interroger les tables de partage de données Redshift.
Corrige le mappage de Spark
ShortType
afin d'utiliser RedshiftSMALLINT
plutôt que de mieux correspondreINTEGER
à la taille de données attendue.Ajout de la prise en charge des noms de cluster personnalisés (CNAME) pour Amazon Redshift Serverless.
Apache Hudi
Notez les modifications suivantes :
Support : indice de niveau record.
Support de génération auto de clés d'enregistrement. Désormais, il n'est plus nécessaire de spécifier le champ clé d'enregistrement.
Apache Iceberg
Notez les modifications suivantes :
Support d'un contrôle d'accès précis avec. AWS Lake Formation
Support du branchement et du balisage, qui sont des références nommées à des instantanés dotés de leur propre cycle de vie indépendant.
Ajout d'une procédure d'affichage du journal des modifications qui génère une vue contenant les modifications apportées à une table au cours d'une période spécifiée ou entre des instantanés spécifiques.
Delta Lake
Notez les modifications suivantes :
Support du format Delta Universal (UniForm) qui permet un accès fluide via Apache Iceberg et Apache Hudi.
Support des vecteurs de suppression qui implémentent un Merge-on-Read paradigme.
AzureCosmos
Notez les modifications suivantes :
Ajout du support des clés de partition hiérarchiques.
Ajout d'une option permettant d'utiliser un schéma personnalisé avec StringType (json brut) pour une propriété imbriquée.
Ajout d'une option
spark.cosmos.auth.aad.clientCertPemBase64
de configuration pour permettre d'utiliser l'authentification SPN (ServicePrincipal nom) avec un certificat au lieu du secret client.
Pour plus d'informations, consultez le journal des modifications du connecteur Azure Cosmos DB Spark
Microsoft SQL Server
Notez les modifications suivantes :
Le chiffrement TLS est activé par défaut.
Lorsque encrypt = false mais que le serveur exige le chiffrement, le certificat est validé en fonction du paramètre de
trustServerCertificate
connexion.aadSecurePrincipalId
etaadSecurePrincipalSecret
obsolète.getAADSecretPrincipalId
API supprimée.Ajout de la prise en charge du type de données SQL_Variant lors de la récupération.
DateTimeOffset
Résolution CNAME ajoutée lorsque le domaine est spécifié.
MongoDB
Notez les modifications suivantes :
Support du mode micro-batch avec Spark Structured Streaming.
Support pour les types de données BSON.
Ajout de la prise en charge de la lecture de plusieurs collections lors de l'utilisation des modes microbatch ou de diffusion continue.
Si le nom d'une collection utilisée dans votre option de
collection
configuration contient une virgule, le connecteur Spark la traite comme deux collections différentes. Pour éviter cela, vous devez éviter la virgule en la faisant précéder d'une barre oblique inverse (\).Si le nom d'une collection utilisée dans votre option de
collection
configuration est « * », le connecteur Spark l'interprète comme une spécification pour scanner toutes les collections. Pour éviter cela, vous devez éviter l'astérisque en le faisant précéder d'une barre oblique inverse (\).Si le nom d'une collection utilisée dans votre option de
collection
configuration contient une barre oblique inverse (\), le connecteur Spark traite la barre oblique inverse comme un caractère d'échappement, ce qui peut modifier la façon dont il interprète la valeur. Pour éviter cela, vous devez éviter la barre oblique inverse en la faisant précéder d'une autre barre oblique inverse.
Pour plus d'informations, consultez les notes de mise à jour du connecteur MongoDB pour Spark
Snowflake
Notez les modifications suivantes :
Ajout d'un nouveau
trim_space
paramètre que vous pouvez utiliser pour réduire automatiquement les valeurs desStringType
colonnes lors de l'enregistrement dans une table Snowflake. Par défaut:false
.Le
abort_detached_query
paramètre a été désactivé par défaut au niveau de la session.Suppression de l'exigence du
SFUSER
paramètre lors de l'utilisation d'OAUTH.Suppression de la fonctionnalité Advanced Query Pushdown. Des alternatives à cette fonctionnalité sont disponibles. Par exemple, au lieu de charger des données à partir de tables Snowflake, les utilisateurs peuvent charger directement des données à partir de requêtes SQL Snowflake.
Pour plus d'informations, consultez les notes de mise à jour du connecteur Snowflake pour Spark
Annexe A : Mises à niveau notables des dépendances
Voici les mises à niveau des dépendances :
Dépendance | 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 | 8 | 8 | 8 | 8 |
Spark | 3.5.2-amzn-1 | 3.3.0-amzn-1 | 3.1.1-amzn-0 | 2.4.3 | 2.4.3 |
Hadoop | 3.4.0-amzn-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,12 | 2,12 | 2.11 | 2.11 |
Jackson | 2.15.2 | 2,12 | 2,12 | 2.11 | 2.11 |
Hive | 2.3.9-amzn-4 | 2.3.9-amzn-2 | 2.3.7-amzn-4 | 1.2 | 1.2 |
EMRFS | 2,66,0 | 2,54,0 | 2,46,0 | 2.38.0 | 2.30.0 |
Json4s | 3.7.0-M11 | 3.7.0-M11 | 3.6.6 | 3.5.x | 3.5.x |
Flèche | 12,0.1 | 7.0.0 | 2.0.0 | 0.10.0 | 0.10.0 |
AWS Glue Client de catalogue de données | 4.2.0 | 3.7.0 | 3.0.0 | 1.10.0 | N/A |
AWS SDK pour Java | 2,28,8 | 1.12 | 1.12 | ||
Python | 3,11 | 3,10 | 3.7 | 2.7 et 3.6 | 2.7 et 3.6 |
Boto | 1,34,131 | 1,26 | 1,18 | 1.12 | N/A |
Connecteur EMR DynamoDB | 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.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.23 | 8.0.23 | 5.1 |
Microsoft SQL Server | 10.2.0 | 9.4.0 | 7.0.0 | 6,10 |
Oracle Databases | 23,3.0,23,09 | 21,7 | 21,1 | 11.2 |
PostgreSQL | 42.7.3 | 42,3.6 | 42,2,18 | 42,10 |
Amazon Redshift |
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,17,12 | ||
Teradata | 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.0 | Version du connecteur en AWS Glue 4.0 | Version du connecteur en AWS Glue 3.0 |
---|---|---|---|
Connecteur EMR DynamoDB | 5.6.0 | 4,16,0 | |
Amazon Redshift | 6.3.0 | 6.1.3 | |
OpenSearch | 1.2.0 | 1.0.1 | |
MongoDB | 10.4.0 | 10,0.4 | 3.0.0 |
Snowflake | 3.0.0 | 2.12.0 | |
Google BigQuery | 0,32,2 | 0,32,2 | |
AzureCosmos | 4,33,0 | 4,22,0 | |
AzureSQL | 1.3.0 | 1.3.0 | |
Vertica | 3.3.5 | 3.3.5 |
Annexe D : Mises à niveau du format de tableau ouvert
Les mises à niveau du format de table ouverte sont les suivantes :
OTF | 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 | 0,15,0 | 0.12.1 | 0,1,1 |
Delta Lake | 3.2.1 | 2.1.0 | 1.0.0 |
Iceberg | 1.6.1 | 1.0.0 | 0.13.1 |