要求配額

Dataflow 服務會以工作為基礎,全面管理 Google Cloud中的資源。包括啟動和關閉 Compute Engine 執行個體 (有時稱為「工作站」workers或「VM」VMs),以及存取專案的 Cloud Storage 值區進行 I/O 和檔案暫存作業。不過,如果您的管道需要與 Google Cloud 資料儲存技術 (例如 BigQueryPub/Sub) 互動,您就必須自行管理這些服務的資源和配額。

Dataflow 會使用 Cloud Storage 中專門留給暫存檔案的使用者提供位置。這個位置由您控管,您應確保位置的生命週期能持續到在其中讀取資料的所有工作結束為止。您可以讓多個執行工作重複使用相同的暫存位置,因為 SDK 內建的快取功能可加速工作的開始時間。

工作

每個 Google Cloud 專案最多可執行 25 項並行 Dataflow 工作,但如要提高這項限制,請與Google Cloud 支援團隊聯絡。詳情請參閱「配額」。

Dataflow 服務目前只能處理大小不超過 20 MB 的 JSON 工作要求。工作要求大小具體上與管道的 JSON 表示法相關;管道越大代表要求越大。

如要估算管道的 JSON 要求大小,請使用下列選項執行管道:

Java

--dataflowJobFile=<path to output file>

Python

--dataflow_job_file=<path to output file>

Go

Go 目前不支援使用旗標估算工作的 JSON 酬載大小。

這個指令會將您工作的 JSON 表示法寫入檔案。您可以輕鬆從序列化檔案大小來預估要求大小;不過這些要求實際上會比預估的更大一點,因為其中隨附一些額外資訊。

詳情請參閱「413 要求實體過大」/「管道的序列化 JSON 表示法大小超過允許的上限」中的疑難排解頁面。

此外,工作的圖形大小不可超過 10 MB。詳情請參閱疑難排解頁面上的「工作圖表過大。請使用較小的工作圖形再試一次,或將工作分割為兩個或多個較小的工作。」部分。

工作站

Dataflow 服務目前可讓每個工作使用最多「1000 個 Compute Engine 執行個體」。批次工作的預設機器類型為 n1-standard-1。如果是串流工作,啟用 Streaming Engine 的工作預設機器類型為 n1-standard-2非 Streaming Engine 工作的預設機器類型則為 n1-standard-4。因此使用預設機器類型時,Dataflow 服務最多可為每個工作分配 4000 個核心。如果工作需要更多核心,可以選取較大的機器類型。

請勿嘗試自行控管或以任何其他方式直接使用 Compute Engine 代管執行個體群組;這些都有 Dataflow 服務幫您處理妥當。此服務目前並不支援手動修改與 Dataflow 工作關聯的任何 Compute Engine 資源。

您可以使用任何可用的 Compute Engine 機器類型系列,以及自訂機器類型。為獲得最佳成效,請使用 n1 機器類型。根據 Dataflow 服務水準協議f1g1 系列工作站等共用核心機器類型都不在支援範圍內。

如要為每個工作站執行緒分配額外記憶體,請使用具備擴充記憶體的自訂機器類型。舉例來說,custom-2-15360-extn1 機器類型,具備 2 個 CPU 和 15 GB 記憶體。Dataflow 會根據機器中的 CPU 數量,決定每個工作站 VM 的工作站執行緒數量。如果管道處理的工作需要大量記憶體,您可以選擇擴充記憶體的自訂機器類型,為每個工作執行緒提供更多記憶體。詳情請參閱建立自訂 VM 執行個體

Dataflow 會根據 worker 中的 vCPU 數量和記憶體大小 (以 GB 為單位) 計費。帳單與機器類型系列無關。如要為管道指定機器類型,您可以在建立管道時設定適當的執行參數

Java

如要變更機器類型,請設定 --workerMachineType 選項。

Python

如要變更機器類型,請設定 --worker_machine_type 選項。

Go

如要變更機器類型,請設定 ‑‑worker_machine_type 選項。

資源配額

Dataflow 服務會進行檢查,確認您的 Google Cloud專案具有執行工作時需要的 Compute Engine 資源配額,包括用來啟動工作以及擴充至工作站執行個體數量上限的資源配額。要是可用資源配額不足,工作就無法啟動。

如果您的 Dataflow 工作將 Compute Engine 虛擬機器部署為代管執行個體群組,您必須確保專案符合某些額外的配額要求。具體來說,在您的專案中,每個您想執行的並行 Dataflow 工作都需要有下列任何一個配額類型:

  • 每個工作一個執行個體群組
  • 每個工作一個代管執行個體群組
  • 每個工作一個執行個體範本

注意:我們「不」建議亦不支援手動變更 Dataflow 工作的執行個體範本或代管執行個體群組。請改用 Dataflow 的管道設定選項

Dataflow 的水平自動調度資源功能受限於您專案的可用 Compute Engine 配額。假如您的工作啟動時有足夠的配額,但另一個工作用掉了您專案中剩餘的可用配額;在這種情況下,第一個工作還是可以執行,只不過可能無法充分調度資源。

但 Dataflow 服務「無法」在工作超出專案資源配額時,代您要求增加配額。如需額外的資源配額,建議您使用 Google Cloud 主控台提出要求。

IP 位址

根據預設,Dataflow 會為工作站 VM 指派公開和私人 IP 位址。公開 IP 位址符合網際網路存取條件,但公開 IP 位址也會計入外部 IP 位址配額

如果工作站 VM 不需要存取公用網際網路,請考慮只使用內部 IP 位址,這不會計入外部配額。如要進一步瞭解如何設定 IP 位址,請參閱下列資源:

閒置工作站

如果特定工作的作業員在一小時內沒有足夠的活動,工作就會失敗。依附元件管理問題可能會導致工作人員閒置。舉例來說,如果工作者在安裝自訂容器映像檔的依附元件時發生問題,工作者可能無法啟動或無法進展。如果進度停滯,工作可能會因此失敗。詳情請參閱:

永久磁碟資源

執行串流工作時,Dataflow 服務限制每個工作站執行個體只能使用 15 個永久磁碟。每個永久磁碟都是各 Compute Engine 虛擬機器的本機。您工作的工作站數量可能不會多於永久磁碟數量;不過工作站和磁碟的資源配額比例至少要 1:1。

使用 Streaming Engine 的工作會使用 30 GB 的開機磁碟。使用 Dataflow Shuffle 的工作會使用 25 GB 開機磁碟。對於未使用這些產品的工作,每個永久磁碟的預設大小為批次模式 250 GB串流模式 400 GB

位置

根據預設,Dataflow 服務會將 Compute Engine 資源部署在 us-central1 地區的 us-central1-f 區域中。如要覆寫這項設定,請指定 --region 參數。如要為資源指定特定區域,請在建立管道時使用 --zone 參數。不過,我們建議您只要指定地區就好,不用特別指定區域。這樣 Dataflow 服務才能在收到工作建立要求時,根據當下的可用區域容量,從地區內選取最合適的區域。詳情請參閱 Dataflow 區域說明文件。