Koneksi Amazon S3 - AWS Glue

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

Koneksi Amazon S3

Anda dapat menggunakan AWS Glue for Spark untuk membaca dan menulis file di Amazon S3. AWS Glue for Spark mendukung banyak format data umum yang disimpan di Amazon S3 di luar kotak, termasuk CSV, Avro, JSON, Orc, dan Parket. Untuk informasi selengkapnya tentang format data yang didukung, lihatOpsi format data untuk input dan output untuk Spark AWS Glue. Setiap format data dapat mendukung serangkaian fitur AWS Glue yang berbeda. Konsultasikan halaman untuk format data Anda untuk spesifikasi dukungan fitur. Selain itu, Anda dapat membaca dan menulis file berversi yang disimpan dalam kerangka data lake Hudi, Iceberg, dan Delta Lake. Untuk informasi selengkapnya tentang kerangka data lake, lihatMenggunakan kerangka kerja data lake dengan pekerjaan AWS Glue ETL.

Dengan AWS Glue Anda dapat mempartisi objek Amazon S3 Anda ke dalam struktur folder saat menulis, lalu mengambilnya dengan partisi untuk meningkatkan kinerja menggunakan konfigurasi sederhana. Anda juga dapat mengatur konfigurasi untuk mengelompokkan file kecil bersama-sama saat mengubah data Anda untuk meningkatkan kinerja. Anda dapat membaca dan menulis bzip2 dan gzip mengarsipkan di Amazon S3.

Mengkonfigurasi koneksi S3

Untuk terhubung ke Amazon S3 dalam pekerjaan AWS Glue with Spark, Anda memerlukan beberapa prasyarat:

  • Pekerjaan AWS Glue harus memiliki izin IAM untuk bucket Amazon S3 yang relevan.

Dalam kasus tertentu, Anda perlu mengkonfigurasi prasyarat tambahan:

  • Saat mengonfigurasi akses lintas akun, kontrol akses yang sesuai pada bucket Amazon S3.

  • Untuk alasan keamanan, Anda dapat memilih untuk merutekan permintaan Amazon S3 Anda melalui Amazon VPC. Pendekatan ini dapat memperkenalkan tantangan bandwidth dan ketersediaan. Untuk informasi selengkapnya, lihat Amazon VPC endpoint untuk Amazon S3.

Referensi opsi koneksi Amazon S3

Mengkhususkan koneksi ke Amazon S3.

Karena Amazon S3 mengelola file daripada tabel, selain menentukan properti koneksi yang disediakan dalam dokumen ini, Anda perlu menentukan konfigurasi tambahan tentang jenis file Anda. Anda menentukan informasi ini melalui opsi format data. Untuk informasi selengkapnya tentang opsi format, lihatOpsi format data untuk input dan output untuk Spark AWS Glue. Anda juga dapat menentukan informasi ini dengan mengintegrasikan dengan Katalog Data AWS Glue.

Untuk contoh perbedaan antara opsi koneksi dan opsi format, pertimbangkan bagaimana create_dynamic_frame_from_options metode ini mengambilconnection_type,connection_options, format danformat_options. Bagian ini secara khusus membahas parameter yang disediakan untukconnection_options.

