Dataflow 區域

Dataflow 地區可儲存及處理 Dataflow 工作的中繼資料,並部署及控管 Dataflow 工作站。

地區名稱遵循以 Compute Engine 地區名稱為基礎的標準命名慣例。舉例來說,美國中部地區的名稱為 us-central1

這項功能適用於所有支援 Dataflow 的區域。如要查看適用的位置,請參閱 Dataflow 位置

選擇地區的相關規範

請按照下列指南為工作選擇適當的區域。

安全性與法規遵循

為支援專案的安全性與法規遵循,您可能需要將 Dataflow 工作處理作業限制在特定的地理地區。

資料本地性

為了縮短網路延遲時間並降低網路傳輸成本,您可以選擇在 Dataflow 工作來源、接收器、暫存檔案和臨時檔案的所在位置執行 Dataflow 工作。如果您使用的來源、接收器、暫存檔案位置或臨時檔案位置位於工作地區「外部」,則系統可能會跨地區傳送資料。

執行管道時,使用者資料只會由 Dataflow 工作站集區處理,且資料移動僅限於連結集區中 Dataflow 工作站的網路路徑。

雖然 Dataflow 工作站會嚴格地在指定地理區域中處理使用者資料,但管道記錄檔訊息會儲存在 Cloud Logging 內,這項工具在Google Cloud中具備全球通用的單一系統。

如要進一步控管管道記錄訊息的位置,請採取下列行動:

  1. _Default 記錄檔路由器接收器建立排除篩選器,防止 Dataflow 記錄檔匯出至 _Default 記錄檔 bucket。
  2. 在所選區域建立記錄檔 bucket
  3. 設定新的記錄檔路由器接收器,將 Dataflow 記錄檔匯出至新的記錄檔 bucket。

如要進一步瞭解如何設定記錄,請參閱「轉送和儲存空間總覽」和「記錄轉送總覽」。

以下為常見 Dataflow 工作資源的說明:

  • 使用 Cloud Storage bucket 做為來源時,建議您在與 bucket 相同的區域執行讀取作業。
  • 發布至全球 Pub/Sub 端點的 Pub/Sub 主題會儲存在最靠近的 Google Cloud 區域。不過,您可以將主題儲存空間政策修改為特定區域或一組區域。同樣地,Pub/Sub Lite 主題僅支援區域儲存空間。

恢復能力與地理區隔

您可能想避免一般 Dataflow 操作受到其他地理區域發生的中斷情況影響。 或者,您可能需要規劃替代網站,以確保整個地區在發生災難發生時不會中斷業務。

建議您在災難復原與業務持續性計劃中,詳細記載 Dataflow 工作搭配使用的來源和接收器。Google Cloud 銷售團隊可協助您滿足需求。

區域刊登位置

根據預設,您選取的區域會將 Dataflow 工作人員集區設定為使用該區域內的所有可用區域。系統會在建立每個工作站時計算可用區選取項目,盡量取得資源並使用未使用的預留項目

地區刊登位置的優點包括:

  • 提升資源可用性:Dataflow 工作對區域資源可用性錯誤的復原能力更強,因為工作站可在其他可用區中繼續建立,並維持可用性。
  • 提高可靠性:如果可用區發生故障,Dataflow 工作仍可繼續執行,因為系統會在其他可用區重新建立工作站。

限制如下:

  • 只有使用 Streaming Engine 或 Dataflow Shuffle 的工作,才支援區域放置。如果工作選擇不使用 Streaming Engine 或 Dataflow Shuffle,就無法使用區域放置功能。
  • 區域刊登位置僅適用於 VM,不適用於後端資源。
  • VM 不會複製到多個可用區。如果 VM 無法使用,例如工作項目會視為遺失,並由其他 VM 重新處理。
  • 如果整個區域都缺貨,Dataflow 服務就無法再建立任何 VM。
  • 如果設定的區域中有一或多個區域發生區域性缺貨,Dataflow 服務可能無法啟動工作。

查看工作資源區域

Dataflow 工作會使用內部資源。其中部分後端工作資源屬於可用區資源。如果單一可用區發生故障,而 Dataflow 工作所需的可用區資源位於該可用區,工作可能會失敗。

如要瞭解工作是否因區域中斷而失敗,請檢查工作後端資源使用的服務區域。這項功能僅適用於 Streaming Engine 工作。

  • 如要在Google Cloud 控制台中查看服務區域,請使用「工作資訊」面板中的「服務區域」欄位。

  • 如要使用 API 檢查服務區域,請使用 ServiceResources 欄位。

這項欄位的值會在工作執行期間更新,因為工作使用的資源會在工作執行期間變更。

自動選擇放置區域

如果工作不支援區域放置,系統會根據發出工作建立要求時的可用區域容量,自動從地區內選取最合適的區域。自動區域選擇功能可確保工作站在最適當的區域中執行您的工作。

由於工作設定為在單一可用區中執行,如果沒有足夠的 Compute Engine 資源,作業可能會因可用區資源可用性錯誤而失敗。如果某個區域缺貨,你可能會看到 ZONE_RESOURCE_POOL_EXHAUSTED 錯誤。您可以實作重試迴圈,在資源可用時啟動工作。

此外,如果區域無法使用,串流後端也可能無法使用,導致資料遺失。

指定區域

如要指定工作的地區,請將 --region 選項設為其中一個支援的地區。 --region 選項會覆寫中繼資料伺服器、本機用戶端或環境變數中設定的預設地區。

Dataflow 指令列介面也支援使用 --region 選項指定地區。

覆寫工作人員區域或可用區

根據預設,當您提交具有 --region 選項的工作時,系統會根據工作類型,自動將工作站指派到該地區的各個區域,或是該地區內最合適的單一區域

如要確保 Dataflow 工作的工作站只會在特定區域執行,可以使用下列管道選項指定區域。這種使用模式在 Dataflow 工作中並不常見。

這個選項只會控管 Dataflow 工作站使用的可用區。 這項功能不適用於後端資源。後端資源可能會在工作區域內的任何可用區中建立。

Java

--workerZone

Python

--worker_zone

Go

--worker_zone

除此之外的其他情況,我們不建議覆寫工作站位置。常見情境表含有這些情況的使用建議。

由於這項工作設定為在單一可用區中執行,如果沒有足夠的 Compute Engine 資源,作業可能會因可用區資源可用性錯誤而失敗。

您可以執行 gcloud compute regions list 指令,查看工作站部署可用區域和可用區的列表。

常見情境

下表包含常見情境的使用建議。

情境 建議
我想要使用支援的地區,且在該地區沒有區域偏好設定。在這種情況下,系統會根據可用容量自動選擇最適當的區域。 使用 --region 指定工作區域。這麼做可確保 Dataflow 會在指定的地區中管理您的工作及處理資料。
我需要在特定區域的特定可用區中處理工作站作業。 同時指定 --region--workerZone--worker_zone

使用 --region 指定工作區域。使用 --workerZone--worker_zone 指定該地區內的特定區域