

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Migrasi AWS Glue untuk pekerjaan Spark ke versi 4.0 AWS Glue
<a name="migrating-version-40"></a>

Topik ini menjelaskan perubahan antara AWS Glue versi 0.9, 1.0, 2.0, dan 3.0 untuk memungkinkan Anda memigrasikan aplikasi Spark dan pekerjaan ETL ke 4.0. AWS Glue Ini juga menjelaskan fitur di AWS Glue 4.0 dan keuntungan menggunakannya. 

Untuk menggunakan fitur ini dengan pekerjaan AWS Glue ETL Anda, pilih **4.0** `Glue version` saat membuat pekerjaan Anda.

**Topics**
+ [Fitur baru yang didukung](#migrating-version-40-features)
+ [Tindakan untuk bermigrasi ke 4.0 AWS Glue](#migrating-version-40-actions)
+ [Daftar periksa migrasi](#migrating-version-40-checklist)
+ [Migrasi dari AWS Glue 3.0 ke AWS Glue 4.0](#migrating-version-40-from-30)
+ [Migrasi dari AWS Glue 2.0 ke 4.0 AWS Glue](#migrating-version-40-from-20)
+ [Migrasi dari AWS Glue 1.0 ke 4.0 AWS Glue](#migrating-version-40-from-10)
+ [Migrasi dari AWS Glue 0,9 ke 4,0 AWS Glue](#migrating-version-40-from-09)
+ [Konektor dan migrasi driver JDBC untuk 4.0 AWS Glue](#migrating-version-40-connector-driver-migration)
+ [Lampiran A: Peningkatan ketergantungan penting](#migrating-version-40-appendix-dependencies)
+ [Lampiran B: Peningkatan driver JDBC](#migrating-version-40-appendix-jdbc-driver)
+ [Lampiran C: Peningkatan konektor](#migrating-version-40-appendix-connector)

## Fitur baru yang didukung
<a name="migrating-version-40-features"></a>

Bagian ini menjelaskan fitur dan keunggulan baru AWS Glue versi 4.0.
+ Ini didasarkan pada Apache Spark 3.3.0, tetapi mencakup pengoptimalan di, dan AWS Glue Amazon EMR, seperti proses kueri adaptif, pembaca vektor, dan pengocokan dan penggabungan partisi yang dioptimalkan. 
+ Driver JDBC yang ditingkatkan untuk semua sumber AWS Glue asli termasuk MySQL, Microsoft SQL Server, Oracle, PostgreSQL, MongoDB, dan pustaka dan dependensi Spark yang ditingkatkan yang dibawa oleh Spark 3.3.0.
+ Diperbarui dengan konektor Amazon Redshift baru dan driver JDBC.
+ Akses Amazon S3 yang dioptimalkan dengan Sistem File EMR (EMRFS) yang ditingkatkan dan mengaktifkan penghasil keluaran Amazon S3 yang dioptimalkan, secara default.
+ Akses Katalog Data yang Dioptimalkan dengan indeks partisi, predikat pushdown, daftar partisi, dan klien metastore Hive yang ditingkatkan.
+ Integrasi dengan Lake Formation untuk tabel katalog yang diatur dengan penyaringan tingkat sel dan transaksi data lake.
+ Mengurangi latensi startup untuk meningkatkan waktu penyelesaian pekerjaan secara keseluruhan dan interaktivitas.
+ Pekerjaan Spark ditagih dalam kenaikan 1 detik dengan durasi penagihan minimum 10x lebih rendah—dari minimum 10 menit hingga minimum 1 menit.
+ Dukungan asli untuk kerangka kerja danau data terbuka dengan Apache Hudi, Delta Lake, dan Apache Iceberg.
+ Dukungan asli untuk Plugin Penyimpanan Cloud Shuffle berbasis Amazon S3 (plugin Apache Spark) untuk menggunakan Amazon S3 untuk pengocokan dan kapasitas penyimpanan elastis.

**Peningkatan utama dari Spark 3.1.1 ke Spark 3.3.0**  
Perhatikan penyempurnaan berikut:
+ [Pemfilteran runtime tingkat baris (SPARK-32268).](https://issues.apache.org/jira/browse/SPARK-32268)
+ Penyempurnaan ANSI ([SPARK-38860](https://issues.apache.org/jira/browse/SPARK-38860)).
+ Perbaikan pesan kesalahan ([SPARK-38781](https://issues.apache.org/jira/browse/SPARK-38781)).
+ [Support tipe kompleks untuk pembaca vektor Parket (SPARK-34863).](https://issues.apache.org/jira/browse/SPARK-34863)
+ [Dukungan metadata file tersembunyi untuk Spark SQL (SPARK-37273).](https://issues.apache.org/jira/browse/SPARK-37273)
+ Sediakan profiler untuk Python/Pandas UDFs ([SPARK-37443](https://issues.apache.org/jira/browse/SPARK-37443)).
+ Perkenalkan Trigger. AvailableNow [untuk menjalankan kueri streaming seperti Trigger.Once dalam beberapa batch (SPARK-36533).](https://issues.apache.org/jira/browse/SPARK-36533)
+ [Kemampuan pushdown Datasource V2 yang lebih komprehensif (SPARK-38788).](https://issues.apache.org/jira/browse/SPARK-38788)
+ [Bermigrasi dari log4j 1 ke log4j 2 (SPARK-37814).](https://issues.apache.org/jira/browse/SPARK-37814)

**Perubahan penting lainnya**  
Perhatikan perubahan berikut:
+ Melanggar perubahan
  + [Jatuhkan referensi ke dukungan Python 3.6 di dokumen dan Python/docs (SPARK-36977).](https://issues.apache.org/jira/browse/SPARK-36977)
  + [Hapus peretasan tupel bernama dengan mengganti acar bawaan ke cloudpickle (SPARK-32079).](https://issues.apache.org/jira/browse/SPARK-32079)
  + [Bump versi panda minimum ke 1.0.5 (SPARK-37465).](https://issues.apache.org/jira/browse/SPARK-37465)

## Tindakan untuk bermigrasi ke 4.0 AWS Glue
<a name="migrating-version-40-actions"></a>

Untuk pekerjaan yang ada, ubah `Glue version` dari versi sebelumnya ke `Glue 4.0` dalam konfigurasi pekerjaan.
+ Di AWS Glue Studio, pilih `Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3` di`Glue version`.
+ Di API, pilih `GlueVersion` parameter **4.0** dalam operasi [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-UpdateJob)API.

Untuk pekerjaan baru, pilih `Glue 4.0` kapan Anda membuat pekerjaan.
+ Di konsol, pilih `Spark 3.3, Python 3 (Glue Version 4.0) or Spark 3.3, Scala 2 (Glue Version 3.0)` di`Glue version`.
+ Di AWS Glue Studio, pilih `Glue 4.0 - Supports Spark 3.3, Scala 2, Python 3` di`Glue version`.
+ Di API, pilih `GlueVersion` parameter **4.0** dalam operasi [https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob)API.

Untuk melihat log peristiwa Spark AWS Glue 4.0 yang berasal dari AWS Glue 2.0 atau sebelumnya, [luncurkan server riwayat Spark yang ditingkatkan untuk AWS Glue 4.0 menggunakan CloudFormation](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-history.html) atau Docker.

## Daftar periksa migrasi
<a name="migrating-version-40-checklist"></a>
+ Apakah pustaka Python eksternal pekerjaan Anda bergantung pada Python 2.7/3.6?
  + Perbarui pustaka dependen dari Python 2.7/3.6 ke Python 3.10 karena Spark 3.3.0 sepenuhnya menghapus dukungan Python 2.7 dan 3.6.

## Migrasi dari AWS Glue 3.0 ke AWS Glue 4.0
<a name="migrating-version-40-from-30"></a>

Perhatikan perubahan berikut saat bermigrasi:
+ Semua parameter pekerjaan yang ada dan fitur utama yang ada di AWS Glue 3.0 akan ada di AWS Glue 4.0.
+ AWS Glue 3.0 menggunakan Spark 3.1.1 yang dioptimalkan oleh Amazon EMR, dan 4.0 AWS Glue menggunakan Spark 3.3.0 yang dioptimalkan oleh Amazon EMR.

  Beberapa perubahan Spark saja mungkin memerlukan revisi skrip Anda untuk memastikan bahwa fitur yang dihapus tidak direferensikan.
+ AWS Glue 4.0 juga dilengkapi pembaruan untuk EMRFS dan Hadoop. Untuk versi tertentu, lihat[Lampiran A: Peningkatan ketergantungan penting](#migrating-version-40-appendix-dependencies).
+  AWS SDK yang disediakan dalam pekerjaan ETL sekarang ditingkatkan dari 1,11 menjadi 1,12.
+ Semua pekerjaan Python akan menggunakan Python versi 3.10. Sebelumnya, Python 3.7 digunakan di 3.0. AWS Glue 

  Akibatnya, beberapa pymodules yang dibawa out-of-the-box oleh AWS Glue ditingkatkan.
+ Log4j telah ditingkatkan ke Log4j2.
  + [Untuk informasi tentang jalur migrasi Log4j2, lihat dokumentasi Log4j.](https://logging.apache.org/log4j/2.x/manual/migration.html#Log4j2API)
  + Anda harus mengganti nama file log4j.properties kustom sebagai file log4j2.properties sebagai gantinya, dengan properti log4j2 yang sesuai.
+ Untuk memigrasikan konektor tertentu, lihat[Konektor dan migrasi driver JDBC untuk 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+  AWS Encryption SDK ditingkatkan dari 1.x ke 2.x. AWS Glue pekerjaan yang menggunakan konfigurasi AWS Glue keamanan dan pekerjaan yang bergantung pada dependensi SDK AWS Enkripsi yang disediakan dalam runtime akan terpengaruh. Lihat petunjuk untuk migrasi AWS Glue pekerjaan.

  Anda dapat dengan aman memutakhirkan pekerjaan AWS Glue 2.0/3.0 ke pekerjaan AWS Glue 4.0 karena AWS Glue 2.0/3.0 sudah berisi versi jembatan SDK AWS Enkripsi.

Lihat dokumentasi migrasi Spark:
+ [Upgrade dari Spark SQL 3.1 ke 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Upgrade dari Spark SQL 3.2 ke 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)

## Migrasi dari AWS Glue 2.0 ke 4.0 AWS Glue
<a name="migrating-version-40-from-20"></a>

Perhatikan perubahan berikut saat bermigrasi:

**catatan**  
Untuk langkah-langkah migrasi yang terkait dengan AWS Glue 3.0, lihat[Migrasi dari AWS Glue 3.0 ke AWS Glue 4.0](#migrating-version-40-from-30).
+ Semua parameter pekerjaan yang ada dan fitur utama yang ada di AWS Glue 2.0 akan ada di AWS Glue 4.0.
+ Komitter yang dioptimalkan EMRFS S3 untuk menulis data Parket ke Amazon S3 diaktifkan secara default sejak 3.0. AWS Glue Namun, Anda masih dapat menonaktifkannya dengan menyetel `--enable-s3-parquet-optimized-committer` ke`false`.
+ AWS Glue 2.0 menggunakan sumber terbuka Spark 2.4 dan AWS Glue 4.0 menggunakan Spark 3.3.0 yang dioptimalkan Amazon EMR.
  + Beberapa perubahan Spark saja mungkin memerlukan revisi skrip Anda untuk memastikan bahwa fitur yang dihapus tidak direferensikan.
  + Misalnya, Spark 3.3.0 tidak mengaktifkan Scala-untyped UDFs, tetapi Spark 2.4 mengizinkannya.
+  AWS SDK yang disediakan dalam pekerjaan ETL sekarang ditingkatkan dari 1,11 menjadi 1,12.
+ AWS Glue 4.0 juga dilengkapi pembaruan untuk EMRFS, driver JDBC yang diperbarui, dan inklusi pengoptimalan tambahan ke Spark sendiri yang disediakan oleh. AWS Glue
+ Scala diperbarui ke 2.12 dari 2.11, dan Scala 2.12 tidak kompatibel dengan Scala 2.11.
+ Python 3.10 adalah versi default yang digunakan untuk skrip Python, karena 2.0 AWS Glue hanya menggunakan Python 3.7 dan 2.7.
  + Python 2.7 tidak didukung dengan Spark 3.3.0. Pekerjaan apa pun yang meminta Python 2 dalam konfigurasi pekerjaan akan gagal dengan file. IllegalArgumentException
  + Mekanisme baru untuk menginstal modul Python tambahan tersedia sejak AWS Glue 2.0.
+ Beberapa pembaruan ketergantungan, disorot dalam[Lampiran A: Peningkatan ketergantungan penting](#migrating-version-40-appendix-dependencies).
+ File JAR tambahan apa pun yang disediakan dalam pekerjaan AWS Glue 2.0 yang ada mungkin membawa dependensi yang bertentangan karena ada peningkatan di beberapa dependensi di 4.0 dari 2.0. Anda dapat menghindari konflik classpath di AWS Glue 4.0 dengan parameter `--user-jars-first` AWS Glue pekerjaan.
+ AWS Glue 4.0 menggunakan Spark 3.3. Dimulai dengan Spark 3.1, terjadi perubahan perilaku file parket stempel waktu from/to . loading/saving Untuk detail selengkapnya, lihat [Memutakhirkan dari Spark SQL 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-30-to-31) ke 3.1.

  Kami merekomendasikan untuk mengatur parameter berikut ketika data reading/writing parket yang berisi kolom stempel waktu. Menyetel parameter tersebut dapat menyelesaikan masalah ketidakcocokan kalender yang terjadi selama peningkatan Spark 2 ke Spark 3, untuk AWS Glue Dynamic Frame dan Spark Data Frame. Gunakan opsi CORRECTED untuk membaca nilai datetime apa adanya; dan opsi LEGACY untuk rebase nilai datetime sehubungan dengan perbedaan kalender selama membaca.

  ```
  - 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]
  ```
+ Untuk memigrasikan konektor tertentu, lihat[Konektor dan migrasi driver JDBC untuk 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+  AWS Encryption SDK ditingkatkan dari 1.x ke 2.x. AWS Glue pekerjaan yang menggunakan konfigurasi AWS Glue keamanan dan pekerjaan yang bergantung pada dependensi SDK AWS Enkripsi yang disediakan dalam runtime akan terpengaruh. Lihat petunjuk ini untuk migrasi AWS Glue pekerjaan:
  + Anda dapat dengan aman memutakhirkan pekerjaan AWS Glue 2.0 ke pekerjaan AWS Glue 4.0 karena AWS Glue 2.0 sudah berisi versi jembatan SDK AWS Enkripsi.

Lihat dokumentasi migrasi Spark:
+ [Upgrade dari Spark SQL 2.4 ke 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-24-to-30)
+ [Upgrade dari Spark SQL 3.1 ke 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Upgrade dari Spark SQL 3.2 ke 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)
+ [Perubahan perilaku Datetime diharapkan sejak Spark 3.0.](https://issues.apache.org/jira/browse/SPARK-31408)

## Migrasi dari AWS Glue 1.0 ke 4.0 AWS Glue
<a name="migrating-version-40-from-10"></a>

Perhatikan perubahan berikut saat bermigrasi:
+ AWS Glue 1.0 menggunakan sumber terbuka Spark 2.4 dan AWS Glue 4.0 menggunakan Spark 3.3.0 yang dioptimalkan oleh Amazon EMR.
  + Beberapa perubahan Spark saja mungkin memerlukan revisi skrip Anda untuk memastikan bahwa fitur yang dihapus tidak direferensikan.
  + Misalnya, Spark 3.3.0 tidak mengaktifkan Scala-untyped UDFs, tetapi Spark 2.4 mengizinkannya.
+ Semua pekerjaan di AWS Glue 4.0 akan dijalankan dengan waktu startup yang ditingkatkan secara signifikan. Pekerjaan Spark akan ditagih dalam kenaikan 1 detik dengan durasi penagihan minimum 10x lebih rendah karena latensi startup akan meningkat dari maksimum 10 menit menjadi maksimum 1 menit.
+ Perilaku logging telah berubah secara signifikan di AWS Glue 4.0, Spark 3.3.0 memiliki persyaratan minimum Log4j2.
+ Beberapa pembaruan ketergantungan, disorot dalam lampiran.
+ Scala juga diperbarui ke 2.12 dari 2.11, dan Scala 2.12 tidak kompatibel dengan Scala 2.11.
+ Python 3.10 juga merupakan versi default yang digunakan untuk skrip Python, karena 0.9 AWS Glue hanya menggunakan Python 2.

  Python 2.7 tidak didukung dengan Spark 3.3.0. Pekerjaan apa pun yang meminta Python 2 dalam konfigurasi pekerjaan akan gagal dengan file. IllegalArgumentException
+ Mekanisme baru untuk menginstal modul Python tambahan melalui pip tersedia sejak 2.0. AWS Glue Untuk informasi selengkapnya, lihat [Menginstal modul Python tambahan dengan pip](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-libraries.html#addl-python-modules-support) di 2.0\+. AWS Glue 
+ AWS Glue 4.0 tidak berjalan di Apache YARN, jadi pengaturan YARN tidak berlaku.
+ AWS Glue 4.0 tidak memiliki Hadoop Distributed File System (HDFS).
+ File JAR tambahan apa pun yang disediakan dalam pekerjaan AWS Glue 1.0 yang ada mungkin membawa dependensi yang bertentangan karena ada peningkatan di beberapa dependensi di 4.0 dari 1.0. Kami mengaktifkan AWS Glue 4.0 dengan parameter `--user-jars-first` AWS Glue pekerjaan secara default, untuk menghindari masalah ini.
+ AWS Glue 4.0 mendukung penskalaan otomatis. Oleh karena itu, ExecutorAllocationManager metrik akan tersedia saat penskalaan otomatis diaktifkan.
+ Dalam pekerjaan AWS Glue versi 4.0, Anda menentukan jumlah pekerja dan jenis pekerja, tetapi tidak menentukan`maxCapacity`.
+ AWS Glue 4.0 belum mendukung transformasi pembelajaran mesin.
+ Untuk memigrasikan konektor tertentu, lihat[Konektor dan migrasi driver JDBC untuk 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+  AWS Encryption SDK ditingkatkan dari 1.x ke 2.x. AWS Glue pekerjaan yang menggunakan konfigurasi AWS Glue keamanan dan pekerjaan yang bergantung pada dependensi SDK AWS Enkripsi yang disediakan dalam runtime akan terpengaruh. Lihat petunjuk ini untuk migrasi AWS Glue pekerjaan.
  + Anda tidak dapat memigrasikan pekerjaan AWS Glue 0.9/1.0 ke pekerjaan AWS Glue 4.0 secara langsung. Ini karena ketika memutakhirkan langsung ke versi 2.x atau yang lebih baru dan mengaktifkan semua fitur baru dengan segera, SDK AWS Enkripsi tidak akan dapat mendekripsi ciphertext yang dienkripsi di bawah versi SDK Enkripsi sebelumnya. AWS 
  + Untuk memutakhirkan dengan aman, pertama-tama kami sarankan Anda bermigrasi ke pekerjaan AWS Glue 2.0/3.0 yang berisi versi jembatan SDK AWS Enkripsi. Jalankan pekerjaan sekali untuk menggunakan versi jembatan AWS Encryption SDK.
  + Setelah selesai, Anda dapat dengan aman memigrasikan pekerjaan AWS Glue 2.0/3.0 ke 4.0. AWS Glue 

Lihat dokumentasi migrasi Spark:
+ [Upgrade dari Spark SQL 2.4 ke 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-24-to-30)
+ [Upgrade dari Spark SQL 3.0 ke 3.1](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-30-to-31)
+ [Upgrade dari Spark SQL 3.1 ke 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Upgrade dari Spark SQL 3.2 ke 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)
+ [Perubahan perilaku Datetime diharapkan sejak Spark 3.0.](https://issues.apache.org/jira/browse/SPARK-31408)

## Migrasi dari AWS Glue 0,9 ke 4,0 AWS Glue
<a name="migrating-version-40-from-09"></a>

Perhatikan perubahan berikut saat bermigrasi:
+ AWS Glue 0.9 menggunakan sumber terbuka Spark 2.2.1 dan 4.0 AWS Glue menggunakan Amazon EMR-Optimized Spark 3.3.0.
  + Beberapa perubahan Spark saja mungkin memerlukan revisi skrip Anda untuk memastikan bahwa fitur yang dihapus tidak direferensikan.
  + Misalnya, Spark 3.3.0 tidak mengaktifkan Scala-untyped UDFs, tetapi Spark 2.2 mengizinkannya.
+ Semua pekerjaan di AWS Glue 4.0 akan dijalankan dengan waktu startup yang ditingkatkan secara signifikan. Pekerjaan Spark akan ditagih dalam kenaikan 1 detik dengan durasi penagihan minimum 10x lebih rendah karena latensi startup akan meningkat dari maksimum 10 menit menjadi maksimum 1 menit.
+ Perilaku logging telah berubah secara signifikan sejak AWS Glue 4.0, Spark 3.3.0 memiliki persyaratan minimum Log4j2 seperti yang disebutkan di sini (\# -32-ke-33). https://spark.apache.org/docs/latest/core-migration-guide.html upgrading-from-core
+ Beberapa pembaruan ketergantungan, disorot dalam lampiran.
+ Scala juga diperbarui ke 2.12 dari 2.11, dan Scala 2.12 tidak kompatibel dengan Scala 2.11.
+ Python 3.10 juga merupakan versi default yang digunakan untuk skrip Python, karena 0.9 AWS Glue hanya menggunakan Python 2.
  + Python 2.7 tidak didukung dengan Spark 3.3.0. Pekerjaan apa pun yang meminta Python 2 dalam konfigurasi pekerjaan akan gagal dengan file. IllegalArgumentException
  + Mekanisme baru untuk menginstal modul Python tambahan melalui pip tersedia.
+ AWS Glue 4.0 tidak berjalan di Apache YARN, jadi pengaturan YARN tidak berlaku.
+ AWS Glue 4.0 tidak memiliki Hadoop Distributed File System (HDFS).
+ File JAR tambahan apa pun yang disediakan dalam AWS Glue 0.9 pekerjaan yang ada mungkin membawa dependensi yang bertentangan karena ada peningkatan di beberapa dependensi di 3.0 dari 0.9. Anda dapat menghindari konflik classpath di AWS Glue 3.0 dengan parameter `--user-jars-first` AWS Glue pekerjaan.
+ AWS Glue 4.0 mendukung penskalaan otomatis. Oleh karena itu, ExecutorAllocationManager metrik akan tersedia saat penskalaan otomatis diaktifkan.
+ Dalam pekerjaan AWS Glue versi 4.0, Anda menentukan jumlah pekerja dan jenis pekerja, tetapi tidak menentukan`maxCapacity`.
+ AWS Glue 4.0 belum mendukung transformasi pembelajaran mesin.
+ Untuk memigrasikan konektor tertentu, lihat[Konektor dan migrasi driver JDBC untuk 4.0 AWS Glue](#migrating-version-40-connector-driver-migration).
+  AWS Encryption SDK ditingkatkan dari 1.x ke 2.x. AWS Glue pekerjaan yang menggunakan konfigurasi AWS Glue keamanan dan pekerjaan yang bergantung pada dependensi SDK AWS Enkripsi yang disediakan dalam runtime akan terpengaruh. Lihat petunjuk ini untuk migrasi AWS Glue pekerjaan.
  + Anda tidak dapat memigrasikan pekerjaan AWS Glue 0.9/1.0 ke pekerjaan AWS Glue 4.0 secara langsung. Ini karena ketika memutakhirkan langsung ke versi 2.x atau yang lebih baru dan mengaktifkan semua fitur baru dengan segera, SDK AWS Enkripsi tidak akan dapat mendekripsi ciphertext yang dienkripsi di bawah versi SDK Enkripsi sebelumnya. AWS 
  + Untuk memutakhirkan dengan aman, pertama-tama kami sarankan Anda bermigrasi ke pekerjaan AWS Glue 2.0/3.0 yang berisi versi jembatan SDK AWS Enkripsi. Jalankan pekerjaan sekali untuk menggunakan versi jembatan AWS Encryption SDK.
  + Setelah selesai, Anda dapat dengan aman memigrasikan pekerjaan AWS Glue 2.0/3.0 ke 4.0. AWS Glue 

Lihat dokumentasi migrasi Spark:
+ [Upgrade dari Spark SQL 2.2 ke 2.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-22-to-23)
+ [Upgrade dari Spark SQL 2.3 ke 2.4](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-23-to-24)
+ [Upgrade dari Spark SQL 2.4 ke 3.0](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-24-to-30)
+ [Upgrade dari Spark SQL 3.0 ke 3.1](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-30-to-31)
+ [Upgrade dari Spark SQL 3.1 ke 3.2](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-31-to-32)
+ [Upgrade dari Spark SQL 3.2 ke 3.3](https://spark.apache.org/docs/latest/sql-migration-guide.html#upgrading-from-spark-sql-32-to-33)
+ [Perubahan perilaku Datetime diharapkan sejak Spark 3.0](https://issues.apache.org/jira/browse/SPARK-31408).

## Konektor dan migrasi driver JDBC untuk 4.0 AWS Glue
<a name="migrating-version-40-connector-driver-migration"></a>

Untuk versi JDBC dan konektor data lake yang ditingkatkan, lihat:
+ [Lampiran B: Peningkatan driver JDBC](#migrating-version-40-appendix-jdbc-driver)
+ [Lampiran C: Peningkatan konektor](#migrating-version-40-appendix-connector)

### Hudi
<a name="migrating-version-40-connector-driver-migration-hudi"></a>
+ Peningkatan dukungan Spark SQL:
  + Melalui `Call Procedure` perintah, ada dukungan tambahan untuk upgrade, downgrade, bootstrap, clean, dan repair. `Create/Drop/Show/Refresh Index`sintaks dimungkinkan di Spark SQL.
  + Kesenjangan kinerja telah ditutup antara penggunaan melalui Spark DataSource sebagai lawan dari Spark SQL. Datasource menulis di masa lalu dulunya lebih cepat dari SQL.
  + Semua generator kunci bawaan mengimplementasikan operasi API khusus SPARK yang lebih berkinerja tinggi.
  + Mengganti transformasi UDF dalam `insert` operasi massal dengan transformasi RDD untuk mengurangi biaya penggunaan. SerDe
  + Spark SQL dengan Hudi membutuhkan `primaryKey` untuk ditentukan oleh `tblproperites` atau opsi dalam pernyataan SQL. Untuk operasi pembaruan dan penghapusan, `preCombineField` diperlukan juga.
+ Setiap tabel Hudi yang dibuat sebelum versi 0.10.0 tanpa `primaryKey` perlu dibuat ulang dengan `primaryKey` bidang sejak versi 0.10.0.

### PostgreSQL
<a name="migrating-version-40-connector-driver-migration-postgresql"></a>
+ Beberapa kerentanan (CVEs) telah diatasi.
+ Java 8 didukung secara native.
+ Jika pekerjaan menggunakan Array Array, dengan pengecualian array byte, skenario ini dapat diperlakukan sebagai array multidimensi.

### MongoDB
<a name="migrating-version-40-connector-driver-migration-mongodb"></a>
+ Konektor MongoDB saat ini mendukung Spark versi 3.1 atau yang lebih baru dan MongoDB versi 4.0 atau yang lebih baru.
+ Karena peningkatan konektor, beberapa nama properti berubah. Misalnya, nama properti URI diubah menjadi`connection.uri`. Untuk informasi lebih lanjut tentang opsi saat ini, lihat blog [MongoDB Spark Connector](https://www.mongodb.com/docs/spark-connector/current/configuration/).
+ Menggunakan MongoDB 4.0 yang dihosting oleh Amazon DocumentDB memiliki beberapa perbedaan fungsional. Untuk informasi lebih lanjut, lihat topik-topik ini:
  + [Perbedaan Fungsional: Amazon DocumentDB dan MongoDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/functional-differences.html)
  +  [ APIsMongoDB, Operasi, dan Tipe Data yang Didukung](https://docs.aws.amazon.com/documentdb/latest/developerguide/mongo-apis.html).
+ Opsi “partisi” dibatasi untuk`ShardedPartitioner`,`PaginateIntoPartitionsPartitioner`, dan. `SinglePartitionPartitioner` Itu tidak dapat menggunakan default `SamplePartitioner` dan `PaginateBySizePartitioner` untuk Amazon DocumentDB karena operator panggung tidak mendukung API MongoDB. Untuk informasi selengkapnya, lihat [ APIsMongoDB, Operasi, dan Tipe Data yang Didukung](https://docs.aws.amazon.com/documentdb/latest/developerguide/mongo-apis.html).

### Danau Delta
<a name="migrating-version-40-connector-driver-migration-delta"></a>
+ Delta Lake sekarang mendukung [perjalanan waktu di SQL](https://docs.delta.io/2.1.0/delta-batch.html#query-an-older-snapshot-of-a-table-time-travel) untuk menanyakan data lama dengan mudah. Dengan pembaruan ini, perjalanan waktu sekarang tersedia baik di Spark SQL maupun melalui API. DataFrame Support telah ditambahkan untuk versi TIMESTAMP saat ini di SQL.
+ [Spark 3.3 memperkenalkan Trigger. AvailableNow](https://issues.apache.org/jira/browse/SPARK-36533)untuk menjalankan kueri streaming sebagai setara dengan `Trigger.Once` untuk kueri batch. Dukungan ini juga tersedia saat menggunakan tabel Delta sebagai sumber streaming.
+ Support untuk SHOW COLUMNS untuk mengembalikan daftar kolom dalam tabel.
+ Support untuk [DESKRIPTION DETAIL](https://docs.delta.io/2.1.0/delta-utility.html#retrieve-delta-table-details) di Scala dan DeltaTable Python API. Ini mengambil informasi rinci tentang tabel Delta menggunakan DeltaTable API atau Spark SQL.
+ [Support untuk mengembalikan metrik operasi dari perintah SQL [Delete](https://github.com/delta-io/delta/pull/1328), [Merge](https://github.com/delta-io/delta/pull/1327), dan Update.](https://github.com/delta-io/delta/pull/1331) Sebelumnya perintah SQL ini mengembalikan kosong DataFrame, sekarang mereka mengembalikan DataFrame dengan metrik yang berguna tentang operasi yang dilakukan.
+ Optimalkan peningkatan kinerja:
  + Atur opsi konfigurasi `spark.databricks.delta.optimize.repartition.enabled=true` untuk digunakan `repartition(1)` alih-alih `coalesce(1)` dalam perintah Optimalkan untuk kinerja yang lebih baik saat memadatkan banyak file kecil.
  + [Peningkatan kinerja](https://github.com/delta-io/delta/pull/1315) dengan menggunakan pendekatan berbasis antrian untuk memparalelkan pekerjaan pemadatan.
+ Perubahan penting lainnya:
  + [Support untuk menggunakan variabel](https://github.com/delta-io/delta/issues/1267) dalam perintah VACUUM dan OPTIMIZE SQL.
  + Perbaikan untuk CONVERT TO DELTA dengan tabel katalog termasuk:
    + [Isi otomatis skema partisi](https://github.com/delta-io/delta/commit/18d4d12ed06f973006501f6c39c8785db51e2b1f) dari katalog saat tidak disediakan.
    + [Gunakan informasi partisi](https://github.com/delta-io/delta/commit/ebff29904f3ababb889897343f8f8f7a010a1f71) dari katalog untuk menemukan file data yang akan dikomit alih-alih melakukan pemindaian direktori lengkap. Alih-alih melakukan semua file data dalam direktori tabel, hanya file data di bawah direktori partisi aktif yang akan dilakukan.
  + [Support for Change Data Feed (CDF) batch membaca](https://github.com/delta-io/delta/issues/1349) pada tabel yang diaktifkan pemetaan kolom saat DROP COLUMN dan RENAME COLUMN belum digunakan. Untuk informasi lebih lanjut, lihat [dokumentasi Delta Lake](https://docs.delta.io/2.1.0/delta-change-data-feed.html#known-limitations).
  + [Tingkatkan performa perintah Update](https://github.com/delta-io/delta/pull/1202) dengan mengaktifkan pemangkasan skema di lintasan pertama.

### Gunung Es Apache
<a name="migrating-version-40-connector-driver-migration-iceberg"></a>
+ Menambahkan beberapa [peningkatan kinerja](https://iceberg.apache.org/releases/#performance-improvements) untuk perencanaan pemindaian dan kueri Spark.
+ Menambahkan klien katalog REST umum yang menggunakan komit berbasis perubahan untuk menyelesaikan konflik komit di sisi layanan.
+ `AS OF`sintaks untuk kueri perjalanan waktu SQL didukung.
+ Ditambahkan merge-on-read dukungan untuk MERGE dan UPDATE query.
+ Ditambahkan dukungan untuk menulis ulang partisi menggunakan Z-order.
+ Menambahkan spesifikasi dan implementasi untuk Puffin, format untuk statistik besar dan gumpalan indeks, seperti sketsa [Theta](https://datasketches.apache.org/docs/Theta/InverseEstimate.html) atau filter mekar.
+ Menambahkan antarmuka baru untuk mengkonsumsi data secara bertahap (baik pemindaian append dan changelog).
+ Menambahkan dukungan untuk operasi massal dan pembacaan berkisar ke antarmuka FileIO.
+ Menambahkan lebih banyak tabel metadata untuk menampilkan file hapus di pohon metadata.
+ Perilaku drop table berubah. Di Iceberg 0.13.1, menjalankan `DROP TABLE` menghapus tabel dari katalog dan menghapus isi tabel juga. Di Iceberg 1.0.0, `DROP TABLE` hanya menghapus tabel dari katalog. Untuk menghapus isi tabel gunakan`DROP TABLE PURGE`.
+ Pembacaan vektor parket diaktifkan secara default di Iceberg 1.0.0. Jika Anda ingin menonaktifkan pembacaan vektor, setel ke. `read.parquet.vectorization.enabled` `false`

### Oracle
<a name="migrating-version-40-connector-driver-migration-oracle"></a>

Perubahan kecil.

### MySQL
<a name="migrating-version-40-connector-driver-migration-mysql"></a>

Perubahan kecil.

### Amazon Redshift
<a name="migrating-version-40-connector-driver-migration-redshift"></a>

AWS Glue 4.0 memiliki konektor Amazon Redshift baru dengan driver JDBC baru. Untuk informasi tentang penyempurnaan dan cara bermigrasi dari AWS Glue versi sebelumnya, lihat. [Koneksi Redshift](aws-glue-programming-etl-connect-redshift-home.md)

## Lampiran A: Peningkatan ketergantungan penting
<a name="migrating-version-40-appendix-dependencies"></a>

Berikut ini adalah peningkatan ketergantungan:


| Dependensi | Versi dalam AWS Glue 4.0 | Versi dalam AWS Glue 3.0 | Versi dalam AWS Glue 2.0 | Versi dalam 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 | 
| Skala | 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 | 
| JSON4 | 3.7.0-M11 | 3.6.6 | 3.5.x | 3.5.x | 
| Panah | 7.0.0 | 2.0.0 | 0.10.0 | 0.10.0 | 
| AWS Glue Klien Katalog Data | 3.7.0 | 3.0.0 | 1.10.0 | N/A | 
| Python | 3.10 | 3.7 | 2.7 & 3.6 | 2.7 & 3.6 | 
| Boto | 1.26 | 1.18 | 1.12 | N/A | 

## Lampiran B: Peningkatan driver JDBC
<a name="migrating-version-40-appendix-jdbc-driver"></a>

Berikut ini adalah upgrade driver JDBC:


| Driver | Versi driver JDBC di versi sebelumnya AWS Glue  | Versi driver JDBC di 3.0 AWS Glue  | Versi driver JDBC di 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 | 
| Database Oracle | 11.2 | 21.1 | 21.7 | 
| PostgreSQL | 42.1.0 | 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 | 

## Lampiran C: Peningkatan konektor
<a name="migrating-version-40-appendix-connector"></a>

Berikut ini adalah upgrade konektor:


| Driver | Versi konektor di AWS Glue 3.0 | Versi konektor di AWS Glue 4.0 | 
| --- | --- | --- | 
| MongoDB | 3.0.0 | 10.0.4 | 
| Hudi | 0.10.1 | 0.12.1 | 
| Danau Delta | 1.0.0 | 2.1.0 | 
| Gunung es | 0.13.1 | 1.0.0 | 
| DynamoDB | 1.11 | 1.12 | 