本页介绍了如何启动和管理 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 页面上,点击您要迁移到的服务的名称。
服务详细信息页面会打开。
点击页面顶部的迁移数据。
创建迁移页面会打开 Connectivity(连接性)标签页,并显示 Cloud SQL database configuration for 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,选择在迁移期间存储 CDC 数据的 Cloud Storage 路径。
在根路径字段中,输入 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 服务所在 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
:与 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
:用于在迁移期间存储 CDC 数据的 Cloud Storage 路径。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 服务所在 Google Cloud项目的项目 ID。LOCATION
:您的 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 服务所在 Google Cloud项目的项目 ID。LOCATION
:您的 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 服务所在 Google Cloud项目的项目 ID。LOCATION
:您的 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 服务所在 Google Cloud项目的项目 ID。LOCATION
:您的 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 服务所在 Google Cloud项目的项目 ID。LOCATION
:您的 Dataproc Metastore 服务所在的 Google Cloud 区域。MIGRATION_ID
:Dataproc Metastore 迁移的名称或 ID。