Layanan Dataflow mengelola resource sepenuhnya di Google Cloud
berdasarkan per tugas. Hal ini mencakup memulai dan menghentikan instance
Compute Engine (terkadang disebut sebagai
workers
atau VMs
) dan mengakses bucket
Cloud Storage project Anda untuk penahapan I/O dan file sementara. Namun, jika pipeline Anda berinteraksi dengan teknologi penyimpanan data seperti BigQuery dan Pub/Sub, Anda harus mengelola resource dan kuota untuk layanan tersebut. Google Cloud
Dataflow menggunakan lokasi yang disediakan pengguna di Cloud Storage khusus untuk file staging. Lokasi ini berada di bawah kendali Anda, dan Anda harus memastikan masa aktif lokasi dipertahankan selama ada tugas yang membacanya. Anda dapat menggunakan kembali lokasi penyiapan yang sama untuk beberapa eksekusi tugas, karena caching bawaan SDK dapat mempercepat waktu mulai tugas Anda.
Pekerjaan
Anda dapat menjalankan hingga 25 tugas Dataflow serentak per project Google Cloud ; namun, batas ini dapat ditingkatkan dengan menghubungi Google Cloud Dukungan. Untuk mengetahui informasi selengkapnya, lihat Kuota.
Layanan Dataflow saat ini terbatas untuk memproses permintaan tugas JSON yang berukuran 20 MB atau lebih kecil. Ukuran permintaan tugas secara khusus terkait dengan representasi JSON pipeline Anda; pipeline yang lebih besar berarti permintaan yang lebih besar.
Untuk memperkirakan ukuran permintaan JSON pipeline, jalankan pipeline dengan opsi berikut:
Java
--dataflowJobFile=<path to output file>
Python
--dataflow_job_file=<path to output file>
Go
Saat ini, memperkirakan ukuran payload JSON tugas dengan tanda tidak didukung di Go.
Perintah ini menulis representasi JSON tugas Anda ke file. Ukuran file yang diserialisasi adalah perkiraan yang baik untuk ukuran permintaan; ukuran sebenarnya akan sedikit lebih besar karena beberapa informasi tambahan yang disertakan dalam permintaan.
Untuk mengetahui informasi selengkapnya, lihat halaman pemecahan masalah untuk "413 Request Entity Too Large" / "The size of serialized JSON representation of the pipeline exceeds the allowable limit".
Selain itu, ukuran grafik tugas Anda tidak boleh melebihi 10 MB. Untuk mengetahui informasi selengkapnya, lihat halaman pemecahan masalah untuk "Grafik tugas terlalu besar. Coba lagi dengan grafik tugas yang lebih kecil, atau bagi tugas Anda menjadi dua atau lebih tugas yang lebih kecil.".
Pekerja
Layanan Dataflow saat ini mengizinkan maksimum 1.000
instance Compute Engine per tugas. Untuk tugas batch, jenis mesin default adalah n1-standard-1
. Untuk tugas streaming, jenis mesin default untuk tugas yang kompatibel dengan Streaming Engine adalah n1-standard-2
dan jenis mesin default untuk tugas non-Streaming Engine adalah n1-standard-4
. Oleh karena itu, saat menggunakan jenis mesin default, layanan Dataflow dapat mengalokasikan hingga 4.000 core per tugas. Jika Anda memerlukan lebih banyak core untuk tugas, Anda dapat memilih
jenis mesin yang lebih besar.
Anda tidak boleh mencoba mengelola atau berinteraksi langsung dengan Grup Instance Terkelola Compute Engine; layanan Dataflow akan menanganinya untuk Anda. Mengubah resource Compute Engine yang terkait dengan tugas Dataflow Anda secara manual adalah operasi yang tidak didukung.
Anda dapat menggunakan keluarga jenis mesin Compute Engine yang tersedia serta jenis mesin kustom. Untuk hasil terbaik, gunakan jenis mesin n1
. Jenis mesin dengan inti bersama, seperti pekerja seri f1
dan g1
, tidak didukung berdasarkan Perjanjian Tingkat Layanan Dataflow.
Untuk mengalokasikan memori tambahan per thread pekerja, gunakan jenis mesin kustom dengan memori tambahan. Misalnya, custom-2-15360-ext
adalah jenis mesin n1
dengan
2 CPU dan memori 15 GB. Dataflow mempertimbangkan jumlah CPU
dalam mesin untuk menentukan jumlah thread pekerja per VM pekerja. Jika pipeline Anda memproses pekerjaan yang sarat memori, jenis mesin kustom dengan memori yang diperluas dapat memberikan lebih banyak memori per thread pekerja. Untuk mengetahui informasi selengkapnya, lihat Membuat instance VM kustom.
Dataflow menagih berdasarkan jumlah vCPU dan GB memori di worker. Penagihan tidak bergantung pada kelompok jenis mesin. Anda dapat menentukan jenis mesin untuk pipeline dengan menetapkan parameter eksekusi yang sesuai pada saat pembuatan pipeline.
Java
Untuk mengubah jenis mesin, setel opsi --workerMachineType
.
Python
Untuk mengubah jenis mesin, setel opsi --worker_machine_type
.
Go
Untuk mengubah jenis mesin, setel opsi ‑‑worker_machine_type
.
Kuota resource
Layanan Dataflow memeriksa untuk memastikan bahwa project Anda memiliki kuota resource Compute Engine yang diperlukan untuk menjalankan tugas Anda, baik untuk memulai tugas maupun menskalakan ke jumlah maksimum instance pekerja. Google CloudTugas Anda tidak akan dapat dimulai jika kuota resource yang tersedia tidak mencukupi.
Jika tugas Dataflow Anda men-deploy mesin virtual Compute Engine sebagai Grup Instance Terkelola, Anda harus memastikan project Anda memenuhi beberapa persyaratan kuota tambahan. Secara khusus, project Anda akan memerlukan salah satu jenis kuota berikut untuk setiap tugas Dataflow serentak yang ingin Anda jalankan:
- Satu Grup Instance per tugas
- Satu Grup Instance Terkelola per tugas
- Satu Template Instance per tugas
Perhatian: Mengubah Template Instance atau Managed Instance Group tugas Dataflow Anda secara manual tidak direkomendasikan atau didukung. Gunakan opsi konfigurasi pipeline Dataflow.
Fitur Penskalaan Otomatis Horizontal Dataflow dibatasi oleh kuota Compute Engine yang tersedia untuk project Anda. Jika tugas Anda memiliki kuota yang cukup saat dimulai, tetapi tugas lain menggunakan sisa kuota yang tersedia di project Anda, tugas pertama akan berjalan, tetapi tidak dapat diskalakan sepenuhnya.
Namun, layanan Dataflow tidak mengelola peningkatan kuota untuk tugas yang melebihi kuota resource dalam project Anda. Anda bertanggung jawab untuk membuat permintaan yang diperlukan untuk kuota resource tambahan, yang dapat Anda lakukan menggunakan konsolGoogle Cloud .
Alamat IP
Secara default, Dataflow menetapkan alamat IP publik dan pribadi ke VM pekerja. Alamat IP publik memenuhi salah satu kriteria untuk akses internet, tetapi alamat IP publik juga dihitung dalam kuota alamat IP eksternal Anda.
Jika VM pekerja Anda tidak memerlukan akses ke internet publik, pertimbangkan untuk hanya menggunakan alamat IP internal, yang tidak dihitung dalam kuota eksternal Anda. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi alamat IP, lihat referensi berikut:
Pekerja yang tidak aktif
Jika pekerja untuk tugas tertentu tidak menunjukkan aktivitas yang cukup selama periode satu jam, tugas akan gagal. Tidak aktifnya pekerja dapat disebabkan oleh masalah pengelolaan dependensi. Misalnya, jika pekerja mengalami masalah saat menginstal dependensi untuk image container kustom, pekerja mungkin gagal dimulai atau gagal melanjutkan proses. Kurangnya progres kemudian dapat menyebabkan tugas gagal. Untuk mempelajari lebih lanjut, lihat:
Resource persistent disk
Layanan Dataflow dibatasi hingga 15 persistent disk per instance pekerja saat menjalankan tugas streaming. Setiap persistent disk bersifat lokal untuk setiap virtual machine Compute Engine. Tugas Anda mungkin tidak memiliki lebih banyak worker daripada persistent disk; rasio 1:1 antara worker dan disk adalah alokasi resource minimum.
Tugas yang menggunakan Streaming Engine menggunakan disk boot 30 GB. Tugas yang menggunakan Dataflow Shuffle menggunakan disk booting 25 GB. Untuk tugas yang tidak menggunakan penawaran ini, ukuran default setiap persistent disk adalah 250 GB dalam mode batch dan 400 GB dalam mode streaming.
Lokasi
Secara default, layanan Dataflow men-deploy resource Compute Engine di zona us-central1-f
dari region us-central1
. Anda dapat
mengganti setelan ini dengan menentukan
parameter --region
. Jika Anda perlu menggunakan zona tertentu untuk resource,
gunakan parameter --zone
saat membuat pipeline. Namun, sebaiknya
Anda hanya menentukan region, dan membiarkan zona tidak ditentukan. Hal ini memungkinkan
layanan Dataflow secara otomatis memilih zona terbaik dalam
region berdasarkan kapasitas zona yang tersedia pada saat permintaan pembuatan
tugas. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Wilayah Dataflow.