Dataflow 区域性端点可以存储和处理与 Dataflow 作业相关的元数据,以及部署和控制 Dataflow 工作器。
区域性端点的名称遵循以 Compute Engine 区域名称为基础的标准命名惯例。
例如,美国中部地区的名称为 us-central1
。目前,Dataflow 为以下地区提供地区端点:
us-west1
us-west2
us-central1
us-east1
us-east4
northamerica-northeast1
southamerica-east1
europe-west2
europe-west1
europe-west4
europe-west6
europe-west3
asia-south1
asia-southeast1
asia-east1
asia-northeast1
australia-southeast1
为什么要指定地区端点?
在某些情况下,为 Dataflow 作业指定区域端点能够取得良好的效果。
安全与合规性
为满足项目的安全与合规性需求,您可能需要将 Dataflow 作业处理过程限定到特定的地理区域。
数据存放区域
通过在与来源、接收器和暂存/临时文件位置相同的区域运行 Dataflow 作业,您可以最大限度地减少网络延迟和网络传输费用。请务必注意,如果您使用位于作业区域之外的来源、接收器或暂存/临时文件位置,则数据可能跨区域发送。
以下为常见 Dataflow 作业来源的说明:
- Cloud Storage 存储分区可以是地区资源或多地区资源:使用 Cloud Storage 地区或多地区存储分区作为来源时,我们建议您在同一地区中执行读取操作。
- Pub/Sub 主题是全球性资源(不需要考虑区域)。
弹性与地理位置分离
您可能希望隔离一般 Dataflow 操作,使其不受其他地理区域发生的中断情况影响。 或者,您可能需要计划设立备用网站,以便在发生区域性灾难时维持业务连续性。
自动选择地区
默认情况下,区域端点可以根据请求创建作业时可用的地区容量自动在该区域内选择最佳地区。自动选择地区功能有助于确保作业工作器在最适合您的作业的地区中运行。
使用地区端点
注意:区域性端点配置需要使用 Apache Beam SDK 2.0.0 或更高版本。
要为作业指定地区端点,请将 --region
选项设置为一个受支持的地区端点。如果您未指定地区端点,则 Dataflow 将使用默认计算地区,作业工作器将在该地区内的区域中启动。如果区域端点与默认区域不同,则需要在此作业的每个 Cloud Dataflow 命令中指定区域,以避免错误。
Cloud Dataflow 命令行界面还支持使用 --region
选项来指定地区端点。
替换工作器地区或区域
默认情况下,当您使用 --region
参数提交作业时,地区端点会自动将工作器分配到该地区内的最佳区域。但是,您可能希望为工作器实例指定地区或特定区域(分别使用 --worker_region
或 --worker_zone
)。
在以下情况下,您可能需要替换工作器位置:
您的工作器所在的地区或区域没有地区端点,并且您想要使用更靠近该地区或区域的地区端点。
您希望确保 Dataflow 作业的数据处理过程只会发生在特定地区或区域中。
对于其他所有情况,建议您不要替换工作器位置。常见方案表包含针对这些情况的使用建议。
您可以运行 gcloud compute regions list
命令来查看可用于工作器部署的地区和区域列表。
常见方案
下表包含适用于常见情景的使用建议。
情景 | 建议 |
---|---|
我想使用受支持的区域端点,并且在该区域内没有偏好的地区。在这种情况下,区域性端点会自动根据可用容量选择最佳地区。 | 使用 --region 指定区域性端点。这可确保 Dataflow 在指定区域内管理您的作业及处理数据。 |
我希望在具有区域性端点的区域的特定地区中执行工作器处理过程。 | 同时指定 --region 和 --worker_zone 。使用 |
我希望在没有区域性端点的特定区域中执行工作器处理过程。 | 同时指定 --region 和 --worker_region 。使用 |
我需要使用 Dataflow Shuffle。 | 使用 --region 指定支持 Dataflow Shuffle 的区域性端点。某些区域性端点可能不支持此功能;如需查看受支持区域的列表,请参阅功能文档。 |