Cloud Dataflow 作业从一个 BigQuery 项目读取并写入另一个 BigQuery 项目

Cloud Dataflow job reading from one Bigquery project and writing to another BigQuery project

我正在 GCP 上实施 Cloud Dataflow 作业,需要处理 2 个 GCP 项目。 输入和输出都是 Bigquery 分区表。 我现在遇到的问题是必须从项目A中读取数据写入到项目B中。

我还没有看到任何与跨项目服务帐户相关的内容,而且我也不能为 Dataflow 提供两个不同的凭据密钥,这有点烦人? 我不知道其他人是否经历过这种架构或者你是如何处理它的。

我认为您可以通过以下步骤完成此操作:

  1. 在项目中创建专用服务帐户运行 Dataflow 作业。
  2. 授予服务帐户 Dataflow WorkerBigQuery Job User 角色。根据 Dataflow 作业的全部资源需求,服务帐户可能需要其他角色。
  3. 在项目 A 中,向服务帐户授予对整个项目或特定数据集的 BigQuery 数据查看者 角色。
  4. 在项目 B 中,向服务帐户授予对整个项目或特定数据集的 BigQuery 数据编辑器 角色。
  5. 启动 Dataflow 作业时,覆盖提供新服务帐户的 service account 管道选项。

很简单。您需要从两个项目中向您的服务帐户提供所需的 permission/access。

所以您只需要在两个项目

中都需要 access/permission 的服务帐户

希望对您有所帮助。