Tugas batch menggunakan shuffle Dataflow secara default. Shuffle Dataflow memindahkan operasi shuffle dari VM pekerja ke backend layanan Dataflow.
Informasi di halaman ini berlaku untuk tugas batch. Tugas streaming menggunakan mekanisme shuffle yang berbeda, yang disebut streaming shuffle.
Tentang shuffle Dataflow
- Shuffle Dataflow adalah operasi dasar di balik transformasi Dataflow seperti
GroupByKey
,CoGroupByKey
, danCombine
. - Operasi shuffle Dataflow membuat partisi dan mengelompokkan data berdasarkan kunci dengan cara yang skalabel, efisien, dan fault-tolerant.
Manfaat shuffle Dataflow
Pengacakan Dataflow berbasis layanan memiliki manfaat berikut:
- Waktu eksekusi pipeline batch yang lebih cepat untuk sebagian besar jenis tugas pipeline.
- Pengurangan resource penyimpanan CPU, memori, dan Persistent Disk yang digunakan di VM pekerja.
- Penskalaan Otomatis Horizontal yang lebih baik, karena VM tidak menyimpan data pengacakan apa pun sehingga dapat diturunkan skalanya lebih awal.
- Toleransi kesalahan yang lebih baik, karena VM yang tidak sehat yang menyimpan data pengacakan Dataflow tidak menyebabkan seluruh tugas gagal.
Dukungan dan batasan
- Fitur ini tersedia di semua wilayah tempat Dataflow didukung. Untuk melihat lokasi yang tersedia, baca Lokasi Dataflow. Mungkin ada perbedaan performa antar-wilayah.
- Worker harus di-deploy di region yang sama dengan tugas Dataflow.
Jangan tentukan opsi pipeline
zone
. Sebagai gantinya, tentukanregion
, dan tetapkan nilai ke salah satu region yang tersedia. Dataflow akan otomatis memilih zona di region yang Anda tentukan.Jika Anda menentukan opsi pipeline
zone
dan menyetelnya ke zona di luar region yang tersedia, tugas Dataflow akan menampilkan error. Jika Anda menetapkan kombinasiregion
danzone
yang tidak kompatibel, tugas Anda tidak dapat menggunakan pengacakan Dataflow.Untuk Python, pengacakan Dataflow memerlukan Apache Beam SDK untuk Python versi 2.1.0 atau yang lebih baru.
Pertimbangan ukuran disk
Ukuran boot disk default untuk setiap tugas batch adalah 25 GB. Untuk beberapa tugas batch, Anda mungkin perlu mengubah ukuran disk. Pertimbangkan hal berikut:
- VM pekerja menggunakan sebagian ruang disk sebesar 25 GB untuk sistem operasi, biner, log, dan container. Tugas yang menggunakan disk dalam jumlah besar dan melampaui kapasitas disk yang tersisa dapat gagal saat Anda menggunakan shuffle Dataflow.
- Tugas yang menggunakan banyak I/O disk mungkin lambat karena performa disk kecil. Untuk mengetahui informasi selengkapnya tentang perbedaan performa antar-ukuran disk, lihat Performa Persistent Disk Compute Engine.
Untuk menentukan ukuran disk yang lebih besar untuk tugas shuffle Dataflow, Anda dapat menggunakan parameter --disk_size_gb
.
Harga
Sebagian besar pengurangan resource worker berasal dari memindahkan tugas shuffle ke layanan Dataflow. Oleh karena itu, ada biaya yang terkait dengan penggunaan pengacakan Dataflow. Waktu eksekusi dapat bervariasi dari satu eksekusi ke eksekusi lainnya. Jika Anda menjalankan pipeline yang memiliki batas waktu penting, sebaiknya alokasikan waktu jeda yang cukup sebelum batas waktu.