The Cloud Dataflow managed service has the following quota limits:
- Each user can make up to 3,000,000 requests per minute.
- Each Cloud Dataflow job can use a maximum of 1,000 Compute Engine instances.
- Each Google Cloud Platform project can run 100 concurrent Cloud Dataflow jobs.
- If you opt-in to organization level quotas, each organization can run 125 concurrent Cloud Dataflow jobs.
- Each user can make up to 15,000 monitoring requests per minute.
- Each Google Cloud Platform project gets 160 Shuffle slots, which are sufficient to shuffle approximately 50 TB of data concurrently.
- Each Google Cloud Platform project gets 60 GB per minute per cloud region of Streaming Engine throughput to send data between Compute Engine instances and Streaming Engine.
You can check your current usage of Cloud Dataflow-specific quota:
- In the Google Cloud Platform Console, go to the APIs & services.
Go to API & Services
- Click Dashboard.
- Click Dataflow API.
- Click Quotas.
For example, to check your current Shuffle slots quota usage, find the Shuffle slots chart on the Quotas page.
The Cloud Dataflow service exercises various components of the GCP, such as BigQuery, Cloud Storage, Cloud Pub/Sub, and Compute Engine. These (and other GCP services) employ quotas to cap the maximum number of resources you can use within a project. When you use Cloud Dataflow, you might need to adjust your quota settings for these services.
Compute Engine quotas
When you run your pipeline on the Cloud Dataflow service, Cloud Dataflow creates Compute Engine instances to run your pipeline code.
- CPUs: The default machine types for Cloud Dataflow are
n1-standard-1for batch and
n1-standard-4for streaming. FlexRS uses
n1-standard-2machines by default. During the beta release, FlexRS uses 90% preemptible VMs and 10% regular VMs. Compute Engine calculates the number of CPUs by summing each instance’s total CPU count. For example, running 10
n1-standard-4instances counts as 40 CPUs. See Compute Engine machine types for a mapping of machine types to CPU count.
- In-Use IP Addresses: The number of in-use IP addresses in your project must be sufficient to accommodate the desired number of instances. To use 10 Compute Engine instances, you'll need 10 in-use IP addresses.
- Persistent Disk: Cloud Dataflow attaches Persistent Disk
to each instance.
- The default disk size is 250 GB for batch and 420 GB for streaming pipelines. For 10 instances, by default you need 2,500 GB of Persistent Disk for a batch job.
- The default disk size is 25 GB for Cloud Dataflow Shuffle batch pipelines.
- The default disk size is 30 GB for Streaming Engine streaming pipelines.
- Managed Instance Groups: Cloud Dataflow deploys your
Compute Engine instances as a Managed Instance Group. You'll need
to ensure you have the following related quota available:
- One Instance Group per Cloud Dataflow job
- One Managed Instance Group per Cloud Dataflow job
- One Instance Template per Cloud Dataflow job
Depending on which sources and sinks you are using, you might also need additional quota.
- Cloud Pub/Sub: If you are using Cloud Pub/Sub, you might need additional quota. When planning for quota, note that processing 1 message from Cloud Pub/Sub involves 3 operations. If you use custom timestamps, you should double your expected number of operations, since Cloud Dataflow will create a separate subscription to track custom timestamps.
- BigQuery: If you are using the streaming API for BigQuery, quota limits and other restrictions apply.
This section describes practical production limits for Cloud Dataflow.
|Maximum number of workers per pipeline.||1,000|
|Maximum size for a job creation request. Pipeline descriptions with a lot of steps and very verbose names may hit this limit.||10 MB|
|Maximum number of side input shards.||20,000|
|Maximum size for a single element value in Streaming Engine.||100 MB|