Layanan Dataflow mengelola sepenuhnya resource di Google Cloud per tugas. Hal ini termasuk mengaktifkan dan menonaktifkan instance Compute Engine (terkadang disebut sebagai workers
atau VMs
) dan mengakses bucket Cloud Storage project untuk I/O dan staging file sementara. Namun, jika pipeline Anda berinteraksi dengan teknologi penyimpanan
data Google Cloud seperti BigQuery dan
Pub/Sub, Anda harus mengelola resource dan kuota untuk
layanan tersebut.
Dataflow menggunakan lokasi yang disediakan pengguna di Cloud Storage khusus untuk file staging. Lokasi ini berada di bawah kendali Anda, dan Anda harus memastikan bahwa masa aktif lokasi dipertahankan selama tugas apa pun membaca dari lokasi tersebut. Anda dapat menggunakan kembali lokasi staging yang sama untuk beberapa tugas yang dijalankan, karena cache 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 Dukungan Google Cloud. Untuk mengetahui informasi selengkapnya, lihat Kuota.
Layanan Dataflow saat ini dibatasi untuk memproses permintaan tugas JSON yang berukuran 20 MB atau lebih kecil. Ukuran permintaan tugas secara khusus terikat dengan representasi JSON dari 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 sebuah flag saat ini tidak didukung di Go.
Perintah ini menulis representasi JSON dari tugas Anda ke file. Ukuran file yang diserialisasi adalah perkiraan yang bagus 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 "Entitas Permintaan 413 Terlalu Besar" / "Ukuran representasi JSON yang diserialisasi dari pipeline melebihi batas yang diizinkan".
Selain itu, ukuran grafik tugas Anda tidak boleh lebih dari 10 MB. Untuk 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
defaultnya adalah n1-standard-1
. Untuk tugas streaming, jenis mesin default untuk tugas
yang diaktifkan Streaming Engine adalah n1-standard-2
dan jenis mesin
default untuk tugas non-Streaming Engine adalah n1-standard-4
. Saat menggunakan jenis mesin default, layanan Dataflow dapat mengalokasikan hingga 4.000 core per tugas. Jika memerlukan lebih banyak core untuk tugas Anda, pilih
jenis mesin yang lebih besar.
Anda tidak boleh mencoba mengelola atau berinteraksi langsung dengan Grup Instance yang Dikelola Compute Engine. Layanan Dataflow akan menanganinya untuk Anda. Mengubah resource Compute Engine secara manual yang terkait dengan tugas Dataflow adalah operasi yang tidak didukung.
Anda dapat menggunakan salah satu kelompok jenis mesin Compute Engine yang tersedia serta jenis mesin kustom. Untuk hasil terbaik, gunakan jenis mesin n1
. Jenis mesin 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 yang diperluas. 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 memerlukan banyak memori, jenis mesin kustom dengan memori
yang diperluas dapat memberikan lebih banyak memori per thread pekerja. Untuk mengetahui informasi selengkapnya, baca Membuat instance VM kustom.
Dataflow mengenakan biaya berdasarkan jumlah vCPU dan GB memori dalam pekerja. Penagihan tidak bergantung pada kelompok jenis mesin. Anda dapat menentukan jenis mesin untuk pipeline Anda dengan menyetel parameter eksekusi yang sesuai pada waktu 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 melakukan pemeriksaan untuk memastikan bahwa project Google Cloud Anda memiliki kuota resource Compute Engine yang diperlukan untuk menjalankan tugas, baik untuk memulai tugas maupun untuk memulai tugas hingga jumlah maksimum instance worker. Tugas Anda akan gagal dimulai jika kuota resource yang tersedia tidak cukup.
Jika tugas Dataflow men-deploy mesin virtual Compute Engine sebagai Grup Instance Terkelola, Anda harus memastikan project 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 Grup Instance Terkelola tugas Dataflow secara manual tidak direkomendasikan atau didukung. Sebagai gantinya, gunakan opsi konfigurasi pipeline Dataflow.
Fitur Penskalaan Otomatis Horizontal Dataflow dibatasi oleh kuota Compute Engine yang tersedia di project Anda. Jika tugas Anda memiliki kuota yang cukup saat dimulai, tetapi tugas lain menggunakan sisa kuota project yang tersedia, tugas pertama akan berjalan, tetapi tidak dapat diskalakan sepenuhnya.
Namun, layanan Dataflow tidak mengelola peningkatan kuota untuk tugas yang melebihi kuota resource di project Anda. Anda bertanggung jawab untuk membuat permintaan yang diperlukan untuk kuota resource tambahan, sehingga Anda dapat menggunakan Google Cloud Console.
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 mengurangi kuota alamat IP eksternal Anda.
Jika VM pekerja Anda tidak memerlukan akses ke internet publik, pertimbangkan untuk hanya menggunakan alamat IP internal, yang tidak mengurangi kuota eksternal Anda. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi alamat IP, lihat referensi berikut:
Pekerja tidak aktif
Jika pekerja untuk tugas tertentu tidak menunjukkan aktivitas yang memadai selama periode satu jam, tugas akan gagal. Ketidakaktifan pekerja dapat disebabkan oleh masalah pengelolaan dependensi. Misalnya, jika pekerja mengalami masalah saat menginstal dependensi untuk image container kustom, pekerja mungkin akan gagal dimulai atau gagal membuat progres. Kurangnya kemajuan dapat menyebabkan pekerjaan gagal. Untuk mempelajari lebih lanjut, lihat:
- Memecahkan masalah container kustom di Dataflow
- Terjadi error saat menyinkronkan pod ... gagal ke "StartContainer"
Resource persistent disk
Layanan Dataflow dibatasi hingga 15 persistent disk per instance pekerja saat menjalankan tugas streaming. Setiap persistent disk bersifat lokal untuk virtual machine Compute Engine individual. Tugas Anda mungkin tidak memiliki pekerja lebih banyak daripada persistent disk; rasio 1:1 antara pekerja dan disk adalah alokasi resource minimum.
Tugas yang menggunakan Streaming Engine menggunakan disk booting 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 specifying
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 tersebut tidak ditentukan. Hal ini memungkinkan layanan Dataflow untuk otomatis memilih zona terbaik dalam region berdasarkan kapasitas zona yang tersedia pada saat permintaan pembuatan tugas. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Region Dataflow.