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.
Saat ini, layanan Dataflow hanya dapat memproses permintaan tugas JSON 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 Anda, jalankan pipeline dengan opsi berikut:
Java
--dataflowJobFile=<path to output file>
Python
--dataflow_job_file=<path to output file>
Go
Memperkirakan ukuran payload JSON tugas dengan tanda saat ini 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 mengizinkan maksimum 1.000 instance Compute Engine per tugas. Untuk tugas batch, jenis mesin default adalah jenis mesin 1 vCPU. Untuk tugas streaming, jenis mesin default untuk tugas yang kompatibel dengan Streaming Engine adalah jenis mesin 2 vCPU dan jenis mesin default untuk tugas non-Streaming Engine adalah jenis mesin 4 vCPU. Jika membutuhkan 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 kelompok jenis mesin Compute Engine yang tersedia serta jenis mesin kustom. Untuk hasil terbaik, gunakan kelompok jenis mesin modern, seperti N4 atau N2. 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, jenis mesin kustom dengan 2 vCPU dan memori 15 GB dapat menyediakan lebih banyak memori per thread pekerja. Dataflow mempertimbangkan jumlah CPU dalam mesin untuk menentukan jumlah thread worker per VM worker. Jika pipeline Anda memproses pekerjaan yang membutuhkan banyak memori, jenis mesin kustom dengan memori tambahan 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 Google Cloud Anda memiliki kuota resource Compute Engine yang diperlukan untuk menjalankan tugas Anda, baik untuk memulai tugas maupun menskalakan ke jumlah maksimum instance pekerja. Tugas Anda akan gagal dimulai jika kuota resource yang tersedia tidak mencukupi.
Jika tugas Dataflow Anda men-deploy mesin virtual Compute Engine sebagai Managed Instance Group, 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 sebagai gantinya.
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 menskalakan 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 terhadap 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 memadai 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 memulai atau gagal membuat progres. Kurangnya progres kemudian dapat menyebabkan tugas gagal. Untuk mempelajari lebih lanjut, lihat:
Resource persistent disk
Layanan Dataflow dibatasi hingga 15 persistent disk per instance worker 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 boot disk 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 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.