Migration AWS Glue für Spark-Jobs auf AWS Glue Version 4.0 - AWS Glue

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.

Migration AWS Glue für Spark-Jobs auf AWS Glue Version 4.0

In diesem Thema werden die Änderungen zwischen den AWS Glue Versionen 0.9, 1.0, 2.0 und 3.0 beschrieben, die es Ihnen ermöglichen, Ihre Spark-Anwendungen und ETL-Jobs auf AWS Glue 4.0 zu migrieren. Außerdem werden die Funktionen von AWS Glue 4.0 und die Vorteile ihrer Verwendung beschrieben.

Um diese Funktion mit Ihren AWS Glue ETL-Jobs zu verwenden, wählen Sie 4.0 Glue version bei der Erstellung Ihrer Jobs die Option.

Neue unterstützte Features

In diesem Abschnitt werden die neuen Funktionen und Vorteile von AWS Glue Version 4.0 beschrieben.

  • Es basiert auf Apache Spark 3.3.0, enthält jedoch Optimierungen in AWS Glue und Amazon EMR, wie z. B. adaptive Abfrageläufe, vektorisierte Lesegeräte und optimierte Shuffles und Partitionszusammenführung.

  • Aktualisierte JDBC-Treiber für alle AWS Glue nativen Quellen, einschließlich MySQL, Microsoft SQL Server, Oracle, PostgreSQL, MongoDB, und aktualisierte Spark-Bibliotheken und -Abhängigkeiten, die mit Spark 3.3.0 eingeführt wurden.

  • Aktualisiert mit einem neuen Amazon-Redshift-Konnektor und JDBC-Treiber.

  • Optimierter Amazon-S3-Zugriff mit aktualisiertem EMR File System (EMRFS, EMR-Dateisystem) und standardmäßig aktivierten Amazon-S3-optimierten Ausgabe-Committern.

  • Optimierter Data-Catalog-Zugriff mit Partitionsindizes, Pushdown-Prädikaten, Partitionsauflistung und einem aktualisierten Hive-Metastore-Client.

  • Integration mit Lake Formation für kontrollierte Katalogtabellen mit Filterung auf Zellenebene und Data-Lake-Transaktionen.

  • Verringerte Startlatenz zur Verbesserung der Gesamtzeiten für die Auftragserfüllung und Interaktivität.

  • Spark-Aufträge werden in 1-Sekunden-Schritten mit einer zehnmal geringeren Mindestabrechnungsdauer abgerechnet – von mindestens 10 Minuten bis zu mindestens 1 Minute.

  • Native Unterstützung für Open-Data-Lake-Frameworks mit Apache Hudi, Delta Lake und Apache Iceberg.

  • Native Unterstützung für das Amazon-S3-basierte Cloud-Shuffle-Speicher-Plugin (ein Apache-Spark-Plugin) zur Verwendung von Amazon S3 für Shuffling und elastische Speicherkapazität.

Wesentliche Verbesserungen von Spark 3.1.1 zu Spark 3.3.0

Berücksichtigen Sie die folgenden Verbesserungen:

Weitere nennenswerte Änderungen

Beachten Sie folgende Änderungen:

  • Abwärtskompatible Änderungen

    • Löschen Sie Verweise auf die Python-3.6-Unterstützung in Docs und Python/docs (SPARK-36977).

    • Entfernen Sie den benannten Tuple-Hack, indem Sie das integrierte Pickle durch Cloudpickle ersetzen (SPARK-32079).

    • Erhöhen Sie die Mindestversion von Pandas auf 1.0.5 (SPARK-37465).

Aktionen zur Migration zu AWS Glue  4.0

Ändern Sie bei vorhandenen Aufträgen die Glue version von der vorherigen Version auf Glue 4.0 in der Auftragskonfiguration.

  • AWS Glue Wählen Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3 Glue version Sie in Studio in.

  • Wählen Sie in der API 4.0 im GlueVersion-Parameter in der UpdateJob-API-Operation aus.

