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