

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

# Migrating AWS Glue untuk pekerjaan Spark ke AWS Glue versi 6.0
<a name="migrating-version-60"></a>

Topik ini menjelaskan perubahan antara AWS Glue versi 5.1 dan 6.0 untuk memungkinkan Anda memigrasikan aplikasi Spark dan pekerjaan ETL ke AWS Glue 6.0. Ini juga menjelaskan fitur-fitur di AWS Glue 6.0 dan keuntungan menggunakannya.

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

**Topics**
+ [Fitur baru](#migrating-version-60-features)
+ [Tindakan untuk bermigrasi ke AWS Glue 6.0](#migrating-version-60-actions)
+ [Daftar periksa migrasi](#migrating-version-60-checklist)
+ [Migrasi dari AWS Glue 5.1 untuk AWS Glue 6.0](#migrating-version-60-from-51)
+ [Bermigrasi dari yang lebih tua AWS Glue versi untuk AWS Glue 6.0](#migrating-older-versions-to-60)
+ [Konektor dan migrasi driver JDBC untuk AWS Glue 6.0](#migrating-version-60-connector-driver-migration)
+ [Keterbatasan yang Sudah Diketahui](#migrating-version-60-known-limitations)
+ [Lampiran A: Peningkatan ketergantungan penting](#migrating-version-60-appendix-dependencies)
+ [Lampiran B: Peningkatan driver JDBC](#migrating-version-60-appendix-jdbc-driver)
+ [Lampiran C: Peningkatan konektor](#migrating-version-60-appendix-connector)
+ [Lampiran D: Buka peningkatan format tabel](#migrating-version-60-appendix-open-table-formats)

## Fitur baru
<a name="migrating-version-60-features"></a>

Bagian ini menjelaskan fitur baru dan keunggulan AWS Glue versi 6.0.
+ Upgrade Apache Spark dari 3.5.6 di AWS Glue 5.1 ke 4.1.1 di AWS Glue 6.0.
+ Upgrade Scala dari 2.12.18 ke 2.13.17.
+ Pembaruan Python dari 3.11 ke 3.13.
+ Open Table Formats (OTF) diperbarui ke Hudi 1.1.1, Iceberg 1.11.0, dan Delta Lake 4.2.0.
+ **Format gunung es versi 3 ** - Memperluas tipe data dan struktur metadata yang ada untuk menambahkan kemampuan baru termasuk:
  + Jenis data VARIANT dengan penghancuran varian untuk manajemen data semi-terstruktur yang disederhanakan dan pembacaan yang lebih cepat.
  + Nanosecond-precision stempel waktu.
  + Jenis data geospasial (Geometri dan Geografi).
+ **Spark Declarative Pipelines (SDP) ** — Kerangka kerja deklaratif baru untuk mendefinisikan pipeline data end-to-end menggunakan SQL atau DataFrame API, dengan dukungan untuk tabel streaming dan tampilan yang terwujud. Untuk informasi selengkapnya, lihat [Saluran Pipa Deklaratif Spark](spark-declarative-pipelines.md).
+ **Spark Connect untuk Sesi Interaktif ** — Memungkinkan konektivitas klien tipis ke Sesi AWS Glue Interaktif melalui protokol Spark Connect, mendukung alur kerja pengembangan jarak jauh.
+ **Arrow-native Python UDFs/UDTFs ** - Peningkatan kinerja untuk fungsi yang ditentukan pengguna Python menggunakan format kolom Apache Arrow secara asli.
+ **Customer-managed atau lingkungan virtual Python yang dihasilkan layanan ** (`--python-virtual-env`) - Anda dapat membangun dan menyediakan venv Python Anda sendiri yang melekat pada driver dan pel AWS Glue aksana Spark saat runtime, memberikan kontrol penuh atas manajemen ketergantungan. Ketika pekerjaan yang ada dimigrasikan ke AWS Glue 6.0, AWS Glue secara otomatis menghasilkan lingkungan virtual ini jika diperlukan.
+ **Peningkatan streaming ** — Real-time mode untuk streaming stateless dengan latensi tingkat milidetik. Untuk informasi selengkapnya, lihat [Mengaktifkan mode real-time untuk pekerjaan streaming](streaming-chapter.md#glue-streaming-real-time-mode).
+ **Peningkatan konektor ** - Diperbarui Amazon Redshift, MongoDB, Snowflake, dan konektor lainnya. Lihat [Lampiran C: Peningkatan konektor](#migrating-version-60-appendix-connector) untuk detail versi lengkap.

**Masalah umum dan batasan**  
Perhatikan masalah dan batasan berikut yang diketahui:
+ **Mode ANSI diaktifkan secara default ** di Spark 4.1. Operasi yang sebelumnya mengembalikan NULL pada overflow (misalnya, aritmatika integer, operasi cast) sekarang memberikan pengecualian. Set `spark.sql.ansi.enabled=false` el untuk mengembalikan perilaku sebelumnya.
+ **Spark Declarative Pipelines (SDP) ** adalah fitur baru dengan dukungan terbatas untuk konstruksi SQL tertentu. Lihat [Saluran Pipa Deklaratif Spark](spark-declarative-pipelines.md) dokumentasi untuk batasan saat ini.
+ **Tabel Iceberg v3 ** yang dibuat di AWS Glue 6.0 tidak dapat dibaca oleh Athena SQL (kesalahan:`Cannot read unsupported version 3`). Gunakan Iceberg v2 untuk kompatibilitas lintas mesin dengan Athena.
+ **Python 3.13 ** menghapus beberapa modul yang tidak digunakan lagi dan mengubah perilaku untuk beberapa fungsi perpustakaan standar. Tinjau panduan migrasi Python 3.13 untuk kompatibilitas.
+ **AWS SDK untuk kompatibilitas Java 2.x dengan `--user-jars-first` ** - AWS Glue 6.0 termasuk AWS SDK untuk Java 2.x versi 2.44.6. Jika Anda menggunakan parameter `--user-jars-first` pekerjaan dengan JAR kustom yang menggabungkan versi lama AWS SDK untuk Java 2.x, pekerjaan Anda mungkin gagal dengan kesalahan `java.lang.NoSuchFieldError` atau kesalahan serupa. Kegagalan ini terjadi ketika SDK yang dibundel dalam JAR kustom Anda tidak memiliki kelas, bidang, atau metode yang AWS Glue bergantung pada runtime. Untuk menghindari masalah ini, pastikan bahwa JAR khusus yang Anda berikan `--user-jars-first` menggunakan AWS SDK untuk Java 2.x versi 2.44.6 atau yang lebih baru.

**Melanggar perubahan**  
Perhatikan perubahan besar berikut:
+ **EMRFS telah dihapus. ** S3A adalah satu-satunya sistem file S3 di AWS Glue 6.0. `com.amazon.ws.emr.hadoop.fs.EmrFileSystem`Kelas tidak lagi tersedia. Pekerjaan menggunakan `s3://` jalur menggunakan S3A secara otomatis. Jika sebelumnya Anda mengatur EMRFS-specific konfigurasi (misalnya,`fs.s3.consistent.*`), hapus.
+ **AWS SDK untuk Java v1 telah dihapus. ** Hanya AWS SDK v2 (2.44.6) yang tersedia. Pekerjaan yang mengimpor `com.amazonaws.services.*` paket harus bermigrasi ke`software.amazon.awssdk.services.*`.
+ **Scala ditingkatkan dari 2.12 menjadi 2.13. ** JAR khusus yang dikompilasi terhadap Scala 2.12 tidak berfungsi. Kompilasi ulang terhadap Scala 2.13.17. Perubahan utama: `JavaConversions` dihapus (gunakan`CollectionConverters`), `MutableList` dihapus (gunakan`ListBuffer`), koleksi paralel memerlukan impor terpisah.
+ **Perubahan API Spark 4.1: **
  + `SQLContext`dihapus - gunakan `SparkSession` langsung.
  + Mode ANSI diaktifkan secara default — konversi tipe implisit dan luapan berperilaku berbeda.
  + Beberapa API usang dihapus. Lihat Panduan Migrasi [ Spark 4.1 ](https://spark.apache.org/docs/4.1.1/migration-guide.html) di situs web Apache Spark.
+ **CreateSession Validasi API ** — Validasi tambahan pada parameter sesi untuk Sesi Interaktif. Konfigurasi yang tidak valid yang sebelumnya diterima secara diam-diam sekarang mungkin mengembalikan kesalahan.
+ **`getResolvedOptions`perubahan perilaku ** — Pencocokan awalan argumen dinonaktifkan secara default (`allow_abbrev=False`). Gunakan nama argumen lengkap, atau pass `getResolvedOptions()` to `allow_abbrev=True` untuk mengembalikan perilaku lama.

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

Untuk pekerjaan yang ada, ubah `Glue version` dari versi sebelumnya ke `Glue 6.0` dalam konfigurasi pekerjaan.
+ Di AWS Glue Studio, pilih `Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3` masuk`Glue version`.
+ Di API, pilih `GlueVersion` parameter **6.0** dalam operasi [ 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 6.0` kapan Anda membuat pekerjaan.
+ Di konsol, pilih `Spark 4.1.1, Python 3 (Glue Version 6.0) or Spark 4.1.1, Scala 2 (Glue Version 6.0)` masuk`Glue version`.
+ Di AWS Glue Studio, pilih `Glue 6.0 - Supports Spark 4.1.1, Scala 2, Python 3` masuk`Glue version`.
+ Di API, pilih `GlueVersion` parameter **6.0** dalam operasi [ CreateJob ](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-CreateJob) API.

Untuk membantu migrasi pekerjaan Anda, Anda dapat menggunakan peningkatan AI [ Generatif Apache Spark](https://docs.aws.amazon.com/glue/latest/dg/upgrade-analysis.html) untuk meningkatkan pekerjaan AWS Glue ETL Anda dari AWS Glue versi yang lebih lama (2.0 dan yang lebih baru) ke AWS Glue versi terbaru.

**Pemecahan masalah**  
Anda dapat menggunakan Agen Pem [ ecahan Masalah Spark ](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/spark-troubleshoot.html) untuk memecahkan masalah pekerjaan AWS Glue ETL Anda.

## Daftar periksa migrasi
<a name="migrating-version-60-checklist"></a>

Tinjau daftar periksa ini untuk migrasi:
+ [Scala] Kompilasi ulang JAR khusus terhadap Scala 2.13.17. Ganti `JavaConversions` dengan`CollectionConverters`.
+ [Python] Perbarui kode untuk kompatibilitas Python 3.13. Hapus penggunaan modul yang tidak digunakan lagi (misalnya,, `imp``cgi`,`cgitb`).
+ [Python] Perbarui referensi boto3 dari 1.40 menjadi 1.42.
+ [Spark SQL] Tinjau kueri untuk dampak mode ANSI. Tambahkan `spark.sql.ansi.enabled=false` jika perlu.
+ [SDK] Ganti impor AWS SDK v1 apa pun (`com.amazonaws.*`) dengan SDK v2 (`software.amazon.awssdk.*`).
+ [S3] Hapus EMRFS-specific konfigurasi. S3A sekarang menjadi konektor S3 default dan satu-satunya.
+ [Dependensi] Perbarui `--extra-jars` ke versi yang dikompilasi untuk Scala 2.13 dan Spark 4.1.

## Migrasi dari AWS Glue 5.1 untuk AWS Glue 6.0
<a name="migrating-version-60-from-51"></a>

Semua parameter pekerjaan yang ada dan fitur utama yang ada di AWS Glue 5.1 akan ada di AWS Glue 6.0. Perhatikan perubahan berikut saat bermigrasi:
+ **Sistem file S3: ** EMRFS tidak lagi tersedia. S3A adalah satu-satunya konektor S3. Jika sebelumnya Anda mengatur`spark.hadoop.fs.s3a.endpoint.region`, lanjutkan menggunakannya. Jika tidak disetel, pastikan titik akhir VPC atau konfigurasi jaringan memungkinkan S3A menyelesaikan wilayah yang benar.
+ **Kompatibilitas biner Scala: ** AWS Glue 6.0 menggunakan Scala 2.13. Apa pun `--extra-jars` yang dikompilasi dengan Scala 2.12 gagal dengan `NoSuchMethodError` atau. `ClassNotFoundException` Kompilasi ulang semua JAR khusus Scala/Java .
+ **Perubahan perilaku Spark SQL: **
  + Mode ANSI AKTIF secara default. Overflow integer, cast tidak valid, dan indeks array di luar batas memberikan pengecualian alih-alih mengembalikan NULL.
  + `spark.sql.legacy.timeParserPolicy`default berubah. Date/timepenguraian mungkin berperilaku berbeda.
  + Konversi string-ke-numerik implisit di SQL mungkin gagal dalam mode ANSI.
+ **Versi Python: ** Python 3.13 adalah runtime. `--additional-python-modules`Fitur ini terus berfungsi tetapi tidak digunakan lagi. Pertimbangkan untuk bermigrasi ke `--python-virtual-env` untuk kontrol ketergantungan penuh.
+ **AWS SDK: ** Hanya SDK v2 yang tersedia. Jika skrip Anda menggunakan boto3 (Python), tidak ada perubahan yang diperlukan - boto3 terus bekerja. Untuk Scala/Java pekerjaan yang menggunakan AWS SDK secara langsung, bermigrasi ke API v2.

Lihat dokumentasi migrasi Spark:
+ [Panduan Migrasi: Spark Core ](https://spark.apache.org/docs/4.1.1/core-migration-guide.html) di situs web Apache Spark
+ [Panduan Migrasi: SQL, Kumpulan Data dan DataFrame ](https://spark.apache.org/docs/4.1.1/sql-migration-guide.html) di situs web Apache Spark
+ [Panduan Migrasi: Streaming Terstruktur ](https://spark.apache.org/docs/4.1.1/ss-migration-guide.html) di situs web Apache Spark
+ [Upgrade PySpark ](https://spark.apache.org/docs/4.1.1/api/python/migration_guide/pyspark_upgrade.html) di situs web Apache Spark

## Bermigrasi dari yang lebih tua AWS Glue versi untuk AWS Glue 6.0
<a name="migrating-older-versions-to-60"></a>
+ Untuk langkah-langkah migrasi yang terkait dengan AWS Glue 5.0 hingga AWS Glue 5.1, lihat[Migrasi dari AWS Glue 5.0 hingga AWS Glue 5.1](migrating-version-51.md#migrating-version-51-from-50).
+ Untuk langkah-langkah migrasi yang terkait dengan AWS Glue 4.0 hingga AWS Glue 5.0, lihat[Migrasi dari AWS Glue 4.0 ke AWS Glue 5.0](migrating-version-50.md#migrating-version-50-from-40).
+ Untuk langkah-langkah migrasi yang terkait dengan AWS Glue 3.0 ke AWS Glue 5.0, lihat[Migrasi dari AWS Glue 3.0 ke AWS Glue 5.0](migrating-version-50.md#migrating-version-50-from-30).
+ Untuk langkah-langkah migrasi yang terkait dengan AWS Glue 2.0 hingga AWS Glue 5.0, lihat[Migrasi dari AWS Glue 2.0 ke AWS Glue 5.0](migrating-version-50.md#migrating-version-50-from-20).
+ Setelah menyelesaikan langkah-langkah di atas, selesaikan migrasi ke AWS Glue 6.0 dengan mengikuti[Migrasi dari AWS Glue 5.1 untuk AWS Glue 6.0](#migrating-version-60-from-51).

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

Untuk versi JDBC dan konektor data lake yang ditingkatkan, lihat:
+ [Lampiran B: Peningkatan driver JDBC](#migrating-version-60-appendix-jdbc-driver)
+ [Lampiran C: Peningkatan konektor](#migrating-version-60-appendix-connector)
+ [Lampiran D: Buka peningkatan format tabel](#migrating-version-60-appendix-open-table-formats)

Perubahan berikut berlaku untuk peningkatan versi OTF yang diidentifikasi dalam [Lampiran D: Buka peningkatan format tabel](#migrating-version-60-appendix-open-table-formats) untuk AWS Glue 6.0.

**Gunung Es Apache**  
Perhatikan perubahan berikut:
+ Iceberg ditingkatkan ke 1.11.0 dengan dukungan penuh untuk spesifikasi Apache Iceberg versi 3.
+ Jenis data VARIANT dengan penghancuran varian untuk kueri data semi-terstruktur yang dioptimalkan.
+ Nanosecond-precision stempel waktu.
+ Jenis data geospasial (Geometri dan Geografi).

Fitur Iceberg berikut sudah didukung oleh AWS Glue ETL sejak AWS Glue 5.1: vektor penghapusan (merge-on-read menggunakan Roaring Bitmaps yang disimpan dalam file Puffin) dan pelacakan garis keturunan baris melalui metadata. `first-row-id`

**Apache Hudi**  
Perhatikan perubahan berikut:
+ Hudi ditingkatkan ke 1.1.1.
+ Dukungan berkelanjutan untuk akses baca dan tulis FTA pada tabel AWS Lake Formation terdaftar.

**Danau Delta**  
Perhatikan perubahan berikut:
+ Danau Delta ditingkatkan menjadi 4.2.0.
+ Dukungan berkelanjutan untuk akses baca dan tulis FTA pada tabel AWS Lake Formation terdaftar.

## Keterbatasan yang Sudah Diketahui
<a name="migrating-version-60-known-limitations"></a>

Batasan berikut berlaku untuk AWS Glue 6.0:
+ Kunci enkripsi tabel asli Iceberg tidak didukung.
+ Transformasi multi-argumen Iceberg tidak didukung.
+ Tipe data Iceberg v3 baru hanya didukung dengan Spark DataFrames. Fitur-fitur ini tidak akan berfungsi dengan DynamicFrames.
+ Visual ETL di AWS Glue Studio tidak mendukung tipe data Iceberg v3 baru. Jika Anda ingin menggunakan fitur-fitur baru ini dengan Visual ETL, sebaiknya migrasikan pekerjaan ETL Anda ke Amazon SageMaker Unified Studio.
+ Fine-grained kontrol akses (FGAC) tidak didukung dengan kolom VARIANT.
+ Tabel gunung es yang dibuat dengan `'format-version'='3'` tidak dapat dibaca oleh Athena SQL (kesalahan:`Cannot read unsupported version 3`). Gunakan Iceberg v2 untuk kompatibilitas lintas mesin dengan Athena.

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

Berikut ini adalah peningkatan ketergantungan:


| Dependensi | Versi dalam AWS Glue 6.0 | Versi dalam AWS Glue 5.1 | Versi dalam AWS Glue 5.0 | Versi dalam 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 | 
| Skala | 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 | 
| Panah | 18.3.0 | 12.0.1 | 12.0.1 | 7.0.0 | 
| AWS Glue Klien Katalog Data | 4.11.0 | 4.9.0 | 4.5.0 | 3.7.0 | 
| AWS SDK untuk Java | 2.44.6 (hanya 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 | 
| JSON4 | 3,7,0-M11 | 3,7,0-M11 | 3,7,0-M11 | 3,7,0-M11 | 
| Konektor EMR DynamoDB | 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 | 
| Panda | 2.3.3 | N/A | N/A | N/A | 

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

Berikut ini adalah upgrade driver JDBC:


| Driver | Versi driver JDBC di 6.0 AWS Glue  | Versi driver JDBC di 5.1 AWS Glue  | Versi driver JDBC di 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 | 
| Database Oracle | 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 | pergeseran merah-jdbc42-2.2.7 | pergeseran merah - jdbc42-2.1.0.29 | pergeseran merah - jdbc42-2.1.0.29 | 
| MariaDB | 3.5.7 | N/A | N/A | 

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

Berikut ini adalah peningkatan konektor:


| Konektor | Versi dalam AWS Glue 6.0 | Versi dalam AWS Glue 5.1 | Versi dalam AWS Glue 5.0 | 
| --- | --- | --- | --- | 
| Pergeseran Merah Spark | 6.7.0 | 6.4.2 | 6.4.0 | 
| Kinesis Spark SQL | 2.1.0 | N/A | N/A | 
| MongoDB | 11.0.1 | 10.3.0 | 10.3.0 | 
| Kepingan Salju | 3.17.0 | 3.1.1 | 3.0.0 | 
| OpenSearch | 2.0.0 | 1.2.0 | 1.2.0 | 
| Konektor EMR DynamoDB | 6.1.0 | 5.7.0 | 5.6.0 | 

## Lampiran D: Buka peningkatan format tabel
<a name="migrating-version-60-appendix-open-table-formats"></a>

Berikut ini adalah peningkatan format tabel terbuka:


| OTF | Versi dalam AWS Glue 6.0 | Versi dalam AWS Glue 5.1 | Versi dalam AWS Glue 5.0 | Versi dalam AWS Glue 4.0 | 
| --- | --- | --- | --- | --- | 
| Hudi | 1.1.1 | 1.0.2 | 0.15.0 | 0.12.1 | 
| Danau Delta | 4.2.0 | 3.3.2 | 3.3.0 | 2.1.0 | 
| Gunung es | 1.11.0 | 1.10.0 | 1.7.1 | 1.0.0 | 