Wählen Sie für neue Aufträge Glue 4.0 aus, wenn Sie Aufträge erstellen.

  • Wählen Sie in der Konsole Spark 3.3, Python 3 (Glue Version 4.0) or Spark 3.3, Scala 2 (Glue Version 3.0) in der Glue version aus.

  • Wählen Sie in AWS Glue Studio Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3 inGlue version.

  • Wählen Sie in der API 4.0 im GlueVersion-Parameter in der CreateJob-API-Operation aus.

Um Spark-Ereignisprotokolle von AWS Glue 4.0 aus Version AWS Glue 2.0 oder früher anzuzeigen, starten Sie einen aktualisierten Spark-Verlaufsserver für AWS Glue 4.0 mithilfe von AWS CloudFormation oder Docker.

Checkliste für die Migration

  • Sind die externen Python-Bibliotheken Ihres Auftrags von Python 2.7/3.6 abhängig?

    • Aktualisieren Sie die abhängigen Bibliotheken von Python 2.7/3.6 auf Python 3.10, da Spark 3.3.0 die Unterstützung für Python 2.7 und 3.6 vollständig entfernt hat.

Migration von AWS Glue 3.0 auf 4.0 AWS Glue

Beachten Sie die folgenden Änderungen bei der Migration:

  • Alle bestehenden Jobparameter und Hauptfunktionen, die in AWS Glue 3.0 vorhanden sind, werden auch in AWS Glue 4.0 verfügbar sein.

  • AWS Glue 3.0 verwendet Amazon EMR-optimiertes Spark 3.1.1 und AWS Glue 4.0 verwendet Amazon EMR-optimiertes Spark 3.3.0.

    Einige Spark-Änderungen allein erfordern möglicherweise eine Überarbeitung Ihrer Skripts, um sicherzustellen, dass auf entfernte Features nicht verwiesen wird.

  • AWS Glue 4.0 beinhaltet auch ein Update für EMRFS und Hadoop. Informationen über die jeweilige Version finden Sie unter Anhang A: Nennenswerte Aktualisierungen von Abhängigkeiten.

  • Das in ETL-Jobs bereitgestellte AWS SDK wurde jetzt von 1.11 auf 1.12 aktualisiert.

  • Alle Python-Aufträge werden Python-Version 3.10 verwenden. Zuvor wurde Python 3.7 in AWS Glue 3.0 verwendet.

    Infolgedessen wurden einige mitgelieferte AWS Glue Pymodule out-of-the-box aktualisiert.

  • Log4j wurde auf Log4j2 aktualisiert.

    • Informationen zum Log4j2-Migrationspfad finden Sie in der Log4j-Dokumentation.

    • Sie müssen stattdessen jede benutzerdefinierte log4j.properties-Datei in eine log4j2.properties-Datei mit den entsprechenden log4j2-Eigenschaften umbenennen.

  • Informationen zur Migration bestimmter Konnektoren finden Sie unter Migration von Connector und JDBC-Treibern für 4.0 AWS Glue.

  • Das AWS Encryption SDK wurde von 1.x auf 2.x aktualisiert. AWS Glue Jobs, die AWS Glue Sicherheitskonfigurationen verwenden, und Jobs, die von der in Runtime bereitgestellten AWS Encryption SDK-Abhängigkeit abhängig sind, sind betroffen. Weitere Informationen finden Sie in den Anweisungen zur AWS Glue Jobmigration.

    Sie können einen AWS Glue 2.0/3.0-Job problemlos auf einen AWS Glue 4.0-Job aktualisieren, da AWS Glue 2.0/3.0 bereits die Bridge-Version des AWS Encryption SDK enthält.

Weitere Informationen finden Sie in der Dokumentation zur Spark-Migration:

Migration von 2.0 auf 4.0 AWS GlueAWS Glue

Beachten Sie die folgenden Änderungen bei der Migration:

Anmerkung

