Membaca file input dalam kelompok yang lebih besar - AWS Glue

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

Membaca file input dalam kelompok yang lebih besar

Anda dapat mengatur properti tabel Anda untuk memungkinkan tugas ETL AWS Glue untuk mengelompokkan file ketika dibaca dari penyimpanan data Amazon S3. Properti ini memungkinkan setiap tugas ETL untuk membaca sekelompok file input ke dalam partisi di memori tunggal, ini sangat berguna ketika ada sejumlah besar file kecil di Penyimpanan data Amazon S3 Anda. Ketika Anda mengatur properti tertentu, Anda menginstruksikan AWS Glue untuk mengelompokkan file dalam partisi data Amazon S3 dan mengatur ukuran grup yang akan dibaca. Anda juga dapat mengatur pilihan ini ketika membaca dari penyimpanan data Amazon S3 dengan metode create_dynamic_frame.from_options.

Untuk mengaktifkan pengelompokan file untuk sebuah tabel, Anda mengatur pasangan nilai-kunci di bidang parameter struktur tabel Anda. Gunakan notasi JSON untuk menetapkan nilai untuk bidang parameter tabel Anda. Untuk informasi lebih lanjut tentang mengedit properti tabel, lihat Melihat dan mengedit detail tabel.

Anda dapat menggunakan metode ini untuk mengaktifkan pengelompokan untuk tabel di Katalog Data dengan menyimpan data Amazon S3.

groupFiles

Atur groupFiles ke inPartition untuk mengaktifkan pengelompokan file dalam partisi data Amazon S3. AWS Glue secara otomatis memungkinkan pengelompokan jika ada lebih dari 50.000 file input, seperti dalam contoh berikut.

'groupFiles': 'inPartition'
groupSize

Atur groupSize untuk ukuran target grup dalam byte. Properti groupSize bersifat opsional, jika tidak disediakan, AWS Glue menghitung ukuran untuk menggunakan semua core CPU di klaster sekaligus masih mengurangi jumlah keseluruhan tugas ETL dan partisi di memori.

Sebagai contoh, berikut ini menetapkan ukuran grup ke 1 MB.

'groupSize': '1048576'

Perhatikan bahwa groupsize harus diatur dengan hasil perhitungan. Sebagai contoh 1024 * 1024 = 1048576.

rekursi

Atur rekursi ke True untuk secara rekursif membaca file di semua subdirektori saat menentukan paths sebagai array path. Anda tidak perlu mengatur recurse if paths adalah array kunci objek di Amazon S3, atau jika format input parquet/orc, seperti pada contoh berikut.

'recurse':True

Jika Anda membaca dari Amazon S3 secara langsung menggunakan metode create_dynamic_frame.from_options, tambahkan opsi koneksi ini. Sebagai contoh, upaya berikut untuk mengelompokkan file ke dalam grup 1 MB.

df = glueContext.create_dynamic_frame.from_options("s3", {'paths': ["s3://s3path/"], 'recurse':True, 'groupFiles': 'inPartition', 'groupSize': '1048576'}, format="json")
catatan

groupFilesdidukung untuk DynamicFrames dibuat dari format data berikut: csv, ion, GrokLog, json, dan xml. Opsi ini tidak didukung untuk avro, parket, dan orc.