将 Dataproc Metastore 元数据迁移到 BigQuery Metastore
本文档介绍了如何使用 BigQuery 元数据存储库迁移工具,该工具可帮助您将数据库、表和分区元数据从 Dataproc Metastore 服务迁移到 BigQuery 元数据存储库。
准备工作
- 为您的 Google Cloud 项目启用结算功能。了解如何检查项目是否已启用结算功能。
启用 BigQuery 和 Dataflow API。
可选:详细了解以下内容:
- 了解 BigQuery Metastore 的运作方式以及为何应使用它。
- 了解 Dataflow 的运作方式以及如何监控正在进行的作业。
所需的角色
如需获得运行迁移工具所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
在 BigQuery 中创建数据库、表和分区:
在运行迁移作业的 Dataflow 服务账号中使用 BigQuery Data Editor (
roles/bigQuery.dataEditor
)。 -
向运行迁移作业的 Dataflow 服务账号授予对 gRPC 端点上的 Dataproc Metastore 元数据的读取权限:元数据查看器角色 (
roles/metastore.metadataViewer
)。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
迁移工具的运作方式
迁移工具会启动一个 Dataflow 作业,该作业会从 Dataproc Metastore 中提取元数据,并将其提取到 BigQuery Metastore。
您无法直接从 BigQuery Metastore 访问 Dataproc Metastore 数据。若要在现有元数据上运行工作负载或作业,必须执行此迁移流程。如果您不使用此工具,则必须手动从 Dataproc Metastore 中注入元数据,并将其注入到 BigQuery Metastore。
注意事项
- 迁移工具支持使用 gRPC 或 Thrift 端点协议的 Dataproc Metastore 实例。
- 每次运行迁移工具时,Dataflow 作业都会将元数据从 Dataproc Metastore 完整复制到 BigQuery Metastore。
限制
迁移工具不会迁移与数据库和表分区无关的元数据。如果该工具无法迁移数据库或表,则会在包含 Dataflow 作业的项目的 Cloud Logging 实例中记录一条消息。
记录错误后,Dataflow 作业会继续处理流水线中的其他表和数据库。
使用该工具运行迁移
如需使用该工具运行迁移,请运行以下 gcloud dataflow
flex-template
命令,创建 Dataflow 灵活模板作业。
gcloud dataflow flex-template run JOB_NAME" \ --template-file-gcs-location "gs://bigquery-metastore-migration/dpms_to_bqms_migration.json" \ --parameters bigQueryMetastoreProjectId="DESTINATION_BIGQUERY_PROJECT_ID" \ --parameters endpointUri="METASTORE_URI" \ --parameters bigQueryMetastoreDatabaseLocation=DATABASE_LOCATION \ [--network=NETWORK] \ [--subnetwork=SUBNETWORK]
替换以下内容:
JOB_NAME
:用于运行迁移的 Dataflow 作业的名称。DESTINATION_BIGQUERY_PROJECT_ID
:Dataflow 作业将数据写入的 BigQuery 项目的 ID。METASTORE_URI
:Dataproc Metastore 服务的 URI。DATABASE_LOCATION
:BigQuery 元存储区写入数据的位置。例如,如果您将此值设置为US
,则该工具创建的所有 BigQuery 资源都存储在此位置。NETWORK
:可选:用于运行 Dataflow 作业的网络。仅适用于使用 Thrift 端点的 Dataproc Metastore 服务。SUBNETWORK
(可选):用于运行 Dataflow 作业的子网。仅适用于使用 Thrift 端点的 Dataproc Metastore 服务。