配額與限制

本文列出 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 個運算單元
    16 個運算單元足以並行重組10 TB 的資料
  • 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 小時,系統會取消作業。

額外配額

視您使用的來源和接收器而定,您可能會需要額外的配額。

  1. Pub/Sub:如果您使用的是 Pub/Sub,可能就需要額外的配額。在規劃配額時請務必留意,來自 Pub/Sub 的每則訊息都需要 3 項作業加以處理。如果您使用自訂時間戳記,則預期的作業數量應增加一倍,因為 Dataflow 會建立獨立的訂閱項目,以追蹤自訂時間戳記。
  2. BigQuery:如果您使用的是 BigQuery 的串流 API,則適用相關的配額規定和其他限制

尋找及提高配額

如要檢查 Dataflow 配額的目前使用情況,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「API 和服務」頁面。
    前往「API 和服務」頁面
  2. 如要檢查目前的 Shuffle 運算單元配額使用情況,請在「配額」分頁中,找出表格中的「Shuffle 運算單元」列,然後在「用量圖表」欄中,按一下「顯示用量圖表」

如要提高工作配額,請與Google Cloud 支援團隊聯絡,我們會視您的需求提高配額。預設配額為專案 25 項並行 Dataflow 工作,或機構 125 項並行 Dataflow 工作。

另外,您也可以提交支援要求,指定專案中所有工作所需的並行重組資料集大小上限,藉此提高批次工作的重組運算單元配額。在要求更多的重組配額之前,請先使用 Dataflow Shuffle 執行管道,並檢查實際的重組配額使用情況。

如要執行串流工作,您可以提交支援要求給 Google Cloud Platform 支援團隊,要求提高 Streaming Engine 總處理量。請在要求中針對執行工作的每個地區,指定每分鐘要在工作站間重組的最大資料量。

Dataflow 服務也會使用多種 Google Cloud元件,例如 BigQueryCloud StoragePub/SubCompute 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
TagValueTagBag 使用的狀態標記長度上限。 64 KB