从服务导出元数据

导出作业采用存储在 Dataproc Metastore 服务中的元数据,并返回包含 Avro 文件的文件夹或 Cloud Storage 文件夹中的 MySQL 转储文件。对于 Avro 导出作业,系统会为每个表创建一个 <table-name>.avro 文件。

本页面介绍了如何使用本地浏览器中打开的 Google Cloud Console、Cloud SDK 的 gcloud 命令行工具或 Dataproc Metastore API 方法 services.exportMetadata,从现有 Dataproc Metastore 服务导出元数据。

准备工作

  • 大多数 gcloud metastore 命令需要位置信息。您可以使用 --location 标志指定位置,也可以通过设置默认位置来指定位置。

访问权限控制机制

  • 要导出元数据,您必须具有包含 metastore.services.export IAM 权限的 IAM 角色。Dataproc Metastore 特定角色 roles/metastore.adminroles/metastore.editorroles/metastore.metadataOperator 可用于授予导出权限。

  • 您也可以使用 roles/ownerroles/editor 旧版角色向用户或群组授予导出权限。

  • Dataproc Metastore 服务代理 (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) 必须具有用于导出操作的 Cloud Storage 存储分区目的地的 storage.objects.create 权限。

    • 创建导出操作的用户还必须具有该存储分区的 storage.objects.create 权限。
  • 如果您使用的是 VPC Service Controls,则只能将数据导出到与 Dataproc Metastore 服务位于同一服务边界内的 Cloud Storage 存储分区。

如需了解详情,请参阅 Dataproc Metastore IAM 和访问权限控制

从服务导出元数据

您可以通过以下方式从服务导出元数据:在本地浏览器中打开的“服务详细信息”页面上选择导出目的地、使用 gcloud 工具,或者调用 Dataproc Metastore API 方法 services.exportMetadata

在导出操作处于运行状态时,系统无法对服务进行更新。执行导出操作时,您仍可以使用服务。

您可以使用 Google Cloud Console、gcloud 工具或 Dataproc Metastore API 从 Dataproc Metastore 服务导出元数据:

控制台

  1. 在 Cloud Console 中,打开 Dataproc Metastore 页面:

    在 Cloud Console 中打开 Dataproc Metastore

  2. Dataproc Metastore 页面上,点击您要从中导出元数据的服务的名称。服务详细信息页面会打开。

    “服务详细信息”页面
  3. 点击页面顶部的导出按钮。导出元数据页面会打开。

  4. 选择目标位置

  5. 浏览到并选择您希望存储导出的元数据的 Cloud Storage URI

  6. 点击提交按钮开始执行导出操作。

  7. 确认您已返回服务详细信息页面,并且您的导出操作显示在导入/导出标签页上的导出历史记录下。

gcloud

  1. 使用以下 gcloud metastore services export gcs 命令从服务导出元数据:

    gcloud metastore services export gcs SERVICE  \
        --location=LOCATION \
        --destination-folder=gs://bucket-name/path/to/folder \
        --dump-type=DUMP_TYPE
    

    请替换以下内容:

    • SERVICE:服务的名称。
    • LOCATION:表示 Google Cloud 区域。
    • bucket-name/path/to/folder:表示 Cloud Storage 目的地文件夹。
    • DUMP_TYPE:数据库转储的类型。默认值为 mysql
  2. 验证导出操作是否成功。

REST

按照 API 说明使用 APIs Explorer 从服务导出元数据

导出操作完成后,无论是否成功,服务都会自动进入活跃状态。

如需查看服务的导出历史记录,请参阅 Cloud Console 中服务详细信息页面上的导入/导出标签页。

导出注意事项

  • 界面中提供了以前的导出历史记录。如果删除服务本身,则系统将删除该服务下的所有导出历史记录。

常见的失败情况

  • Dataproc Metastore 服务代理 (service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com) 没有用于 Avro 或 MySQL 转储文件的 Cloud Storage 存储分区的 storage.objects.create 权限。

    • 创建导出操作的用户没有该存储分区的 storage.objects.create 权限。
  • 您的数据库文件太大,需要超过一个小时才能完成导出过程。

后续步骤