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.0
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 et ETL tâches Spark 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 AWS Glue ETL tâches, choisissez-la Glue version
lors 5.0
de la création de vos tâches.
Rubriques
- Nouvelles fonctionnalités
- Actions pour migrer vers la AWS Glue version 5.0
- Liste de contrôle de migration
- AWS Glue Caractéristiques de la version 5.0
- Migration de la AWS Glue version 4.0 vers AWS Glue la version 5.0
- Migration de la AWS Glue version 3.0 à AWS Glue la version 5.0
- Migration de la AWS Glue version 2.0 vers AWS Glue la version 5.0
- Migration de connecteurs et de JDBC pilotes pour la AWS Glue version 5.0
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 fin natif à Spark () à l'aide de FGAC 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 Spark-native FGAC :
Actuellement, les écritures de données ne sont pas prises en charge
écrire dans Iceberg en
GlueContext
utilisant Lake Formation nécessite plutôt l'utilisation d'un contrôle d'IAMaccès
-
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 AWS Glue ETL.
-
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 JDBC du connecteur et du pilote. Pour plus d’informations, consultez Annexe B : mises à niveau des JDBC pilotes 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 AWS SDK pour Java, versions 2 à AWS Glue 5.0, les tâches peuvent utiliser les versions 1.12.569
ou 2.28.8 pour Java si la tâche prend en charge la version v2. La version 2.x AWS SDK pour Java 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. Il s'agit notamment de la prise en charge des E/S non bloquantes et de la possibilité de connecter une HTTP implémentation différente lors de l'exécution. Pour plus d'informations, y compris un guide SDK de migration de Java v1 à v2, consultez le guide AWS SDKpour 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.Le SIMDCSVlecteur 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.
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, Slack, Snapchat Ads SAP OData ServiceNow, Stripe, Zendesk et Zoho ne sont pas pris en charge. CRM
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 la prise en charge des DEFAULT valeurs pour les colonnes des tables (SPARK-38334
). -
Support « Références d'alias de colonne latérale » (SPARK-27561
). -
Renforcez SQLSTATE l'utilisation des 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 API la couverture des pandas (SPARK-42882
) et de la prise en charge des NumPy entrées dans PySpark (-39405). SPARK -
Fournissez un profileur de mémoire pour les fonctions PySpark définies par l'utilisateur (SPARK-40281
). -
PyTorch Distributeur d'outils (SPARK-41589
). -
Publier SBOM des artefacts (SPARK-41893
). -
Support IPv6 uniquement pour l'environnement (SPARK-39457
). -
Planificateur K8s personnalisé (Apache YuniKorn et Volcano) GA (-42802). SPARK
-
Support client Scala et Go dans Spark Connect (SPARK-42554) et (-43351
). SPARK -
PyTorchSupport ML distribué basé sur le support pour Spark Connect (SPARK-42471
). -
Support de streaming structuré pour Spark Connect en Python et Scala (SPARK-42938
). -
APISupport de 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 des SQL fonctions intégrée (SPARK-41231
). -
IDENTIFIERclause (SPARK-43205
). -
Ajoutez des SQL fonctions dans Scala, Python et R API (SPARK-43907
). -
Ajout de la prise en charge des arguments nommés pour SQL les fonctions (SPARK-43922
). -
ML distribué <> Spark Connect (SPARK-42471
). -
DeepSpeed distributeur (SPARK-44264
). -
Introduisez la propagation des filigranes parmi les opérateurs (SPARK-42376
). -
Introduisez 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 leAPI, choisissez
5.0
leGlueVersion
paramètre de l'UpdateJob
APIopération.
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 leAPI, choisissez
5.0
leGlueVersion
paramètre de l'CreateJob
APIopération.
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 AWS SDK appels 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 AWS Glue ETL
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 à la fois un métastore Hive API et un Apache Iceberg API open source pour accéder aux données. Ces fonctionnalités sont disponibles pour d'autres services axés sur les données tels qu'AmazonEMR, Amazon Athena AWS Glue 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 SQL moteur compatible avec Apache Iceberg RESTAPI. 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 fine (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, consultez la section Mise à niveau de Spark SQL 3.0 vers la version 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 de connecteurs et de JDBC pilotes pour la AWS Glue version 5.0
Pour les versions JDBC et les connecteurs Data Lake qui ont été mises à niveau, voir :
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
pour utiliser RedshiftSMALLINT
plutôt queINTEGER
pour mieux correspondre à la taille de données attendue.Ajout de la prise en charge des noms de clusters 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 :
TLSle chiffrement 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
APIsupprimé.Ajout de la prise en charge du type de données SQL _Variant lors de la récupération.
DateTimeOffset
CNAMERésolution 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 BSON données.
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 version 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'utilisationOAUTH.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 |
Kit 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 |
EMRConnecteur DynamoDB | 5.6.0 | 4,16,0 |
Annexe B : mises à niveau des JDBC pilotes
Les mises à niveau des JDBC pilotes sont les suivantes :
Pilote | JDBCversion du pilote en AWS Glue 5.0 | JDBCversion du pilote en AWS Glue 4.0 | JDBCversion du pilote en AWS Glue 3.0 | JDBCversion du pilote dans les AWS Glue versions précédentes |
---|---|---|---|---|
Mon SQL | 8,0,33 | 8.0.23 | 8.0.23 | 5.1 |
Microsoft SQL Server | 10.2.0 | 9.4.0 | 7.0.0 | 6.1.0 |
Oracle Databases | 23,3.0,23,09 | 21,7 | 21,1 | 11.2 |
Poster SQL | 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 |
SAPHana | 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 |
---|---|---|---|
EMRConnecteur 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 | |
Azure SQL | 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 |