Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Praktik terbaik
Saat mengembangkan dengan AWS Glue, pertimbangkan praktik terbaik berikut.
Kembangkan secara lokal terlebih dahulu
Untuk menghemat biaya dan waktu saat membangun pekerjaan ETL Anda, uji kode dan logika bisnis Anda secara lokal terlebih dahulu. Untuk petunjuk tentang menyiapkan wadah Docker yang dapat membantu Anda menguji pekerjaan AWS Glue ETL baik di shell maupun di lingkungan pengembangan terintegrasi (IDE), lihat posting blog Mengembangkan dan menguji AWS Glue pekerjaan secara lokal menggunakan wadah
Gunakan sesi AWS Glue interaktif
AWS Glue sesi interaktif menyediakan backend Spark tanpa server, ditambah dengan kernel Jupyter open-source yang terintegrasi dengan notebook dan IDE seperti, IntelliJ, dan VS Code. PyCharm Dengan menggunakan sesi interaktif, Anda dapat menguji kode Anda pada kumpulan data nyata dengan backend AWS Glue Spark dan IDE pilihan Anda. Untuk memulai, ikuti langkah-langkah di Memulai dengan sesi AWS Glue interaktif.
Gunakan partisi untuk menanyakan apa yang Anda butuhkan
Partisi mengacu pada membagi kumpulan data besar menjadi partisi yang lebih kecil berdasarkan kolom atau kunci tertentu. Ketika data dipartisi, AWS Glue dapat melakukan pemindaian selektif pada subset data yang memenuhi kriteria partisi tertentu, daripada memindai seluruh dataset. Ini menghasilkan pemrosesan kueri yang lebih cepat dan lebih efisien, terutama ketika bekerja dengan kumpulan data besar.
Data partisi berdasarkan kueri yang akan dijalankan terhadapnya. Misalnya, jika sebagian besar kueri memfilter pada kolom tertentu, partisi pada kolom itu dapat sangat mengurangi waktu kueri. Untuk mempelajari lebih lanjut tentang mempartisi data, lihat Bekerja dengan data yang dipartisi
Optimalkan manajemen memori
Manajemen memori sangat penting ketika menulis pekerjaan AWS Glue ETL karena mereka berjalan pada mesin Apache Spark, yang dioptimalkan untuk pemrosesan dalam memori. Posting blog Optimalkan manajemen memori dalam AWS Glue
-
Implementasi daftar Amazon S3 dari AWS Glue
-
Pengelompokan
-
Tidak termasuk jalur Amazon S3 dan kelas penyimpanan yang tidak relevan
-
Percikan dan AWS Glue baca partisi
-
Sisipan massal
-
Bergabunglah dengan pengoptimalan
-
PySpark fungsi yang ditentukan pengguna (UDF)
-
Pemrosesan tambahan
Gunakan format penyimpanan data yang efisien
Saat membuat pekerjaan ETL, kami sarankan untuk mengeluarkan data yang diubah dalam format data berbasis kolom. Format data kolumnar, seperti Apache Parquet dan ORC, biasanya digunakan dalam penyimpanan data besar dan analitik. Mereka dirancang untuk meminimalkan pergerakan data dan memaksimalkan kompresi. Format ini juga memungkinkan pemisahan data ke beberapa pembaca untuk meningkatkan pembacaan paralel selama pemrosesan kueri.
Mengompresi data juga membantu mengurangi jumlah data yang disimpan, dan meningkatkan kinerja operasi baca/tulis. AWS Glue mendukung beberapa format kompresi secara native. Untuk informasi selengkapnya tentang penyimpanan dan kompresi data yang efisien, lihat Membangun pipa data yang efisien kinerja.
Gunakan jenis penskalaan yang sesuai
Memahami kapan harus menskalakan secara horizontal (mengubah jumlah pekerja) atau menskalakan secara vertikal (mengubah jenis pekerja) penting AWS Glue karena dapat berdampak pada biaya dan kinerja pekerjaan ETL.
Umumnya, pekerjaan ETL dengan transformasi kompleks lebih intensif memori dan memerlukan penskalaan vertikal (misalnya, berpindah dari G.1X ke tipe pekerja G.2X). Untuk pekerjaan ETL intensif komputasi dengan volume data yang besar, kami merekomendasikan penskalaan horizontal karena AWS Glue dirancang untuk memproses data tersebut secara paralel di beberapa node.
Memantau metrik AWS Glue pekerjaan di Amazon dengan cermat CloudWatch membantu Anda menentukan apakah hambatan kinerja disebabkan oleh kurangnya memori atau komputasi. Untuk informasi selengkapnya tentang jenis dan penskalaan AWS Glue pekerja, lihat Praktik terbaik untuk menskalakan pekerjaan Apache Spark dan data partisi