本页面介绍如何启动和管理 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。
控制台
开始
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc Metastore 页面上,点击您要迁移到的服务的名称。
服务详情 页面随即打开。
点击页面顶部的迁移数据 。
创建迁移 页面随即打开,并显示连接 标签页以及 Dataproc Metastore 的 Cloud SQL 数据库配置 配置设置。
DPMS 的 Cloud SQL 数据库配置
在实例连接名称 中,输入 Cloud SQL 数据库的实例连接名称,格式如下:
project_id:region:instance_name。在 IP 地址 字段中,输入连接到 Cloud SQL 实例所需的 IP 地址 。
在端口 字段中,输入 3306 。
在 Hive 数据库名称 中,输入用作自行管理的 Hive Metastore 后端的数据库的名称。
在用户名 字段中,输入用于将 Cloud SQL 连接到 Hive Metastore 的用户名。
在密码 字段中,输入用于将 Cloud SQL 连接到 Hive Metastore 的密码。
SOCKS5 代理服务
在代理子网 字段中,输入“常规”类型的子网。 子网应存在于 Cloud SQL VPC 网络中。 此子网用于部署中间 SOCKS5 代理服务
在 Nat 子网 字段中,输入 Private Service Connect 类型的子网。 此子网应存在于 Cloud SQL VPC 网络中,并 用于使用 Private Service Connect 发布 SOCKS5 代理服务。
点击继续 。
变更数据捕获 (CDC) 标签页随即打开,并显示 Datastream 的 Cloud SQL 数据库配置 配置设置。
数据流的 Cloud SQL 数据库配置
在用户名 字段中,输入用于登录 Datastream 使用的 Cloud SQL CDC 的用户名。
在密码 字段中,输入用于登录 Datastream 使用的 Cloud SQL CDC 的密码。
在 VPC 网络 字段中,输入与 Datastream 用于建立与 CDC 的专用连接的 Cloud SQL 实例位于同一 VPC 网络中的网络。
在子网 IP 范围 字段中,输入至少
/29的子网 IP 范围。Datastream 使用此 IP 与 VPC 网络建立对等互连。在反向代理子网 字段中,输入您在与 Cloud SQL 位于同一 VPC 网络中创建的子网。Datastream 使用此子网。此子网用于托管 一个 反向代理连接 用于 Datastream CDC。必须在与 Dataproc Metastore 服务相同的区域中配置子网。
GCS 配置
对于存储分区 ID,选择 Cloud Storage 路径以在迁移期间存储 CDC 数据。
在根路径 字段中,输入 Cloud Storage 存储分区内的根路径。流事件数据会写入此路径。
点击创建 。
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 服务所在项目的项目 ID。 Google CloudLOCATION: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:与 Datastream 用于建立与 CDC 的专用连接的 Cloud SQL 实例位于同一 VPC 网络中的网络。SUBNET_IP_RANGE:Datastream 用于与 VPC 网络建立对等互连的子网 IP 范围,至少为 /29。REVERSE_PROXY_SUBNET_ID:与 Datastream 使用的 Cloud SQL 实例位于同一 VPC 网络中的子网。 此子网用于托管 反向代理连接 以用于 Datastream CDC。必须在与 Dataproc Metastore 服务相同的区域中配置子网。BUCKET_NAME:Cloud Storage 路径,用于在迁移期间存储 CDC 数据。ROOT_PATH:Cloud Storage 存储分区内的根路径。流事件数据会写入此路径。
完成迁移
完成迁移后,Dataproc Metastore 会连接到 Spanner 并开始使用 Spanner 作为其后端数据库。
完成迁移会触发以下状态更改:
- Dataproc Metastore 会返回到
ACTIVE状态。 迁移执行状态会移至
SUCCEEDED。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
点击页面顶部的迁移数据 。
迁移数据 页面随即打开,并显示已完成的托管迁移。
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 服务所在项目的项目 ID。 Google CloudLOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域 。
取消迁移
取消迁移后,Dataproc Metastore 会恢复所有更改,并开始使用 Spanner 数据库类型作为其后端数据库。 在迁移期间转移的所有数据都会被删除。
取消迁移会触发以下状态更改:
- Dataproc Metastore 会返回到
ACTIVE状态。 迁移执行状态会移至
CANCELLED。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
点击页面顶部的迁移数据 。
迁移数据 页面随即打开,并显示已取消的托管迁移。
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 服务所在项目的项目 ID。 Google CloudLOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域 。
获取迁移详情
获取有关单个托管迁移的详细信息。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
点击页面顶部的迁移数据 。
迁移数据 页面随即打开,并显示托管迁移。
如需获取更多迁移详情,请点击托管迁移的名称。
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 服务所在项目的项目 ID。 Google CloudLOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域 。MIGRATION_ID:Dataproc Metastore 迁移的名称或 ID。
列出迁移
列出托管迁移。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
点击页面顶部的迁移数据 。
迁移数据 页面随即打开,并显示托管迁移。
验证命令是否列出了迁移。
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 服务所在项目的项目 ID。 Google CloudLOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域 。
删除迁移
删除托管迁移。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
点击页面顶部的迁移数据 。
迁移数据 页面随即打开,并显示托管迁移。
选择迁移,然后点击删除 。
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 服务所在项目的项目 ID。 Google CloudLOCATION:Dataproc Metastore 服务所在的 Google Cloud 区域 。MIGRATION_ID:Dataproc Metastore 迁移的名称或 ID。