Dataflow Shuffle adalah operasi dasar di balik transformasi Dataflow, seperti GroupByKey
, CoGroupByKey
, dan Combine
. Operasi Dataflow Shuffle mempartisi dan mengelompokkan data berdasarkan kunci dengan cara yang skalabel, efisien, dan fault-tolerant. Fitur Dataflow Shuffle, yang hanya tersedia untuk pipeline batch, memindahkan operasi acak dari VM pekerja ke backend layanan Dataflow.
Tugas batch menggunakan Dataflow Shuffle secara default.
Manfaat Dataflow Shuffle
Dataflow Shuffle 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 terpakai pada VM pekerja.
- Penskalaan Horizontal yang lebih baik karena VM tidak menyimpan data acak apa pun sehingga dapat diperkecil skalanya lebih awal.
- Toleransi fault yang lebih baik; VM yang tidak responsif yang menyimpan data Dataflow Shuffle tidak akan menyebabkan seluruh tugas gagal, seperti yang akan terjadi jika tidak menggunakan fitur ini.
Sebagian besar pengurangan resource worker berasal dari pemindahan tugas acak ke layanan Dataflow. Oleh karena itu, ada biaya terkait penggunaan Dataflow Shuffle. Waktu eksekusi dapat bervariasi antara satu per satu dan lainnya. Jika Anda menjalankan pipeline yang memiliki batas waktu penting, sebaiknya alokasikan waktu buffer yang memadai sebelum batas waktu.
Menggunakan Dataflow Shuffle
Fitur ini tersedia di semua region tempat Dataflow didukung. Untuk melihat lokasi yang tersedia, baca Lokasi Dataflow. Jika Anda menggunakan Dataflow Shuffle, pekerja harus di-deploy di region yang sama dengan tugas Dataflow.
Java
Jika Anda menggunakan Dataflow Shuffle untuk pipeline Anda, jangan tentukan opsi pipeline zone
. Sebagai gantinya, tentukan region
dan tetapkan nilai ke salah satu region yang tersedia. Dataflow memilih secara otomatis zona di region yang Anda tentukan. Jika Anda menentukan opsi pipeline zone
dan menetapkannya ke zona di luar region yang tersedia, Dataflow akan melaporkan error. Jika Anda menetapkan kombinasi region
dan zone
yang tidak kompatibel, tugas Anda tidak dapat menggunakan Dataflow Shuffle.
Python
Jika Anda menggunakan Dataflow Shuffle untuk pipeline Anda, jangan tentukan opsi pipeline zone
. Sebagai gantinya, tentukan region
dan tetapkan nilai ke salah satu region yang tersedia. Dataflow memilih secara otomatis zona di region yang Anda tentukan. Jika Anda menentukan opsi pipeline zone
dan menetapkannya ke zona di luar region yang tersedia, Dataflow akan melaporkan error. Jika Anda menetapkan kombinasi region
dan zone
yang tidak kompatibel, tugas Anda tidak dapat menggunakan Dataflow Shuffle.
Go
Jika Anda menggunakan Dataflow Shuffle untuk pipeline Anda, jangan tentukan opsi pipeline zone
. Sebagai gantinya, tentukan region
dan tetapkan nilai ke salah satu region yang tersedia. Dataflow memilih secara otomatis zona di region yang Anda tentukan. Jika Anda menentukan opsi pipeline zone
dan menetapkannya ke zona di luar region yang tersedia, Dataflow akan melaporkan error. Jika Anda menetapkan kombinasi region
dan zone
yang tidak kompatibel, tugas Anda tidak dapat menggunakan Dataflow Shuffle.
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 dari ruang disk sebesar 25 GB untuk sistem operasi, biner, log, dan container. Tugas yang menggunakan banyak disk dan melebihi kapasitas disk yang tersisa dapat gagal saat Anda menggunakan Dataflow Shuffle.
- Tugas yang menggunakan banyak I/O disk dapat berjalan 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 Dataflow Shuffle, Anda dapat menggunakan parameter --disk_size_gb
.