Informationen zu Migrationsschritten im Zusammenhang mit AWS Glue 3.0 finden Sie unterMigration von AWS Glue 3.0 auf 4.0 AWS Glue.

  • Alle bestehenden Jobparameter und Hauptfunktionen, die es in AWS Glue 2.0 gibt, werden auch in AWS Glue 4.0 verfügbar sein.

  • Der EMRFS S3-optimierte Committer zum Schreiben von Parquet-Daten in Amazon S3 ist seit 3.0 standardmäßig aktiviert. AWS Glue Sie können ihn jedoch nach wie vor deaktivieren, indem Sie --enable-s3-parquet-optimized-committer auf false einstellen.

  • AWS Glue 2.0 verwendet Open-Source-Spark 2.4 und AWS Glue 4.0 verwendet Amazon EMR-optimiertes Spark 3.3.0.

    • Einige Spark-Änderungen allein erfordern möglicherweise eine Überarbeitung Ihrer Skripts, um sicherzustellen, dass auf entfernte Features nicht verwiesen wird.

    • Zum Beispiel aktiviert Spark 3.3.0 UDFs Scala-untyped nicht, aber Spark 2.4 erlaubt sie.

  • Das in ETL-Jobs bereitgestellte AWS SDK wurde jetzt von 1.11 auf 1.12 aktualisiert.

  • AWS Glue 4.0 beinhaltet außerdem ein Update für EMRFS, aktualisierte JDBC-Treiber und zusätzliche Optimierungen für Spark selbst, bereitgestellt von. AWS Glue

  • Scala wurde von 2.11 auf 2.12 aktualisiert und Scala 2.12 ist nicht abwärtskompatibel mit Scala 2.11.

  • Python 3.10 ist die Standardversion, die für Python-Skripte verwendet wird, da AWS Glue  2.0 nur Python 3.7 und 2.7 verwendet hat.

    • Python 2.7 wird mit Spark 3.3.0 nicht unterstützt. Jeder Job, der Python 2 in der Jobkonfiguration anfordert, schlägt mit einem fehl IllegalArgumentException.

    • Ein neuer Mechanismus zur Installation zusätzlicher Python-Module ist seit AWS Glue 2.0 verfügbar.

  • Mehrere Abhängigkeitsaktualisierungen, hervorgehoben in Anhang A: Nennenswerte Aktualisierungen von Abhängigkeiten.

  • Alle zusätzlichen JAR-Dateien, die in bestehenden AWS Glue 2.0-Jobs bereitgestellt werden, können zu widersprüchlichen Abhängigkeiten führen, da es in 4.0 von 2.0 Upgrades in mehreren Abhängigkeiten gab. Mit dem Job-Parameter können Sie Klassenpfadkonflikte in AWS Glue 4.0 vermeiden. --user-jars-first AWS Glue

  • AWS Glue 4.0 verwendet Spark 3.3. Ab Spark 3.1 gab es eine Änderung im Verhalten von loading/saving of timestamps from/to Parquet-Dateien. Weitere Informationen finden Sie unter Upgrade von Spark SQL 3.0 auf 3.1.

    Wir empfehlen, beim Lesen/Schreiben von Parquet-Daten, die Zeitstempelspalten enthalten, die folgenden Parameter einzustellen. Durch die Einstellung dieser Parameter kann das Problem mit der Kalenderinkompatibilität behoben werden, das beim Upgrade von Spark 2 auf Spark 3 sowohl für den AWS Glue Dynamic Frame als auch für den Spark Data Frame auftritt. Verwenden Sie die Option CORRECTED, um den Datetime-Wert so zu lesen, wie er ist, und die LEGACY-Option, um die Datetime-Werte im Hinblick auf die Kalenderdifferenz während des Lesens neu zu basieren.

    - Key: --conf - Value: spark.sql.legacy.parquet.int96RebaseModeInRead=[CORRECTED|LEGACY] --conf spark.sql.legacy.parquet.int96RebaseModeInWrite=[CORRECTED|LEGACY] --conf spark.sql.legacy.parquet.datetimeRebaseModeInRead=[CORRECTED|LEGACY]
  • Informationen zur Migration bestimmter Konnektoren finden Sie unter Migration von Connector und JDBC-Treibern für 4.0 AWS Glue.

  • Das AWS Encryption SDK wurde von 1.x auf 2.x aktualisiert. AWS Glue Jobs, die AWS Glue Sicherheitskonfigurationen verwenden, und Jobs, die von der in Runtime bereitgestellten AWS Encryption SDK-Abhängigkeit abhängig sind, sind betroffen. Sehen Sie sich diese Anweisungen zur AWS Glue Job-Migration an:

    • Sie können einen AWS Glue 2.0-Job problemlos auf einen AWS Glue 4.0-Job aktualisieren, da AWS Glue 2.0 bereits die Bridge-Version des AWS Encryption SDK enthält.

