将托管式迁移与 Dataproc Metastore 服务搭配使用

本页面介绍如何启动和管理 Dataproc Metastore 管理的迁移。

您可以使用 Dataproc Metastore API 配置迁移。

准备工作

开始迁移

当您运行开始迁移时,Dataproc Metastore 会连接到 Cloud SQL,并将 Cloud SQL 用作其后端数据库。在此过程中,Dataproc Metastore 会运行一个流水线,将数据从 Cloud SQL 复制到其自己的数据库 (Spanner)。

Dataproc Metastore 会继续使用 Cloud SQL 作为其后端并复制数据,直到调用完全迁移流程。

在开始迁移之前,请确保您已设置受管理的迁移的前提条件

开始迁移注意事项

  • 一个 Dataproc Metastore 服务一次只能运行一个迁移。

  • 在您完成迁移过程之前,迁移会一直处于有效状态。 迁移没有期限要求,例如,迁移可能需要 1 天、30 天或 1 年。

  • 在迁移期间,预定备份不受限制。不过,备份可能不完整。为避免出现任何问题,请在迁移过程中停用所有已安排的备份。

启动迁移会触发以下状态变化:

  • Dataproc Metastore 移至 MIGRATING 状态。
  • 迁移执行任务状态变为 RUNNING
  • 迁移执行阶段会移至 REPLICATION

控制台

开始

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:

    前往 Dataproc Metastore

  2. Dataproc Metastore 页面上,点击要迁移到的服务的名称。

    服务详细信息页面会打开。

  3. 点击页面顶部的迁移数据

    系统会打开创建迁移页面,并显示连接标签页以及 Dataproc Metastore 的 Cloud SQL 数据库配置配置设置。

适用于 DPMS 的 Cloud SQL 数据库配置

  1. 实例连接名称中,输入 Cloud SQL 数据库的实例连接名称,格式如下:project_id:region:instance_name

  2. IP 地址字段中,输入连接到 Cloud SQL 实例所需的 IP 地址。

  3. 端口字段中,输入 3306

  4. Hive 数据库名称中,输入用作自行管理的 Hive Metastore 后端的数据库的名称。

  5. 用户名字段中,输入您用于将 Cloud SQL 连接到 Hive Metastore 的用户名。

  6. 密码字段中,输入用于将 Cloud SQL 连接到 Hive Metastore 的密码。

SOCKS5 代理服务

  1. 代理子网字段中,输入常规类型的子网。 子网应位于 Cloud SQL VPC 网络中。 此子网用于部署中间 SOCKS5 代理服务

  2. NAT 子网字段中,输入 Private Service Connect 类型的子网。 此子网应位于 Cloud SQL VPC 网络中,并用于使用 Private Service Connect 发布 SOCKS5 代理服务

  3. 点击继续

    系统会打开变更数据捕获 (CDC) 标签页,并显示 Cloud SQL 数据库配置(适用于 Datastream)配置设置。

关于数据流的 Cloud SQL 数据库配置

  1. 用户名字段中,输入您用于登录 Datastream 所用 Cloud SQL CDC 的用户名。

  2. 密码字段中,输入您用于登录 Datastream 所用 Cloud SQL CDC 的密码。

  3. VPC 网络字段中,输入与 Cloud SQL 实例位于同一 VPC 网络中的网络,Datastream 使用该网络与 CDC 建立专用连接。

  4. 子网 IP 范围字段中,输入至少为 /29 的子网 IP 范围。Datastream 使用此 IP 地址与 VPC 网络建立对等互连。

  5. 反向代理子网字段中,输入您在与 Cloud SQL 相同的 VPC 网络中创建的子网。Datastream 使用此子网。子网用于托管 Datastream CDC 的反向代理连接。子网必须配置在与 Dataproc Metastore 服务相同的区域中。

GCS 配置

  1. 对于存储分区 ID,请选择在迁移期间用于存储 CDC 数据的 Cloud Storage 路径。

  2. 根路径字段中,输入 Cloud Storage 存储分区内的根路径。流事件数据会写入此路径。

  3. 点击创建

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d \
  '{
    "migration_execution": {
      "cloud_sql_migration_config": {
        "cloud_sql_connection_config": {
          "instance_connection_name": INSTANCE_CONNECTION_NAME,
          "hive_database_name": "HIVE_DATABASE_NAME",
          "ip_address": "IP_ADDRESS",
          "port": 3306,
          "username": "CONNECTION_USERNAME",
          "password": "CONNECTION_PASSWORD",
          "proxy_subnet": "PROXY_SUBNET",
          "nat_subnet": "NAT_SUBNET"
        },
        "cdc_config": {
          "username": "CDC_USENAME",
          "password": "CDC_PASSWORD",
          "vpc_network": "VPC_NETWORK",
          "subnet_ip_range": "SUBNET_IP_RANGE",
          "reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
          "bucket": "BUCKET_NAME",
          "root_path": "ROOT_PATH",
        }
      }
    }
}' \
  https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration

替换以下内容:

  • SERVICE:Dataproc Metastore 服务的名称或 ID。
  • PROJECT_ID:您的 Dataproc Metastore 服务所在的 Google Cloud项目的项目 ID。
  • LOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域。