Gunakan opsi koneksi berikut dengan "connectionType": "s3":

  • "paths": (Wajib) Daftar path Amazon S3 tempat untuk membaca.

  • "exclusions": (Opsional) Sebuah string yang berisi daftar JSON pola glob dengan gaya Unix untuk mengecualikan. Misalnya, "[\"**.pdf\"]" mengecualikan semua file PDF. Untuk informasi selengkapnya tentang sintaks glob yang AWS Glue mendukung, lihat Sertakan dan Kecualikan Pola.

  • "compressionType": atau "compression": (Opsional) Menentukan cara kompresi data. Gunakan "compressionType" untuk sumber Amazon S3 dan "compression" untuk target Amazon S3. Hal ini umumnya tidak diperlukan jika data memiliki sebuah ekstensi file standar. Nilai yang mungkin adalah "gzip" dan"bzip2"). Format kompresi tambahan dapat didukung untuk format tertentu. Untuk spesifikasi dukungan fitur, lihat halaman format data.

  • "groupFiles": (Opsional) Pengelompokan file dalam grup diaktifkan secara default ketika input berisi lebih dari 50.000 file. Untuk mengaktifkan pengelompokan dalam grup dengan jumlah file kurang dari 50.000, tetapkan parameter ini ke "inPartition". Untuk menonaktifkan pengelompokan dalam grup ketika ada lebih dari 50.000 file, tetapkan parameter ini ke "none".

  • "groupSize": (Opsional) Ukuran grup target dalam byte. Default-nya dihitung berdasarkan ukuran input data dan ukuran klaster Anda. Ketika ada kurang dari 50.000 file input, "groupFiles" harus diatur ke "inPartition" agar ini berlaku.

  • "recurse": (Opsional) Jika diatur ke BETUL, secara rekursif akan membaca file di semua subdirektori pada path yang ditentukan.

  • "maxBand": (Opsional, lanjutan) Opsi ini mengontrol durasi dalam milidetik yang setelahnya pencantuman s3 kemungkinan akan konsisten. File dengan stempel waktu modifikasi berada dalam maxBand milidetik terakhir dilacak secara khusus ketika menggunakan JobBookmarks untuk memperhitungkan eventual consistency Amazon S3. Sebagian besar pengguna tidak perlu mengatur opsi ini. Default-nya adalah 900000 milidetik, atau 15 menit.

  • "maxFilesInBand": (Opsional, lanjutan) Opsi ini menentukan jumlah maksimum file yang akan disimpan dari maxBand detik terakhir. Jika jumlah ini terlampaui, file tambahan akan dilewati dan hanya diproses dalam eksekusi tugas berikutnya. Sebagian besar pengguna tidak perlu mengatur opsi ini.

  • "isFailFast": (Opsional) Opsi ini menentukan apakah pekerjaan AWS Glue ETL melempar pengecualian penguraian pembaca. Jika diatur ke true, maka tugas akan di fail-fast jika empat kali percobaan tugas Spark gagal untuk mengurai data dengan benar.

  • "catalogPartitionPredicate": (Opsional) Digunakan untuk Baca. Isi dari WHERE klausa SQL. Digunakan saat membaca dari tabel Katalog Data dengan jumlah partisi yang sangat besar. Mengambil partisi yang cocok dari indeks Katalog Data. Digunakan denganpush_down_predicate, opsi pada create_dynamic_frame_from_catalog metode (dan metode serupa lainnya). Untuk informasi selengkapnya, lihat Pemfilteran sisi server menggunakan predikat partisi katalog.

  • "partitionKeys": (Opsional) Digunakan untuk Menulis. Sebuah array string label kolom. AWS Glue akan mempartisi data Anda seperti yang ditentukan oleh konfigurasi ini. Untuk informasi selengkapnya, lihat Menulis partisi.

  • "excludeStorageClasses": (Opsional) Digunakan untuk Baca. Array string yang menentukan kelas penyimpanan Amazon S3. AWS Glue akan mengecualikan objek Amazon S3 berdasarkan konfigurasi ini. Untuk informasi selengkapnya, lihat Tidak termasuk kelas penyimpanan Amazon S3.

Sintaks koneksi usang untuk format data

Format data tertentu dapat diakses menggunakan sintaks jenis koneksi tertentu. Sintaks ini sudah usang. Kami menyarankan Anda menentukan format Anda menggunakan jenis s3 koneksi dan opsi format yang disediakan Opsi format data untuk input dan output untuk Spark AWS Glue sebagai gantinya.

“ConnectionType”: “ConnectionType”

Mengkhususkan koneksi ke file yang disimpan di Amazon S3 dalam format file Apache Hive Optimized Row Columnar (ORC).

Gunakan opsi koneksi berikut dengan "connectionType": "orc":

  • paths: (Wajib) Daftar path Amazon S3 tempat untuk membaca.

  • (Pasangan pilihan nama/pasangan lainnya): Setiap opsi tambahan, termasuk opsi format, diberikan langsung ke SparkSQL DataSource.

"connectionType": "parquet"

Mengkhususkan koneksi ke file yang disimpan di Amazon S3 dalam format file Apache Parquet.

Gunakan opsi koneksi berikut dengan "connectionType": "parquet":

  • paths: (Wajib) Daftar path Amazon S3 tempat untuk membaca.

  • (Pasangan pilihan nama/pasangan lainnya): Setiap opsi tambahan, termasuk opsi format, diberikan langsung ke SparkSQL DataSource.