Weitere Informationen finden Sie in der Dokumentation zur Spark-Migration:

Migration von AWS Glue 1.0 auf 4.0 AWS Glue

Beachten Sie die folgenden Änderungen bei der Migration:

  • AWS Glue 1.0 verwendet Open-Source-Spark 2.4 und AWS Glue 4.0 verwendet Amazon EMR-optimiertes Spark 3.3.0.

    • Einige Spark-Änderungen allein erfordern möglicherweise eine Überarbeitung Ihrer Skripts, um sicherzustellen, dass auf entfernte Features nicht verwiesen wird.

    • Zum Beispiel aktiviert Spark 3.3.0 UDFs Scala-untyped nicht, aber Spark 2.4 erlaubt sie.

  • Alle Jobs in AWS Glue 4.0 werden mit deutlich verbesserten Startzeiten ausgeführt. Spark-Aufträge werden in 1-Sekunden-Schritten mit einer 10-fach niedrigeren Mindestabrechnungsdauer in Rechnung gestellt, da die Startlatenz von maximal 10 Minuten zu maximal 1 Minute reicht.

  • Das Protokollierungsverhalten hat sich in AWS Glue Version 4.0 erheblich geändert. Für Spark 3.3.0 ist die Mindestanforderung Log4j2 erforderlich.

  • Mehrere Abhängigkeitsaktualisierungen, hervorgehoben im Anhang.

  • Scala wurde von 2.11 auf 2.12 aktualisiert und Scala 2.12 ist nicht abwärtskompatibel mit Scala 2.11.

  • Python 3.10 ist auch die Standardversion für Python-Skripte, da AWS Glue  0.9 nur Python 2 verwendet hat.

    Python 2.7 wird mit Spark 3.3.0 nicht unterstützt. Jeder Job, der Python 2 in der Jobkonfiguration anfordert, schlägt mit einem fehl IllegalArgumentException.

  • Ein neuer Mechanismus zur Installation zusätzlicher Python-Module über Pip ist seit AWS Glue 2.0 verfügbar. Weitere Informationen finden Sie unter Installieren zusätzlicher Python-Module mit Pip in AWS Glue  2.0+.

  • AWS Glue 4.0 läuft nicht auf Apache YARN, daher gelten die YARN-Einstellungen nicht.

  • AWS Glue 4.0 hat kein Hadoop Distributed File System (HDFS).

  • Alle zusätzlichen JAR-Dateien, die in bestehenden AWS Glue 1.0-Jobs bereitgestellt werden, können zu widersprüchlichen Abhängigkeiten führen, da es in 4.0 Upgrades von 1.0 in mehreren Abhängigkeiten gab. Wir aktivieren AWS Glue 4.0 standardmäßig mit dem --user-jars-first AWS Glue Job-Parameter, um dieses Problem zu vermeiden.

  • AWS Glue 4.0 unterstützt Auto Scaling. Daher ist die ExecutorAllocationManager Metrik verfügbar, wenn Auto Scaling aktiviert ist.

  • In Jobs der AWS Glue Version 4.0 geben Sie die Anzahl der Worker und den Workertyp an, aber keinenmaxCapacity.

  • AWS Glue 4.0 unterstützt noch keine Transformationen für maschinelles Lernen.

  • Informationen zur Migration bestimmter Konnektoren finden Sie unter Migration von Connector und JDBC-Treibern für 4.0 AWS Glue.

  • Das AWS Encryption SDK wurde von 1.x auf 2.x aktualisiert. AWS Glue Jobs, die AWS Glue Sicherheitskonfigurationen verwenden, und Jobs, die von der in Runtime bereitgestellten AWS Encryption SDK-Abhängigkeit abhängig sind, sind betroffen. Informationen zur AWS Glue Job-Migration finden Sie in diesen Anweisungen.

    • Sie können einen AWS Glue 0.9/1.0-Job nicht direkt auf einen AWS Glue 4.0-Job migrieren. Dies liegt daran, dass das Encryption SDK bei einem direkten Upgrade auf Version 2.x oder höher und bei sofortiger Aktivierung aller neuen Funktionen nicht in der Lage sein wird, den in früheren Versionen des AWS Encryption SDK verschlüsselten Chiffretext zu entschlüsseln. AWS

    • Für ein sicheres Upgrade empfehlen wir zunächst, zu einem AWS Glue 2.0/3.0-Job zu migrieren, der die Bridge-Version des Encryption SDK enthält. AWS Führen Sie den Job einmal aus, um die AWS Encryption SDK Bridge-Version zu verwenden.

    • Nach Abschluss können Sie den AWS Glue 2.0/3.0-Job sicher auf AWS Glue 4.0 migrieren.