Cloud SQL 迁移配置

  • INSTANCE_CONNECTION_NAME:Cloud SQL 数据库的实例连接名称,格式如下:PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID
  • HIVE_DATABASE_NAME:已连接到 Cloud SQL 的自管理 Hive 数据库的名称。
  • IP_ADDRESS:连接到 Cloud SQL 实例所需的 IP 地址。
  • CONNECTION_USERNAME:用于将 Cloud SQL 连接到 Hive Metastore 的用户名。
  • CONNECTION_PASSWORD 用于将 Cloud SQL 连接到 Hive Metastore 的密码
  • PROXY_SUBNET:Cloud SQL VPC 网络中使用的子网。此子网托管一个中间代理,以提供跨传递网络的连接。
  • NAT_SUBNET:一个 Private Service Connect 子网,用于提供从 Dataproc Metastore 服务到中间代理的连接。子网大小应具有至少 /29 的前缀长度,并且位于 IPv4 范围内。

CDC 配置

  • CDC_USERNAME:Datastream 服务用于登录 Cloud SQL 的用户名。
  • CDC_PASSWORD:Datastream 服务用于登录 Cloud SQL 的密码。
  • VPC_NETWORK:与 Cloud SQL 实例位于同一 VPC 网络中的网络,Datastream 使用该网络与 CDC 建立专用连接。
  • SUBNET_IP_RANGE:Datastream 用于建立与 VPC 网络的对等互连的子网 IP 范围,至少为 /29。
  • REVERSE_PROXY_SUBNET_ID:与 Datastream 使用的 Cloud SQL 实例位于同一 VPC 网络中的子网。 子网用于托管 Datastream CDC 的反向代理连接。子网必须配置在与 Dataproc Metastore 服务相同的区域中。
  • BUCKET_NAME:用于在迁移期间存储 CDC 数据的 Cloud Storage 路径。
  • ROOT_PATH:Cloud Storage 存储分区内的根路径。流事件数据会写入此路径。

完成迁移

完成迁移后,Dataproc Metastore 会连接到 Spanner,并开始使用 Spanner 作为其后端数据库。

完成迁移会触发以下状态更改:

  • Dataproc Metastore 会恢复为 ACTIVE 状态。
  • 迁移执行任务状态变为 SUCCEEDED

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。

  2. 点击页面顶部的迁移数据

    系统会打开迁移数据页面,其中显示了您已完成的受管迁移。

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d '' \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration

替换以下内容:

  • SERVICE:Dataproc Metastore 服务的名称或 ID。
  • PROJECT_ID:您的 Dataproc Metastore 服务所在的 Google Cloud项目的项目 ID。
  • LOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域。

取消迁移

取消迁移后,Dataproc Metastore 会还原所有更改,并开始使用 Spanner 数据库类型作为其后端数据库。系统会删除迁移期间转移的所有数据。

取消迁移会触发以下状态更改:

  • Dataproc Metastore 会恢复为 ACTIVE 状态。
  • 迁移执行任务状态变为 CANCELLED

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。

  2. 点击页面顶部的迁移数据

    系统会打开迁移数据页面,并显示您已取消的受管迁移。

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d '' \
    https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration

替换以下内容:

  • SERVICE_NAME:Dataproc Metastore 服务的名称或 ID。
  • PROJECT_ID:您的 Dataproc Metastore 服务所在的 Google Cloud项目的项目 ID。
  • LOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域。

获取迁移详情

获取有关单个受管理迁移的详细信息。

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。

  2. 点击页面顶部的迁移数据

    系统会打开迁移数据页面,其中显示了您管理的迁移。

    如需了解更多迁移详情,请点击受管理的迁移的名称。

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

替换以下内容:

  • SERVICE:Dataproc Metastore 服务的名称或 ID。
  • PROJECT_ID:您的 Dataproc Metastore 服务所在的 Google Cloud项目的项目 ID。
  • LOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域。
  • MIGRATION_ID:Dataproc Metastore 迁移的名称或 ID。

列出迁移

列出受管理的迁移。

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。

  2. 点击页面顶部的迁移数据

    系统会打开迁移数据页面,其中显示了您管理的迁移。

  3. 验证该命令是否列出了迁移。

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
   https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

替换以下内容:

  • SERVICE:Dataproc Metastore 服务的名称或 ID。
  • PROJECT_ID:您的 Dataproc Metastore 服务所在的 Google Cloud项目的项目 ID。
  • LOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域。

删除迁移

删除受管理的迁移。

控制台

  1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。

  2. 点击页面顶部的迁移数据

    系统会打开迁移数据页面,其中显示了您管理的迁移。

  3. 选择迁移,然后点击删除

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
   -X DELETE \
    https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

替换以下内容:

  • SERVICE:Dataproc Metastore 服务的名称或 ID。
  • PROJECT_ID:您的 Dataproc Metastore 服务所在的 Google Cloud项目的项目 ID。
  • LOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域。
  • MIGRATION_ID:Dataproc Metastore 迁移的名称或 ID。

后续步骤