本文列出 Dataflow 適用的配額和系統限制。
- 配額會指定您可使用的可計數共用資源數量。配額是由 Dataflow 等 Google Cloud 服務定義。
- 系統限制是無法變更的固定值。
Google Cloud 會使用配額來確保公平性,並減少資源使用量和可用性暴增的情況。配額會限制專案可使用的Google Cloud 資源 Google Cloud 數量。配額適用於各種資源類型,包括硬體、軟體和網路元件。舉例來說,配額可以限制對服務發出的 API 呼叫數、專案並行使用的負載平衡器數量,或是可建立的專案數量。配額可以預防服務過載,進而保障Google Cloud 使用者社群的權益。配額也能協助您管理自己的 Google Cloud 資源。
Cloud Quotas 系統會執行下列操作:
在大多數情況下,如果您嘗試使用的資源超過配額,系統會封鎖資源存取權,導致您嘗試執行的工作失敗。
配額通常是在 Google Cloud 專案 層級套用。在一個專案中使用資源,不會影響另一個專案的可用配額。在 Google Cloud 專案中,所有應用程式和 IP 位址會共用配額。
如要調整大部分配額,請使用 Google Cloud 控制台。 詳情請參閱「要求調整配額」。
Dataflow 資源也有系統限制。 系統限制無法變更。
Dataflow 代管服務的配額和限制如下:
- 每個 Google Cloud 專案每分鐘最多可提出 300 萬個要求。
- 每項 Dataflow 工作最多可使用 2,000 個 Compute Engine 執行個體。 如未指定工作站區域,使用 Streaming Engine 的每項串流工作,或使用服務型 Dataflow Shuffle 的每項批次工作,最多可使用 4,000 個 Compute Engine 執行個體。
- 根據預設,每個 Google Cloud 專案最多可執行 25 個並行的 Dataflow 工作。
- 每個 Dataflow 工作站都有記錄輸出上限,不得超過時間間隔。如要瞭解確切限制,請參閱記錄說明文件。
- 如果您選擇採用機構層級配額,每個機構預設最多可執行 125 項並行 Dataflow 工作。
- 每位使用者每分鐘最多可提出 15,000 個監控要求。
- 每位使用者每分鐘最多可提出 60 個工作建立要求。
- 每位使用者每分鐘最多可提出 60 個工作範本要求。
- 每位使用者每分鐘最多可提出 60 個工作更新要求。
- 每項 Google Cloud 專案在各個地區可取得下列數量的重組運算單元:
- asia-east1:48 個運算單元
- asia-northeast1:24 個運算單元
- asia-northeast3:32 個運算單元
- asia-south1:64 個運算單元
- asia-southeast1:64 個運算單元
- australia-southeast1:24 個運算單元
- europe-west1:640 個運算單元
- europe-west2:32 個運算單元
- europe-west3:40 個運算單元
- europe-west4:640 個運算單元
- northamerica-northeast1:512 個運算單元
- us-central1:640 個運算單元
- us-east1:640 個運算單元
- us-east4:64 個運算單元
- us-west1:384 個運算單元
- us-west2:24 個運算單元
- us-west3:24 個運算單元
- 其他:16 個運算單元
- Dataflow 批次工作會在 10 天後取消。
Compute Engine 配額
當您在 Dataflow 服務上執行管道時,Dataflow 會建立 Compute Engine 執行個體,以執行管道程式碼。
Compute Engine 配額因區域而異,請查看專案的 Compute Engine 配額,並根據需求要求調整下列項目:
- CPU:在下列區域中,Dataflow 的預設機器類型有四種,
n1-standard-1
用於批次工作,n1-standard-2
用於使用 Streaming Engine 的工作,n1-standard-4
用於不使用 Streaming Engine 的串流工作,n1-standard-2
則用於使用彈性資源排程 (FlexRS) 的工作。FlexRS 使用先占 VM 和一般 VM 的比例為 90% 與 10%。asia-east1
asia-east2
asia-northeast1
asia-northeast2
asia-northeast3
asia-south1
asia-south2
asia-southeast1
asia-southeast2
australia-southeast1
australia-southeast2
europe-central2
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west5
europe-west6
northamerica-northeast1
northamerica-northeast2
southamerica-east1
us-central1
us-central2
us-east1
us-east4
us-west1
us-west2
us-west3
us-west4
在其他區域,批次工作的預設機器類型為
e2-standard-2
,使用 Streaming Engine 的工作為e2-standard-2
,不使用 Streaming Engine 的串流工作為e2-standard-4
,使用 FlexRS 的工作為e2-standard-2
。Compute Engine 會將每個執行個體的 CPU 總數加總,藉此計算 CPU 的數量。舉例來說,如果您使用了 10 個
n1-standard-4
執行個體,系統計算的 CPU 總數就會是 40 個。如要瞭解各個機器類型使用的 CPU 數量,請參閱 Compute Engine 機器類型。 - 使用中的 IP 位址:一項專案必須有足量的 IP 位址處於「使用中」狀態,才能應付所需的執行個體數量。 舉例來說,如要使用 10 個 Compute Engine 執行個體,您必須有 10 個使用中的 IP 位址。
- Persistent Disk:Dataflow 會將 Persistent Disk 連接至各個執行個體。
- 用來處理批次管道的預設磁碟大小為 250 GB,而用來處理串流管道的預設磁碟大小則為 400 GB。根據預設,如果您使用了 10 個執行個體,就會需要 2,500 GB 的 Persistent Disk 進行批次處理工作。
- 用來處理 Dataflow Shuffle 批次管道的預設磁碟大小是 25 GB。
- 用來處理 Streaming Engine 串流管道的預設磁碟大小是 30 GB。
- Dataflow 服務目前執行串流工作時,限制每個工作站執行個體只能使用 15 個永久磁碟。每個永久磁碟都是各 Compute Engine 虛擬機器的本機。工作站和磁碟的資源配額比例至少要 1:1。
- Compute Engine 使用量是取工作站的平均值,永久磁碟使用量則是取
--maxNumWorkers
的確切值。系統會重新分配永久磁碟,使每個工作站都有相同數量的連接磁碟。
- 區域代管執行個體群組:Dataflow 會將 Compute Engine 執行個體部署為區域代管執行個體群組。您必須確保自己擁有下列相關配額可使用:
- 每項 Dataflow 工作一個執行個體群組
- 每項 Dataflow 工作一個執行個體範本
- 每項 Dataflow 工作一個區域代管執行個體群組
- 如果串流工作缺少代管執行個體群組超過 7 天,系統會取消該工作。
- 如果批次作業的代管執行個體群組遺失超過 1 小時,系統會取消作業。
額外配額
視您使用的來源和接收器而定,您可能會需要額外的配額。
- Pub/Sub:如果您使用的是 Pub/Sub,可能就需要額外的配額。在規劃配額時請務必留意,來自 Pub/Sub 的每則訊息都需要 3 項作業加以處理。如果您使用自訂時間戳記,則預期的作業數量應增加一倍,因為 Dataflow 會建立獨立的訂閱項目,以追蹤自訂時間戳記。
- BigQuery:如果您使用的是 BigQuery 的串流 API,則適用相關的配額規定和其他限制。
尋找及提高配額
如要檢查 Dataflow 配額的目前使用情況,請按照下列步驟操作:
- 在 Google Cloud 控制台中,前往「API 和服務」頁面。
前往「API 和服務」頁面 - 如要檢查目前的 Shuffle 運算單元配額使用情況,請在「配額」分頁中,找出表格中的「Shuffle 運算單元」列,然後在「用量圖表」欄中,按一下「顯示用量圖表」。
如要提高工作配額,請與Google Cloud 支援團隊聯絡,我們會視您的需求提高配額。預設配額為專案 25 項並行 Dataflow 工作,或機構 125 項並行 Dataflow 工作。
另外,您也可以提交支援要求,指定專案中所有工作所需的並行重組資料集大小上限,藉此提高批次工作的重組運算單元配額。在要求更多的重組配額之前,請先使用 Dataflow Shuffle 執行管道,並檢查實際的重組配額使用情況。
如要執行串流工作,您可以提交支援要求給 Google Cloud Platform 支援團隊,要求提高 Streaming Engine 總處理量。請在要求中針對執行工作的每個地區,指定每分鐘要在工作站間重組的最大資料量。
Dataflow 服務也會使用多種 Google Cloud元件,例如 BigQuery、Cloud Storage、Pub/Sub 和 Compute Engine。這些產品和其他 Google Cloud服務都有配額上限,您在一項專案中可使用的資源數會受到這類規定的限制。使用 Dataflow 時,您可能必須調整這些服務的配額設定。
Dataflow Prime
Dataflow 和 Dataflow Prime 的配額和限制相同。如果您有 Dataflow 配額,則使用 Dataflow Prime 執行工作時,不需要額外配額。
限制
本節將說明 Dataflow 的實際工作環境限制。
限制 | 限額 |
---|---|
每個管道的工作站數量上限。 | 2,000 |
工作建立要求的大小上限。如果管道說明的步驟繁多且名稱複雜,就有可能會達到這個限制。 | 10 MB |
範本啟動要求的大小上限。 | 1 MB |
側邊輸入資料分割的數量上限。 | 20,000 |
單一元素的大小上限 (除非適用更嚴格的條件,例如 Streaming Engine)。 | 2 GB |
批次管道中的索引鍵大小上限。 | 1.5 MB |
每個工作站在特定時間範圍內的記錄項目數量上限。 | 每 30 秒 15,000 則訊息 |
每個專案的自訂指標數量上限。 | 100 |
建議的儲存時間長度。 | 30 天 |
Streaming Engine 限制 | 金額 |
---|---|
Pub/Sub 訊息的位元組數上限。 | 7 MB |
單一元素值的大小上限。 | 80 MB |
大型金鑰的大小上限。金鑰超過 64 KB 會導致效能下降。 | 2 MB |
側邊輸入的大小上限。 | 80 MB |
TagValue 和 TagBag 使用的狀態標記長度上限。 |
64 KB |