Weitere Informationen finden Sie in der Dokumentation zur Spark-Migration:

Migration von AWS Glue 0.9 auf 4.0 AWS Glue

Beachten Sie die folgenden Änderungen bei der Migration:

  • AWS Glue 0.9 verwendet Open-Source-Spark 2.2.1 und AWS Glue 4.0 verwendet Amazon EMR-optimiertes Spark 3.3.0.

    • Einige Spark-Änderungen allein erfordern möglicherweise eine Überarbeitung Ihrer Skripts, um sicherzustellen, dass auf entfernte Features nicht verwiesen wird.

    • Zum Beispiel aktiviert Spark 3.3.0 UDFs Scala-untyped nicht, aber Spark 2.2 erlaubt sie.

  • Alle Jobs in AWS Glue 4.0 werden mit deutlich verbesserten Startzeiten ausgeführt. Spark-Aufträge werden in 1-Sekunden-Schritten mit einer 10-mal geringeren Mindestabrechnungsdauer abgerechnet, da die Startlatenz von maximal 10 Minuten auf maximal 1 Minute sinkt.

  • Das Protokollierungsverhalten hat sich seit AWS Glue 4.0 erheblich geändert. Für Spark 3.3.0 ist, wie hier erwähnt, eine Mindestanforderung von Log4j2 erforderlich (https://spark.apache.org/docs/latest/core-migration-guide.html# -32-to-33). upgrading-from-core

  • Mehrere Abhängigkeitsaktualisierungen, hervorgehoben im Anhang.

  • Scala wurde von 2.11 auf 2.12 aktualisiert und Scala 2.12 ist nicht abwärtskompatibel mit Scala 2.11.

  • Python 3.10 ist auch die Standardversion für Python-Skripte, da AWS Glue  0.9 nur Python 2 verwendet hat.

    • Python 2.7 wird mit Spark 3.3.0 nicht unterstützt. Jeder Job, der Python 2 in der Jobkonfiguration anfordert, schlägt mit einem fehl IllegalArgumentException.

    • Ein neuer Mechanismus zum Installieren zusätzlicher Python-Module über Pip ist verfügbar.

  • AWS Glue 4.0 läuft nicht auf Apache YARN, daher gelten die YARN-Einstellungen nicht.

  • AWS Glue 4.0 hat kein Hadoop Distributed File System (HDFS).

  • Alle zusätzlichen JAR-Dateien, die in bestehenden AWS Glue 0.9-Aufträgen bereitgestellt werden, können zu widersprüchlichen Abhängigkeiten führen, da es in 3.0 Upgrades von 0.9 in mehreren Abhängigkeiten gab. Mit dem Job-Parameter können Sie Klassenpfadkonflikte in AWS Glue 3.0 vermeiden. --user-jars-first AWS Glue

  • AWS Glue 4.0 unterstützt Auto Scaling. Daher ist die ExecutorAllocationManager Metrik verfügbar, wenn Auto Scaling aktiviert ist.

  • In Jobs der AWS Glue Version 4.0 geben Sie die Anzahl der Worker und den Workertyp an, aber keinenmaxCapacity.

  • AWS Glue 4.0 unterstützt noch keine Transformationen für maschinelles Lernen.

  • Informationen zur Migration bestimmter Konnektoren finden Sie unter Migration von Connector und JDBC-Treibern für 4.0 AWS Glue.

  • Das AWS Encryption SDK wurde von 1.x auf 2.x aktualisiert. AWS Glue Jobs, die AWS Glue Sicherheitskonfigurationen verwenden, und Jobs, die von der in Runtime bereitgestellten AWS Encryption SDK-Abhängigkeit abhängig sind, sind betroffen. Informationen zur AWS Glue Job-Migration finden Sie in diesen Anweisungen.

    • Sie können einen AWS Glue 0.9/1.0-Job nicht direkt auf einen AWS Glue 4.0-Job migrieren. Dies liegt daran, dass das Encryption SDK bei einem direkten Upgrade auf Version 2.x oder höher und bei sofortiger Aktivierung aller neuen Funktionen nicht in der Lage sein wird, den in früheren Versionen des AWS Encryption SDK verschlüsselten Chiffretext zu entschlüsseln. AWS

    • Für ein sicheres Upgrade empfehlen wir zunächst, zu einem AWS Glue 2.0/3.0-Job zu migrieren, der die Bridge-Version des Encryption SDK enthält. AWS Führen Sie den Job einmal aus, um die AWS Encryption SDK Bridge-Version zu verwenden.

    • Nach Abschluss können Sie den AWS Glue 2.0/3.0-Job sicher auf AWS Glue 4.0 migrieren.

Weitere Informationen finden Sie in der Dokumentation zur Spark-Migration:

Migration von Connector und JDBC-Treibern für 4.0 AWS Glue

Die aktualisierten Versionen von JDBC- und Data-Lake-Konnektoren finden Sie unter:

Hudi

  • Verbesserungen der Spark-SQL-Unterstützung:

    • Durch den Call Procedure-Befehl wird Unterstützung für Upgrade, Downgrade, Bootstrap, Bereinigung und Reparatur hinzugefügt. Die Create/Drop/Show/Refresh Index-Syntax ist in Spark SQL möglich.

    • Eine Leistungslücke zwischen der Nutzung über Spark und über DataSource Spark-SQL wurde geschlossen. Datenquellenschreibvorgänge waren in der Vergangenheit schneller als SQL.

    • Alle integrierten Schlüsselgeneratoren implementieren leistungsfähigere Spark-spezifische API-Operationen.

    • Die UDF-Transformation im insert Massenvorgang wurde durch RDD-Transformationen ersetzt, um die Nutzungskosten zu senken. SerDe

    • Spark SQL mit Hudi erfordert die Angabe eines primaryKey durch tblproperites oder Optionen in der SQL-Anweisung. Für Aktualisierungs- und Löschvorgänge ist das preCombineField ebenfalls erforderlich.

  • Jede Hudi-Tabelle, die vor Version 0.10.0 ohne ein primaryKey erstellt wurde, muss seit Version 0.10.0 mit einem primaryKey-Feld neu erstellt werden.

PostgreSQL

  • Verschiedene Sicherheitslücken (CVEs) wurden behoben.

  • Java 8 wird nativ unterstützt.

  • Wenn der Auftrag mit Ausnahme von Byte-Arrays Arrays von Arrays verwendet, kann dieses Szenario als mehrdimensionale Arrays behandelt werden.

MongoDB

  • Der aktuelle MongoDB-Konnektor unterstützt Spark-Version 3.1 oder höher und MongoDB-Version 4.0 oder höher.

  • Aufgrund des Konnektor-Upgrades haben sich einige Eigenschaftsnamen geändert. Beispielsweise wurde der URI-Eigenschaftsname in connection.uri geändert. Weitere Informationen zu den aktuellen Optionen finden Sie im Blog zu MongoDB-Spark-Konnektor.

  • Die Verwendung von MongoDB 4.0, das von Amazon DocumentDB gehostet wird, weist einige funktionale Unterschiede auf. Weitere Informationen enthalten die folgenden Themen:

  • Die Option „Partitionierer“ ist auf ShardedPartitioner, PaginateIntoPartitionsPartitioner, und SinglePartitionPartitioner beschränkt. Es kann die Standardwerte SamplePartitioner und PaginateBySizePartitioner für Amazon DocumentDB nicht verwenden, da der Stage-Operator die MongoDB-API nicht unterstützt. Weitere Informationen finden Sie unter Unterstützte MongoDB APIs, Operationen und Datentypen.

Delta Lake

  • Delta Lake unterstützt jetzt Zeitreisen in SQL zum einfachen Abfragen älterer Daten. Mit diesem Update sind Zeitreisen jetzt sowohl in Spark SQL als auch über die DataFrame API verfügbar. Für die aktuelle Version von TIMESTAMP in SQL wurde Unterstützung hinzugefügt.

  • Spark 3.3 führt Trigger ein. AvailableNowzum Ausführen von Streaming-Abfragen als Äquivalent Trigger.Once zu Batch-Abfragen. Diese Unterstützung ist auch bei Verwendung von Delta-Tabellen als Streaming-Quelle verfügbar.

  • Unterstützung für SHOW COLUMNS, um die Liste der Spalten in einer Tabelle zurückzugeben.

  • Support für DESCRIBE DETAIL in der Scala- und DeltaTable Python-API. Es ruft mithilfe der DeltaTable API oder Spark SQL detaillierte Informationen über eine Delta-Tabelle ab.

  • Unterstützung für die Rückgabe von Vorgangsmetriken aus SQL-Befehlen zum Löschen, Zusammenführen und Aktualisieren. Bisher gaben diese SQL-Befehle einen leeren Wert zurück DataFrame, jetzt geben sie ein DataFrame mit nützlichen Metriken über den ausgeführten Vorgang zurück.

  • Leistungsverbesserungen optimieren:

    • Legen Sie die Konfigurationsoption spark.databricks.delta.optimize.repartition.enabled=true so fest, dass im Befehl Optimieren repartition(1) anstelle von coalesce(1) verwendet wird, um eine bessere Leistung beim Komprimieren vieler kleiner Dateien zu erzielen.

    • Verbesserte Leistung durch Verwendung eines warteschlangenbasierten Ansatzes zur Parallelisierung von Verdichtungsaufträgen.

  • Weitere nennenswerte Änderungen:

Apache Iceberg

  • Es wurden mehrere Leistungsverbesserungen für die Scan-Planung und Spark-Abfragen hinzugefügt.

  • Es wurde ein allgemeiner REST-Katalog-Client hinzugefügt, der änderungsbasierte Commits verwendet, um Commit-Konflikte innerhalb des Services zu lösen.

  • AS OF-Syntax für SQL-Zeitreiseabfragen wird unterstützt.

  • merge-on-readUnterstützung für MERGE- und UPDATE-Abfragen hinzugefügt.

  • Es wurde Unterstützung zum Neuschreiben von Partitionen mit Z-Reihenfolge hinzugefügt.

  • Es wurde eine Spezifikation und Implementierung für Puffin hinzugefügt, ein Format für große Statistik- und Index-Blobs, wie Theta-Skizzen oder Bloom-Filter.

  • Es wurden neue Schnittstellen für die inkrementelle Nutzung von Daten hinzugefügt (sowohl Append- als auch Changelog-Scans).

  • Es wurde Unterstützung für Massenvorgänge und Bereichslesevorgänge für FileIO-Schnittstellen hinzugefügt.

  • Es wurden weitere Metadaten-Tabellen hinzugefügt, um gelöschte Dateien in der Metadaten-Struktur anzuzeigen.

  • Das Verhalten der Ablagetabelle hat sich geändert. In Iceberg 0.13.1 entfernt das Ausführen von DROP TABLE die Tabelle aus dem Katalog und löscht auch den Tabelleninhalt. In Iceberg 1.0.0 entfernt DROP TABLE nur die Tabelle aus dem Katalog. Um den Tabelleninhalt zu löschen, verwenden Sie DROP TABLE PURGE.

  • In Iceberg 1.0.0 sind vektorisierte Parquet-Lesevorgänge standardmäßig aktiviert. Wenn Sie vektorisierte Lesevorgänge deaktivieren möchten, setzen Sie read.parquet.vectorization.enabled auf false.

Oracle

Die Änderungen sind gering.

MySQL

Die Änderungen sind gering.

Amazon Redshift

AWS Glue 4.0 bietet einen neuen Amazon Redshift Redshift-Connector mit einem neuen JDBC-Treiber. Informationen zu den Verbesserungen und zur Migration von früheren AWS Glue Versionen finden Sie unter. Redshift-Verbindungen

Anhang A: Nennenswerte Aktualisierungen von Abhängigkeiten

Im Folgenden sind Abhängigkeits-Upgrades aufgeführt:

-Abhängigkeit Version in AWS Glue 4.0 Version in AWS Glue 3.0 Version in AWS Glue 2.0 Version in AWS Glue 1.0
Spark 3.3.0-amzn-1 3.1.1-amzn-0 2.4.3 2.4.3
Hadoop 3.3.3-amzn-0 3.2.1-amzn-3 2.8.5-amzn-5 2.8.5-amzn-1
Scala 2.12 2.12 2.11 2.11
Jackson 2.13.3 2.10.x 2.7.x 2.7.x
Hive 2.3.9-amzn-2 2.3.7-amzn-4 1.2 1.2
EMRFS 2,54,0 2,46,0 2.38.0 2.30.0
JSON4s 3.7.0-M11 3.6.6 3.5.x 3.5.x
Arrow 7.0.0 2.0.0 0.10.0 0.10.0
AWS Glue Datenkatalog-Client 3.7.0 3.0.0 1.10.0 N/A
Python 3.10 3.7 2.7 und 3.6 2.7 und 3.6
Boto 1,26 1,18 1.12 N/A

Anhang B: Aktualisierungen von JDBC-Treibern

Die folgenden JDBC-Treiber-Upgrades sind:

Treiber JDBC-Treiberversion in früheren Versionen AWS Glue JDBC-Treiberversion in 3.0 AWS Glue JDBC-Treiberversion in 4.0 AWS Glue
MySQL 5.1 8.0.23 8.0.23
Microsoft SQL Server 6.1.0 7.0.0 9.4.0
Oracle-Datenbanken 11.2 21,1 21,7
PostgreSQL 42,10 42,2,18 42,3,6
MongoDB 2.0.0 4.0.0 4.7.2
Amazon Redshift

redshift-jdbc41-1.2.12.1017

redshift-jdbc41-1.2.12.1017

redshift-jdbc42-2.1.0.16

Anhang C: Konnektor-Upgrades

Im Folgenden sind Konnektor-Upgrades aufgeführt:

Treiber Connector-Version in 3.0 AWS Glue Connector-Version in AWS Glue 4.0
MongoDB 3.0.0 10.0.4
Hudi 0.10.1 0.12.1
Delta Lake 1.0.0 2.1.0
Iceberg 0.13.1 1.0.0
DynamoDB 1.11 1.12