将 Dataproc Metastore 元数据迁移到 BigQuery Metastore

本文档介绍了如何使用 BigQuery 元数据存储库迁移工具,该工具可帮助您将数据库、表和分区元数据从 Dataproc Metastore 服务迁移到 BigQuery 元数据存储库。

准备工作

  1. 为您的 Google Cloud 项目启用结算功能。了解如何检查项目是否已启用结算功能
  2. 启用 BigQuery 和 Dataflow API。

    启用 API

  3. 可选:详细了解以下内容:

所需的角色

如需获得运行迁移工具所需的权限,请让您的管理员为您授予以下 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 服务。

后续步骤