Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Optimalkan konsumsi ETL ukuran file input di AWS
Apoorva Patrikar, Amazon Web Services
Ringkasan
Pola ini menunjukkan kepada Anda cara mengoptimalkan langkah konsumsi proses ekstrak, transformasi, dan pemuatan (ETL) untuk big data dan beban kerja Apache Spark di AWS Glue dengan mengoptimalkan ukuran file sebelum memproses data Anda. Gunakan pola ini untuk mencegah atau menyelesaikan masalah file kecil. Artinya, ketika sejumlah besar file kecil memperlambat pemrosesan data karena ukuran agregat file. Misalnya, ratusan file yang masing-masing hanya beberapa ratus kilobyte dapat secara signifikan memperlambat kecepatan pemrosesan data untuk pekerjaan AWS Glue Anda. Ini karena AWS Glue harus menjalankan fungsi daftar internal di Amazon Simple Storage Service (Amazon S3) dan YARN (Yet Another Resource Negotiator) harus menyimpan sejumlah besar metadata. Untuk meningkatkan kecepatan pemrosesan data, Anda dapat menggunakan pengelompokan untuk mengaktifkan tugas ETL Anda membaca sekelompok file input ke dalam satu partisi dalam memori. Partisi secara otomatis mengelompokkan file yang lebih kecil bersama-sama. Atau, Anda dapat menggunakan kode kustom untuk menambahkan logika batch ke file yang ada.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Satu atau lebih pekerjaan lem AWS
Satu atau lebih big data atau beban kerja Apache Spark
Arsitektur
Pola berikut menunjukkan bagaimana data dalam format yang berbeda diproses oleh pekerjaan AWS Glue dan kemudian disimpan dalam bucket S3 untuk mendapatkan visibilitas ke kinerja.

Diagram menunjukkan alur kerja berikut:
catatan
Pekerjaan AWS Glue mengonversi file kecil dalam format CSV, JSON, dan Parquet menjadi frame dinamis. : Ukuran file input memiliki dampak paling signifikan pada kinerja pekerjaan AWS Glue.
Pekerjaan AWS Glue menjalankan fungsi daftar internal dalam bucket S3.
Alat
AWS Glue adalah layanan ETL yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Tentukan ukuran grup. | Jika Anda memiliki lebih dari 50.000 file, pengelompokan dilakukan secara default. Namun, Anda juga dapat menggunakan pengelompokan untuk kurang dari 50.000 file dengan menentukan ukuran grup dalam parameter. | Insinyur data |
Tulis kode pengelompokan. | Gunakan
catatanGunakan | Insinyur data |
Tambahkan kode ke alur kerja. | Tambahkan kode pengelompokan ke alur kerja pekerjaan Anda di AWS Glue. | Insinyur data |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Pilih bahasa dan platform pemrosesan. | Pilih bahasa scripting dan platform pemrosesan yang disesuaikan dengan kasus penggunaan Anda. | Arsitek awan |
Tulis kodenya. | Tulis logika kustom untuk mengumpulkan file Anda bersama-sama. | Arsitek awan |
Tambahkan kode ke alur kerja. | Tambahkan kode ke alur kerja pekerjaan Anda di AWS Glue. Ini memungkinkan logika kustom Anda diterapkan setiap kali pekerjaan dijalankan. | Insinyur data |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menganalisis pola konsumsi. | Cari tahu bagaimana aplikasi hilir akan menggunakan data yang Anda tulis. Misalnya, jika mereka menanyakan data setiap hari dan Anda hanya mempartisi data per Wilayah atau memiliki file output yang sangat kecil, seperti 2,5 KB per file, maka ini tidak optimal untuk konsumsi. | DBA |
Partisi ulang data sebelum menulis. | Partisi ulang berdasarkan gabungan atau kueri selama pemrosesan (berdasarkan logika pemrosesan) dan setelah pemrosesan (berdasarkan konsumsi). Misalnya, partisi ulang berdasarkan ukuran byte, seperti | Insinyur data |
Sumber daya terkait
Informasi tambahan
Menentukan ukuran file
Tidak ada cara mudah untuk menentukan apakah ukuran file terlalu besar atau terlalu kecil. Dampak ukuran file pada kinerja pemrosesan tergantung pada konfigurasi cluster Anda. Di inti Hadoop, kami menyarankan Anda menggunakan file yang 128 MB atau 256 MB untuk memaksimalkan ukuran blok.
Untuk sebagian besar beban kerja file teks di AWS Glue, kami merekomendasikan ukuran file antara 100 MB dan 1 GB untuk cluster 5-10 DPU. Untuk mengetahui ukuran file input terbaik, pantau bagian preprocessing dari pekerjaan AWS Glue Anda, lalu periksa pemanfaatan CPU dan pemanfaatan memori pekerjaan tersebut.
Pertimbangan tambahan
Jika kinerja pada tahap ETL awal merupakan hambatan, pertimbangkan untuk mengelompokkan atau menggabungkan file data sebelum diproses. Jika Anda memiliki kontrol penuh pada proses pembuatan file, akan lebih efisien untuk menggabungkan titik data pada sistem sumber itu sendiri sebelum data mentah dikirim ke AWS.