Dataflow 地區可儲存及處理 Dataflow 工作的中繼資料,並部署及控管 Dataflow 工作站。
地區名稱遵循以 Compute Engine 地區名稱為基礎的標準命名慣例。舉例來說,美國中部地區的名稱為 us-central1
。
這項功能適用於所有支援 Dataflow 的區域。如要查看適用的位置,請參閱 Dataflow 位置。
選擇地區的相關規範
請按照下列指南為工作選擇適當的區域。
安全性與法規遵循
為支援專案的安全性與法規遵循,您可能需要將 Dataflow 工作處理作業限制在特定的地理地區。
資料本地性
為了縮短網路延遲時間並降低網路傳輸成本,您可以選擇在 Dataflow 工作來源、接收器、暫存檔案和臨時檔案的所在位置執行 Dataflow 工作。如果您使用的來源、接收器、暫存檔案位置或臨時檔案位置位於工作地區「外部」,則系統可能會跨地區傳送資料。
執行管道時,使用者資料只會由 Dataflow 工作站集區處理,且資料移動僅限於連結集區中 Dataflow 工作站的網路路徑。
雖然 Dataflow 工作站會嚴格地在指定地理區域中處理使用者資料,但管道記錄檔訊息會儲存在 Cloud Logging 內,這項工具在Google Cloud中具備全球通用的單一系統。
如要進一步控管管道記錄訊息的位置,請採取下列行動:
- 為
_Default
記錄檔路由器接收器建立排除篩選器,防止 Dataflow 記錄檔匯出至_Default
記錄檔 bucket。 - 在所選區域建立記錄檔 bucket。
- 設定新的記錄檔路由器接收器,將 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 。使用 |