托管式迁移的前提条件

本页面介绍如何设置 Google Cloud 项目,为 Dataproc Metastore 管理的迁移做好准备。

准备工作

所需的角色

如需获得创建 Dataproc Metastore 和启动受管迁移所需的权限,请让管理员向您授予以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

根据项目设置授予其他角色

根据项目的配置方式,您可能需要添加以下其他角色。本页面稍后的前提条件部分中提供了有关如何向相应账号授予这些角色的示例。

  • 向服务项目中的 Dataproc Metastore 服务代理[Google APIs 服务代理] 授予 Network User (roles/compute.networkUser) 角色。
  • 向宿主项目上的 Datastream 服务代理授予 Network Admin (roles/compute.networkAdmin) 角色。

如果您的 Cloud SQL 实例与 Dataproc Metastore 服务项目位于不同的项目中,请执行以下操作:

  • 向 Cloud SQL 实例项目中的 Dataproc Metastore 服务代理授予 roles/cloudsql.client 角色和 roles/cloudsql.instanceUser 角色。

如果 Change-Data-Capture 流水线的 Cloud Storage 存储桶与您的 Dataproc Metastore 服务项目位于不同的项目中,请执行以下操作:

  • 确保您的 Datastream 服务代理具有向相应存储桶写入数据所需的权限。这些角色通常为 roles/storage.objectViewerroles/storage.objectCreatorroles/storage.legacyBucketReader 角色。

托管式迁移的前提条件

Dataproc Metastore 使用代理和变更数据捕获来帮助完成数据转移。在开始转移之前,请务必了解这些功能的工作原理。

关键术语

  • 服务项目:服务项目是指您在其中创建 Dataproc Metastore 服务的 Google Cloud 项目。
  • 宿主项目:宿主项目是 Google Cloud 包含共享 VPC 网络的项目。一个或多个服务项目可以关联到您的宿主项目,以使用这些共享网络。如需了解详情,请参阅共享 VPC
  1. 在服务项目中启用 Datastream API
  2. 向服务项目中的 Dataproc Metastore Service Agent 授予 roles/metastore.migrationAdmin 角色。

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. 添加以下防火墙规则。

    在 Dataproc Metastore 与专用 IP Cloud SQL 实例之间建立连接。

    • 一条防火墙规则,用于允许来自 健康检查探测器的流量到达 SOCKS5 代理的网络负载平衡器。例如:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
      

      端口 1080 是 SOCKS5 代理服务器运行的端口。

    • 允许流量从负载均衡器传输到 SOCKS5 代理 MIG 的防火墙规则。例如:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • 防火墙规则,用于允许从 Private Service Connect 服务连接到负载均衡器的流量。例如:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
      

    一条防火墙规则,用于允许 Datastream 使用 /29 CIDR IP 范围创建专用 IP 连接。例如:

    gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
    

(可选)向共享 VPC 添加角色

如果您使用共享 VPC,请按照以下步骤操作。

如需详细了解共享 VPC,请参阅服务项目管理员

  1. 向宿主项目中的 Dataproc Metastore 服务代理和 Google API 服务代理授予 roles/compute.networkUser 角色。

    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com"
    gcloud projects add-iam-policy-binding HOST_PROJECT  --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
    
  2. 向宿主项目中的 Datastream 服务代理授予 roles/compute.networkAdmin 角色。

    gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
    

如果您无法授予 roles/compute.networkAdmin 角色,请创建一个具有共享 VPC 前提条件中列出的权限的自定义角色。

  • 在迁移开始时,需要这些权限才能在宿主项目中的 VPC 网络与 Datastream 之间建立对等互连。

  • 迁移开始后,即可移除此角色。如果您在迁移完成之前移除该角色,Dataproc Metastore 将无法清理对等互连作业。在这种情况下,您必须自行清理作业。

后续步骤