本页介绍了如何从 Dataproc Metastore 导出元数据。
借助“导出元数据”功能,您可以以便携式存储格式保存元数据。
导出数据后,您可以将元数据导入另一个 Dataproc Metastore 服务或自行管理的 Hive Metastore (HMS)。
导出元数据简介
从 Dataproc Metastore 导出元数据时,该服务会将数据存储为以下某种文件格式:
- 存储在文件夹中的一组 Avro 文件。
- 存储在 Cloud Storage 文件夹中的单个 MySQL 转储文件。
Avro
只有 2.3.6 版和 3.1.2 版支持基于 Avro 的导出。导出 Avro 文件时,Dataproc Metastore 会为数据库中的每个表创建一个 <table-name>.avro
文件。
如需导出 Avro 文件,您的 Dataproc Metastore 服务可以使用 MySQL 或 Spanner 数据库类型。
MySQL
所有版本的 Hive 都支持基于 MySQL 的导出。导出 MySQL 文件时,Dataproc Metastore 会创建一个包含所有表信息的单个 SQL 文件。
如需导出 MySQL 文件,您的 Dataproc Metastore 服务必须使用 MySQL 数据库类型。Spanner 数据库类型不支持 MySQL 导入。
准备工作
所需的角色
如需获得将元数据导出到 Dataproc Metastore 所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需导出元数据,请执行以下操作之一:
-
Dataproc Metastore 服务中的 Dataproc Metastore Editor (
roles/metastore.editor
) -
Dataproc Metastore 服务的 Dataproc Metastore 管理员 (
roles/metastore.admin
) -
Dataproc Metastore 服务上的 Dataproc Metastore Metadata Operator (
roles/metastore.metadataOperator
)
-
Dataproc Metastore 服务中的 Dataproc Metastore Editor (
-
对于 MySQL 和 Avro,如需使用 Cloud Storage 对象进行导出,请执行以下操作:
向您的用户账号和 Dataproc Metastore 服务代理授予 Cloud Storage 存储桶的 Storage Creator 角色 (
roles/storage.objectCreator
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含将元数据导出到 Dataproc Metastore 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需将元数据导出到 Dataproc Metastore,您需要具备以下权限:
-
如需导出元数据,请执行以下操作:
metastore.services.export
在 Metastore 服务中 -
对于 MySQL 和 Avro,如需使用 Cloud Storage 对象进行导出,请为您的用户账号和 Dataproc Metastore 服务代理授予:
storage.objects.create
对 Cloud Storage 存储桶的所有权
导出元数据
在导出元数据之前,请注意以下注意事项:
- 在导出操作运行期间,您无法更新 Dataproc Metastore 服务,例如更改配置设置。不过,您仍然可以使用它执行正常操作,例如使用它从关联的 Dataproc 集群或自行管理的集群访问其元数据。
- 元数据导出功能仅导出元数据。在导出操作中,系统不会复制内部表中由 Apache Hive 创建的数据。
如需从 Dataproc Metastore 服务导出元数据,请执行以下步骤。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc Metastore 页面上,点击您要从中导出元数据的服务的名称。
服务详细信息页面会打开。
在导航栏中,点击导出。
导出元数据页面随即会打开。
在目标位置部分,选择 MySQL 或 Avro。
在 Destination URI 字段中,点击 Browse,然后选择要将文件导出到的 Cloud Storage URI。
您也可以在提供的文本字段中输入存储桶位置。使用
bucket/object
或bucket/folder/object
格式。点击提交以开始导出。
导出完成后,您导出的内容会显示在服务详细信息页面上的导入/导出标签页中的一个表格中。
导出操作完成后,无论导出是否成功,Dataproc Metastore 都会自动返回活跃状态。
gcloud CLI
如需从服务导出元数据,请运行以下
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
:您的 Dataproc Metastore 服务的名称。LOCATION
:您的 Dataproc Metastore 服务所在的 Google Cloud 区域。bucket-name/path/to/folder
:您要存储导出内容的 Cloud Storage 目标文件夹。DUMP_TYPE
:导出操作将生成的数据库转储的类型。可接受的值包括mysql
和avro
。 默认值为mysql
。
验证导出操作是否成功。
导出操作完成后,无论导出是否成功,Dataproc Metastore 都会自动返回活跃状态。
REST
按照 API 说明使用 API Explorer 将元数据导出到服务。
导出操作完成后,无论是否成功,服务都会自动返回活跃状态。
查看导出历史记录
如需在 Google Cloud 控制台中查看 Dataproc Metastore 服务的导出历史记录,请完成以下步骤:
- 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
在导航栏中,点击导入/导出。
您的导出历史记录会显示在导出历史记录表中。
历史记录最多显示最近的 25 项导出操作。
删除 Dataproc Metastore 服务也会删除所有关联的导出历史记录。
排查常见问题
常见问题包括:
如需有关解决常见问题排查问题的更多帮助,请参阅导入和导出错误场景。