【问题标题】:is it possible to set the region Google Cloud Dataflow uses at a project or organisation level?是否可以在项目或组织级别设置 Google Cloud Dataflow 使用的区域?
【发布时间】:2018-12-13 04:50:38
【问题描述】:

我的雇主最近开始使用 Google Cloud Platform 进行数据存储/处理/分析。 我们位于欧盟,因此我们希望将 Cloud Dataflow 作业限制在该区域内。 我认为这可以使用--region 和--zone 在每个作业/每个作业模板的基础上完成,但想知道(考虑到我们所有的工作都将使用相同的区域)是否有办法以更永久的方式设置它在更广泛的层面(项目或组织)? 谢谢 斯蒂芬

更新:

在追求这一点之后,Adla 的回答似乎是正确的,尽管还有另一种解决方法(我会回应)。除此之外,谷歌现在有一个未解决的问题,现在可以在https://issuetracker.google.com/issues/113150550找到/关注它。

我可以提供更多关于不起作用的信息,以防对其他人有所帮助:

Google 支持建议根据 How to change the region/zone where dataflow job of google dataprep is running 更改与 dataprep 相关的文件夹的存储位置 - 不幸的是,这对我不起作用,尽管一些回答该问题的人认为它对他们有用。

我工作场所的某人建议在此处限制 Dataflow 对非欧盟区域的配额:https://console.cloud.google.com/iam-admin/quotas 以将其集中用于使用适当的区域,但在测试时,Dataprep 继续倾向于使用美国。

【问题讨论】:

标签: google-cloud-dataflow


【解决方案1】:

Cloud Dataflow 使用 us-central1 作为每个作业的默认区域,如果所需的区域端点与默认区域不同,则需要在启动的每个 Cloud Dataflow 命令作业中指定该区域才能在其中运行。该区域将被自动分配到该区域内的最佳区域,但您也可以使用 --zone 指定它。

目前无法根据项目或组织设置强制 Cloud Dataflow 使用的区域或地区。

我建议你申请一个新的Google Cloud Platform feature。请务必解释您的用例以及此功能对您有何用处。

作为一种解决方法,要限制在 Dataflow 上为特定区域和专区创建作业,您可以编写脚本或应用程序以仅在您需要的特定区域和专区中创建作业。如果您还想限制仅使用脚本创建作业,您可以删除用户的作业creation permissions,并仅将此权限授予此脚本将使用的服务帐户

【讨论】:

    【解决方案2】:

    Google 支持提供给我的解决方案,基本上需要将 Dataprep 用作 Dataflow 作业构建器,而不是本身的工具

    1. 在 Dataprep 中创建所需的流,但如果存在无法将数据发送到区域外的数据,请创建一个版本(样本或完整),其中敏感数据被混淆或空白并使用它。就我而言,将包含用户 ID 的字段设置为单个假值就足够了。
    2. 运行流程
    3. 作业执行一次后,在“作业”下的 Dataprep webUI 中,使用所需作业最右侧的三个点,单击“导出结果”。
    4. 生成的弹出窗口将包含指向包含模板的 GCS 存储桶的路径。复制完整路径。
    5. 在 GCS 的上述路径中找到元数据文件
    6. 更改文件中列出的输入以使用您的“真实”数据而不是混淆版本
    7. 在 Dataflow 控制台页面中,在使用自定义模板创建作业的菜单中,将从 2 复制的路径指示为“模板 GCS 路径”。
    8. 从此菜单中,您可以选择要在其中运行作业的区域。

    这并不简单,但可以做到。我正在使用这样的流程,在没有拥有自己的调度程序的 Dataflow 的情况下设置对 REST API 的调用以触发作业。

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 2013-02-24
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多