Layanan Dataflow sepenuhnya mengelola resource di Google Cloud
berdasarkan per tugas. Hal ini mencakup pengaktifan dan penonaktifan
instance Compute Engine (terkadang disebut sebagai
workers
atau VMs
) dan mengakses bucket
Cloud Storage project Anda untuk staging file sementara dan I/O. 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 kontrol Anda, dan Anda harus memastikan bahwa masa aktif lokasi dipertahankan selama ada tugas yang membaca darinya. 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 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
Perkiraan ukuran payload JSON tugas dengan flag saat ini tidak didukung di Go.
Perintah ini menulis representasi JSON tugas Anda ke file. Ukuran file yang diserialisasi adalah estimasi yang baik untuk ukuran permintaan; ukuran sebenarnya akan sedikit lebih besar karena beberapa informasi tambahan 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 beberapa 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 mengaktifkan 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 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 apa pun secara manual yang terkait dengan tugas Dataflow Anda adalah operasi yang tidak didukung.
Anda dapat menggunakan salah satu 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 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 pekerja. Penagihan tidak bergantung pada kelompok jenis mesin. Anda dapat menentukan jenis mesin untuk pipeline dengan menetapkan parameter eksekusi yang sesuai pada waktu pembuatan pipeline.
Java
Untuk mengubah jenis mesin, tetapkan opsi --workerMachineType
.
Python
Untuk mengubah jenis mesin, tetapkan opsi --worker_machine_type
.
Go
Untuk mengubah jenis mesin, tetapkan 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, baik untuk memulai tugas maupun menskalakan ke jumlah maksimum instance pekerja. Tugas Anda akan gagal dimulai jika tidak ada cukup kuota resource yang tersedia.
Jika tugas Dataflow men-deploy virtual machine 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 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 untuk project Anda. Jika tugas Anda memiliki kuota yang memadai saat dimulai, tetapi tugas lain menggunakan sisa kuota yang tersedia untuk 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 gunakan di konsol Google 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 mengurangi kuota alamat IP eksternal Anda.
Jika VM pekerja Anda tidak memerlukan akses ke internet publik, sebaiknya gunakan alamat IP internal saja, yang tidak mengurangi kuota eksternal Anda. Untuk 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. Ketidakaktifan pekerja dapat disebabkan oleh masalah pengelolaan dependensi. Misalnya, jika pekerja mengalami masalah saat menginstal dependensi untuk image penampung kustom, pekerja tersebut mungkin gagal memulai atau gagal membuat progres. Kurangnya progres dapat menyebabkan tugas gagal. Untuk mempelajari lebih lanjut, lihat:
Resource persistent disk
Layanan Dataflow dibatasi hingga 15 disk persisten per instance pekerja saat menjalankan tugas streaming. Setiap persistent disk bersifat lokal untuk setiap virtual machine Compute Engine. Tugas Anda tidak boleh memiliki lebih banyak pekerja daripada disk persisten; 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
pada 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 untuk otomatis memilih zona terbaik dalam
region berdasarkan kapasitas zona yang tersedia pada saat permintaan pembuatan
tugas. Untuk informasi selengkapnya, lihat dokumentasi region Dataflow.