Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Migrating AWS Glue für Spark-Jobs zu AWS Glue Version 6.0
In diesem Thema werden die Änderungen zwischen AWS Glue Version 5.1 und 6.0 beschrieben, die es Ihnen ermöglichen, Ihre Spark-Anwendungen und ETL-Jobs auf AWS Glue 6.0 zu migrieren. Außerdem werden die Funktionen in AWS Glue 6.0 und die Vorteile ihrer Verwendung beschrieben.
Um diese Funktion mit Ihren AWS Glue ETL-Jobs zu verwenden, wählen Sie Glue version bei der Erstellung Ihrer Jobs 6.0 für.
Themen
Neue Features
In diesem Abschnitt werden die neuen Funktionen und Vorteile von AWS Glue Version 6.0 beschrieben.
-
Apache Spark-Upgrade von 3.5.6 in AWS Glue 5.1 auf 4.1.1 in AWS Glue 6.0.
-
Scala-Upgrade von 2.12.18 auf 2.13.17.
-
Python-Upgrade von 3.11 auf 3.13.
-
Open Table Formats (OTF) wurde auf Hudi 1.1.1, Iceberg 1.11.0 und Delta Lake 4.2.0 aktualisiert.
-
Version 3 des Iceberg-Formats — Erweitert Datentypen und bestehende Metadatenstrukturen um neue Funktionen, darunter:
VARIANT-Datentyp mit Varianten-Shredding für eine vereinfachte Verwaltung halbstrukturierter Daten und schnellere Lesevorgänge.
Nanosecond-precision Zeitstempel.
Geodatentypen (Geometrie und Geografie).
Das Upgrade auf Iceberg v3 ist eine einseitige Änderung
Wenn Sie eine Iceberg-Tabelle auf das Format Version 3 aktualisieren, können Sie sie nicht wieder auf Version 2 herunterstufen. Iceberg lehnt den Vorgang ab.
ALTER TABLE ... SET TBLPROPERTIES('format-version'='2')Wenn Sie einen anderen Dienst verwenden, der Iceberg v3 nicht unterstützt, behalten Sie ihn als Iceberg v2-Tabelle bei und führen Sie kein Upgrade auf Version 3 durch. -
Spark Declarative Pipelines (SDP) — Ein neues deklaratives Framework für die Definition von End-to-End-Daten-Pipelines mithilfe von SQL oder DataFrame API mit Unterstützung für Streaming-Tabellen und materialisierte Ansichten. Weitere Informationen finden Sie unter Deklarative Spark-Pipelines.
-
Spark Connect für interaktive Sitzungen — Ermöglicht Thin-Client-Konnektivität zu AWS Glue interaktiven Sitzungen über das Spark Connect-Protokoll und unterstützt Remote-Entwicklungsworkflows.
-
Arrow-native Python UDFs/UDTFs — Verbesserte Leistung für benutzerdefinierte Python-Funktionen, die das spaltenförmige Apache Arrow-Format nativ verwenden.
-
Customer-managed oder vom Dienst generierte virtuelle Python-Umgebung (
--python-virtual-env) — Sie können Ihr eigenes Python-Venv erstellen und bereitstellen, das zur Laufzeit AWS Glue an Spark-Treiber und -Executoren angehängt wird und so die volle Kontrolle über das Abhängigkeitsmanagement bietet. Wenn bestehende Jobs auf AWS Glue 6.0 migriert werden, generiert diese virtuelle Umgebung bei AWS Glue Bedarf automatisch. Weitere Informationen finden Sie unter Verwenden von virtuellen Python-Umgebungen mit AWS Glue. -
Streaming-Verbesserungen — Real-time Modus für statusfreies Streaming mit Latenz im Millisekundenbereich. Weitere Informationen finden Sie unter Aktivierung des Echtzeitmodus für Streaming-Jobs.
-
Connector-Upgrades — Amazon Redshift, MongoDB, Snowflake und andere Konnektoren wurden aktualisiert. Vollständige Versionsdetails finden Sie unterAnhang C: Konnektor-Upgrades.
Bekannte Probleme und Einschränkungen
Beachten Sie die folgenden bekannten Probleme und Einschränkungen:
-
Der ANSI-Modus ist in Spark 4.1 standardmäßig aktiviert. Operationen, die zuvor bei einem Überlauf NULL zurückgegeben haben (z. B. Ganzzahl-Arithmetik, Umwandlungsoperationen), lösen jetzt Ausnahmen aus. Legt fest,
spark.sql.ansi.enabled=falsedass das vorherige Verhalten wiederhergestellt wird. -
Spark Declarative Pipelines (SDP) ist eine neue Funktion mit eingeschränkter Unterstützung für bestimmte SQL-Konstrukte. Aktuelle Einschränkungen finden Sie in der Deklarative Spark-Pipelines Dokumentation.
-
In AWS Glue 6.0 erstellte Iceberg v3-Tabellen können von Athena SQL nicht gelesen werden (Fehler:
Cannot read unsupported version 3). Verwenden Sie Iceberg v2 für die Engine-übergreifende Kompatibilität mit Athena. -
Python 3.13 entfernt mehrere veraltete Module und ändert das Verhalten einiger Standardbibliotheksfunktionen. Informationen zur Kompatibilität finden Sie im Python 3.13-Migrationsleitfaden.
-
AWS SDK for Java 2.x-Kompatibilität mit
--user-jars-first— AWS Glue 6.0 beinhaltet AWS SDK for Java 2.x Version 2.44.6. Wenn Sie den--user-jars-firstJob-Parameter mit einer benutzerdefinierten JAR verwenden, die eine ältere Version des AWS SDK for Java 2.x bündelt, schlägt Ihr Job möglicherweise mit einemjava.lang.NoSuchFieldErroroder einem ähnlichen Fehler fehl. Diese Fehler treten auf, wenn dem in Ihrer benutzerdefinierten JAR enthaltenen SDK Klassen, Felder oder Methoden fehlen, von denen die AWS Glue Laufzeit abhängt. Um dieses Problem zu vermeiden, stellen Sie sicher, dass jedes benutzerdefinierte JAR, das Sie bereitstellen, AWS SDK for Java 2.x Version 2.44.6 oder höher--user-jars-firstverwendet.
Abwärtskompatible Änderungen
Beachten Sie die folgenden grundlegenden Änderungen:
-
EMRFS wurde entfernt. S3A ist das einzige S3-Dateisystem in 6.0. AWS Glue Die
com.amazon.ws.emr.hadoop.fs.EmrFileSystemKlasse ist nicht mehr verfügbar. Jobs, dies3://Pfade verwenden, verwenden S3A automatisch. Wenn Sie zuvor EMRFS-specific Konfigurationen festgelegt haben (z. B.fs.s3.consistent.*), entfernen Sie diese. -
AWS SDK for Java v1 wurde entfernt. Nur AWS SDK v2 (2.44.6) ist verfügbar. Jobs, zu denen
com.amazonaws.services.*Pakete importiert werden, müssensoftware.amazon.awssdk.services.*migriert werden. -
Scala wurde von 2.12 auf 2.13 aktualisiert. Benutzerdefinierte JARs, die für Scala 2.12 kompiliert wurden, funktionieren nicht. Kompilieren Sie erneut gegen Scala 2.13.17. Wichtigste Änderungen:
JavaConversionsentfernt (verwendenCollectionConverters),MutableListentfernt (verwendenListBuffer), parallel Sammlungen erfordern einen separaten Import. -
Änderungen an der Spark 4.1-API:
SQLContextentfernt —SparkSessiondirekt verwenden.Der ANSI-Modus ist standardmäßig aktiviert — implizite Typkonvertierungen und Überläufe verhalten sich unterschiedlich.
Mehrere veraltete APIs wurden entfernt. Weitere Informationen finden Sie im Spark 4.1 Migration Guide
auf der Apache Spark-Website.
-
CreateSession API-Validierung — Zusätzliche Validierung der Sitzungsparameter für interaktive Sitzungen. Ungültige Konfigurationen, die zuvor stillschweigend akzeptiert wurden, geben jetzt möglicherweise Fehler zurück.
-
getResolvedOptionsVerhaltensänderung — Der Abgleich von Argumentpräfixen ist standardmäßig deaktiviert (allow_abbrev=False). Verwenden Sie den vollständigen Argumentnamen oder übergebenallow_abbrev=TrueSie angetResolvedOptions(), um das alte Verhalten wiederherzustellen.
Aktionen, zu denen migriert werden soll AWS Glue 6.0
Ändern Sie bei vorhandenen Aufträgen die Glue version von der vorherigen Version auf Glue 6.0 in der Auftragskonfiguration.
-
Wählen Sie in AWS Glue Studio
Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3inGlue version. -
Wählen Sie in der API
6.0imGlueVersion-Parameter in der UpdateJob-API-Operation aus.
Wählen Sie für neue Aufträge Glue 6.0 aus, wenn Sie Aufträge erstellen.
-
Wählen Sie in der Konsole
Spark 4.1.1, Python 3 (Glue Version 6.0) or Spark 4.1.1, Scala 2 (Glue Version 6.0)in derGlue versionaus. -
Wählen Sie in AWS Glue Studio
Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3inGlue version. -
Wählen Sie in der API
6.0imGlueVersion-Parameter in der CreateJob-API-Operation aus.
Um Ihnen bei der Migration Ihrer Jobs zu helfen, können Sie Generative KI-Upgrades verwendenApache Spark, um Ihre AWS Glue ETL-Jobs von älteren AWS Glue Versionen (2.0 und höher) auf die neueste AWS Glue Version zu aktualisieren.
Hinweis
Sie können den Spark Troubleshooting Agent verwenden, um Fehler bei Ihren AWS Glue ETL-Jobs zu beheben.
Checkliste für die Migration
Überprüfen Sie diese Checkliste für die Migration:
-
[Scala] Kompilieren Sie benutzerdefinierte JARs erneut mit Scala 2.13.17. Ersetzen Sie
JavaConversionsdurchCollectionConverters. -
[Python] Aktualisiere den Code für Python 3.13-Kompatibilität. Entfernen Sie die Verwendung veralteter Module (z. B.,
imp,cgi).cgitb -
[Python] Aktualisieren Sie die Boto3-Referenzen von 1.40 auf 1.42.
-
[Spark SQL] Überprüfen Sie Abfragen auf Auswirkungen auf den ANSI-Modus.
spark.sql.ansi.enabled=falseBei Bedarf hinzufügen. -
[SDK] Ersetzen Sie alle AWS SDK v1-Importe (
com.amazonaws.*) durch SDK v2 (software.amazon.awssdk.*). -
[S3] EMRFS-specific Konfigurationen entfernen. S3A ist jetzt der Standard- und einzige S3-Anschluss.
-
[Abhängigkeiten] Update
--extra-jarsauf Versionen, die für Scala 2.13 und Spark 4.1 kompiliert wurden.
Migration von AWS Glue 5.1 bis AWS Glue 6.0
Alle bestehenden Jobparameter und Hauptfunktionen, die in AWS Glue 5.1 vorhanden sind, werden auch in AWS Glue 6.0 verfügbar sein. Beachten Sie die folgenden Änderungen bei der Migration:
-
S3-Dateisystem: EMRFS ist nicht mehr verfügbar. S3A ist der einzige S3-Anschluss. Wenn Sie es zuvor eingestellt haben
spark.hadoop.fs.s3a.endpoint.region, verwenden Sie es weiterhin. Falls nicht festgelegt, stellen Sie sicher, dass Ihr VPC-Endpunkt oder Ihre Netzwerkkonfiguration es S3A ermöglicht, die richtige Region aufzulösen. -
Scala-Binärkompatibilität: AWS Glue 6.0 verwendet Scala 2.13. Alle mit Scala
--extra-jars2.12 kompilierten Dateien schlagen mit oder fehl.NoSuchMethodErrorClassNotFoundExceptionKompilieren Sie alle benutzerdefinierten JARs neu. Scala/Java -
Verhaltensänderungen bei Spark SQL:
Der ANSI-Modus ist standardmäßig aktiviert. Ein Ganzzahlüberlauf, ungültige Umwandlungen und außerhalb der Grenzen des Array-Indexes lösen Ausnahmen aus, anstatt NULL zurückzugeben.
spark.sql.legacy.timeParserPolicyStandard geändert. Date/timeDas Parsen könnte sich anders verhalten.Implizite Konvertierungen von Zeichenketten in Zahlen in SQL können im ANSI-Modus fehlschlagen.
-
Python-Version: Python 3.13 ist die Laufzeit. Die
--additional-python-modulesFunktion funktioniert weiterhin. Erwägen Sie eine Migration zu, um die--python-virtual-envvollständige Abhängigkeitskontrolle zu erhalten. Die Schritte zur Migration finden Sie unterVerwenden von virtuellen Python-Umgebungen mit AWS Glue. -
AWS SDK: Nur SDK v2 ist verfügbar. Wenn Ihre Skripte boto3 (Python) verwenden, ist keine Änderung erforderlich — boto3 funktioniert weiterhin. Für Scala/Java Jobs, die das AWS SDK direkt verwenden, migrieren Sie zu v2-APIs.
Weitere Informationen finden Sie in der Dokumentation zur Spark-Migration:
-
Migrationshandbuch: Spark Core
auf der Apache Spark-Website -
Migrationshandbuch: SQL, Datasets und DataFrame
auf der Apache Spark-Website -
Migrationshandbuch: Strukturiertes Streaming
auf der Apache Spark-Website -
Aktualisierung PySpark
auf der Apache Spark-Website
Von einer älteren Version migrieren AWS Glue Versionen zu AWS Glue 6.0
Gehen Sie wie folgt vor, um von einer älteren AWS Glue Version auf AWS Glue 6.0 zu migrieren:
-
Informationen zu Migrationsschritten im Zusammenhang mit AWS Glue 5.0 auf AWS Glue 5.1 finden Sie unterMigration von AWS Glue 5,0 bis AWS Glue 5.1.
-
Informationen zu Migrationsschritten im Zusammenhang mit AWS Glue 4.0 auf AWS Glue 5.0 finden Sie unterMigration von AWS Glue 4.0 bis AWS Glue 5.0.
-
Informationen zu Migrationsschritten im Zusammenhang mit AWS Glue 3.0 auf AWS Glue 5.0 finden Sie unterMigration von AWS Glue 3.0 bis AWS Glue 5.0.
-
Informationen zu Migrationsschritten im Zusammenhang mit AWS Glue 2.0 auf AWS Glue 5.0 finden Sie unterMigration von AWS Glue 2,0 bis AWS Glue 5.0.
-
Informationen zum letzten Migrationsschritt finden Sie unterMigration von AWS Glue 5.1 bis AWS Glue 6.0.
Migration von Konnektoren und JDBC-Treibern für AWS Glue 6.0
Die aktualisierten Versionen von JDBC- und Data-Lake-Konnektoren finden Sie unter:
Die folgenden Änderungen gelten für die OTF-Versionsupgrades, die in Version 6.0 beschrieben Anhang D: Verbesserungen des Open-Table-Formats sind. AWS Glue
Apache Iceberg
Beachten Sie folgende Änderungen:
Iceberg wurde auf Version 1.11.0 aktualisiert und bietet volle Unterstützung für die Spezifikationen von Apache Iceberg Version 3.
VARIANT-Datentyp mit Varianten-Shredding für optimierte halbstrukturierte Datenabfragen.
Nanosecond-precision Zeitstempel.
Geodatentypen (Geometrie und Geografie).
Die folgenden Iceberg-Funktionen werden bereits seit AWS Glue 5.1 von AWS Glue ETL unterstützt: Löschvektoren (Zusammenführung beim Lesen mithilfe von Roaring Bitmaps, die in Puffin-Dateien gespeichert sind) und Nachverfolgung der Zeilenabstammung anhand von Metadaten. first-row-id
Apache Hudi
Beachten Sie folgende Änderungen:
Hudi wurde auf Version 1.1.1 aktualisiert.
Fortgesetzte Unterstützung für FTA-Lese- und Schreibzugriff auf AWS Lake Formation registrierte Tabellen.
Delta Lake
Beachten Sie folgende Änderungen:
Delta Lake wurde auf 4.2.0 aktualisiert.
Fortgesetzte Unterstützung für FTA-Lese- und Schreibzugriff auf AWS Lake Formation registrierte Tabellen.
Bekannte Beschränkungen
Die folgenden Einschränkungen gelten für AWS Glue 6.0:
-
Die systemeigenen Tabellenverschlüsselungsschlüssel von Iceberg werden nicht unterstützt.
-
Iceberg-Transformationen mit mehreren Argumenten werden nicht unterstützt.
-
Die neuen Iceberg v3-Datentypen werden nur mit Spark unterstützt. DataFrames Diese Funktionen funktionieren nicht mit DynamicFrames.
-
Visual ETL in AWS Glue Studio unterstützt die neuen Iceberg v3-Datentypen nicht. Um diese neuen Funktionen zu verwenden, verwenden Sie die AWS Glue API, das SDK oder AWS CLI. Alternativ können Sie Visual ETL in Amazon SageMaker Unified Studio verwenden, unterstützt von AWS Glue.
-
Fine-grained Die Zugriffskontrolle (FGAC) wird mit VARIANT-Spalten nicht unterstützt.
-
Mit erstellte Iceberg-Tabellen
'format-version'='3'können von Athena SQL nicht gelesen werden (Fehler:Cannot read unsupported version 3). Verwenden Sie Iceberg v2 für die Engine-übergreifende Kompatibilität mit Athena.
Anhang A: Nennenswerte Aktualisierungen von Abhängigkeiten
Im Folgenden sind Abhängigkeits-Upgrades aufgeführt:
| -Abhängigkeit | Version in 6.0 AWS Glue | Version in AWS Glue 5.1 | Version in AWS Glue 5.0 | Version in AWS Glue 4.0 |
|---|---|---|---|---|
| Java | 17 | 17 | 17 | 8 |
| Spark | 4.1.1 | 3.5.6 | 3.5.4 | 3.3.0-amzn-1 |
| Hadoop | 3.4.2 | 3.4.1 | 3.4.1 | 3.3.3-amzn-0 |
| Scala | 2.13,17 | 2.12,18 | 2.12,18 | 2.12 |
| Jackson | 2.20.0 | 2.15,2 | 2.15,2 | 2.12 |
| Hive | 2.3.10-amzn-1 | 2.3.9-amzn-4 | 2.3.9-amzn-4 | 2.3.9-amzn-2 |
| Arrow | 18.3,0 | 12.0.1 | 12.0.1 | 7.0.0 |
| AWS Glue Datenkatalog-Client | 4.11.0 | 4.9.0 | 4.5.0 | 3.7.0 |
| AWS SDK for Java | 2.44.6 (nur v2) | 2.35.5 | 2,29,52 | 1.12 |
| Python | 3.13 | 3,11 | 3,11 | 3,10 |
| Boto3 | 1,42,84 | 1,40,61 | 1,34,131 | 1,26 |
| JSON4s | 3.7.0-M11 | 3.7.0-M11 | 3.7.0-M11 | 3.7.0-M11 |
| EMR-DynamoDB-Connector | 6.1.0 | 5.7.0 | 5.6.0 | 4.16.0 |
| Netty | 4.2.7 | N/A | N/A | N/A |
| Parquet | 1.16.0 | N/A | N/A | N/A |
| NumPy | 2.4.4 | N/A | N/A | N/A |
| Pandas | 2.3.3 | N/A | N/A | N/A |
Anhang B: Aktualisierungen von JDBC-Treibern
Die folgenden JDBC-Treiber-Upgrades sind:
| Treiber | JDBC-Treiberversion in 6.0 AWS Glue | JDBC-Treiberversion in 5.1 AWS Glue | JDBC-Treiberversion in 5.0 AWS Glue |
|---|---|---|---|
| MySQL | 8.0.33 | 8,0,33 | 8,0,33 |
| Microsoft SQL Server | 10.2,0 | 10.2.0 | 10.2.0 |
| Oracle-Datenbanken | 23,4,0,24,05 | 23,3,0,23,09 | 23.3.0.23,09 |
| PostgreSQL | 42,7,3 | 42,7,3 | 42,7,3 |
| Amazon Redshift | Rotshift-jdbc42-2.2.7 |
redshift-jdbc42-2.1.0.29 |
redshift-jdbc42-2.1.0.29 |
| MariaDB | 3.5.7 | N/A | N/A |
Anhang C: Konnektor-Upgrades
Im Folgenden sind Konnektor-Upgrades aufgeführt:
| Konnektor | Version in 6.0 AWS Glue | Version in AWS Glue 5.1 | Version in AWS Glue 5.0 |
|---|---|---|---|
| Spark Redshift | 6.7.0 | 6.4.2 | 6.4.0 |
| Spark SQL Kinesis | 2.1.0 | N/A | N/A |
| MongoDB | 11.0.1 | 10.3.0 | 10.3.0 |
| Snowflake | 3.1.8 | 3.1.1 | 3.0.0 |
| OpenSearch | 2.0.0 | 1.2.0 | 1.2.0 |
| EMR-DynamoDB-Connector | 6.1.0 | 5.7.0 | 5.6.0 |
Anhang D: Verbesserungen des Open-Table-Formats
Im Folgenden finden Sie die Verbesserungen des Open-Table-Formats:
| OTF | Version in 6.0 AWS Glue | Version in AWS Glue 5.1 | Version in AWS Glue 5.0 | Version in AWS Glue 4.0 |
|---|---|---|---|---|
| Hudi | 1.1.1 | 1.0.2 | 0.15.0 | 0.12.1 |
| Delta Lake | 4.2.0 | 3.3.2 | 3.3.0 | 2.1.0 |
| Iceberg | 1.11.0 | 1.10.0 | 1.7.1 | 1.0.0 |