本页面介绍了如何将元数据导入 Dataproc Metastore 服务。
通过导入元数据功能,您可以填充现有的 Dataproc Metastore 服务具有存储在便携式设备中的元数据 存储格式。
这些可移植的元数据通常从 Dataproc Metastore 服务 也可以通过自行管理的 Hive Metastore (HMS) 购买。
导入元数据简介
您可以将以下格式的文件导入到 Dataproc Metastore:
- 存储在文件夹中的一组 Avro 文件。
- 存储在 Cloud Storage 文件夹中的单个 MySQL 转储文件。
您要导入的 MySQL 或 Avro 文件必须由关系型 数据库。
如果您的文件采用其他格式(例如 PostgreSQL),则必须将 转换为 Avro 或 MySQL 格式。转化完成后,您可以将其导入 Dataproc Metastore。
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 文件,其中包含 所有表格信息 系统还支持使用原生 SQL 从 Dataproc 集群获取的 MySQL 转储文件。
要导入 MySQL 文件,您的 Dataproc Metastore 服务必须使用 MySQL 数据库类型。Spanner 数据库类型不支持 MySQL 导入。
导入注意事项
导入操作会覆盖 Dataproc Metastore 服务。
元数据导入功能仅导入元数据。由以下来源创建的数据: 导入时不会复制内部表中的 Apache Hive。
导入操作不会转换数据库内容,也不会处理文件 迁移。如果您将数据移动到其他位置,则必须手动 在您的 Dataproc Metastore 服务。
导入操作不会恢复或替换精细的 IAM 政策。
如果您使用的是 VPC Service Controls,则只能从与 Dataproc Metastore 服务位于同一服务边界内的 Cloud Storage 存储分区导入数据。
准备工作
所需的角色
如需获得将元数据导入 Dataproc Metastore 所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需导入元数据,请执行以下操作:
-
Dataproc Metastore Editor (
roles/metastore.editor
) 元数据服务上的资源 -
Dataproc Metastore Administrator (
roles/metastore.admin
) 项目级别
-
Dataproc Metastore Editor (
-
对于 MySQL,如需使用 Cloud Storage 对象(SQL 转储文件)进行导入,请执行以下操作:
向包含要导入的元数据转储文件的 Cloud Storage 存储桶授予您的用户账号和 Dataproc Metastore 服务代理 Storage Object Viewer 角色 (
roles/storage.objectViewer
)。 -
对于 Avro,要使用 Cloud Storage 存储桶执行导入操作,请执行以下操作:
向您的用户账号和 Dataproc Metastore 服务代理授予 Storage Object Viewer 角色 (
roles/storage.objectViewer
) 在包含要导入的元数据转储的 Cloud Storage 存储桶中。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含 拥有将元数据导入 Dataproc Metastore 所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
将元数据导入 Dataproc Metastore 需要以下权限:
-
如需导入元数据,请执行以下操作:
metastore.imports.create
有关 Metastore 服务的提示。 -
对于 MySQL,如需使用 Cloud Storage 对象(SQL 转储文件)进行导入,请向您的用户账号和 Dataproc Metastore 服务代理授予相应权限:
storage.objects.get
在包含要导入的元数据转储的 Cloud Storage 存储桶中。 -
对于 Avro,要使用 Cloud Storage 存储桶进行导入,请为您的用户账号和 Dataproc Metastore 服务代理授予以下角色:
storage.objects.get
在包含要导入的元数据转储的 Cloud Storage 存储桶中。
导入元数据
导入操作分为两步。首先,请准备您的导入文件 然后将其导入到 Dataproc Metastore 中。
当您开始导入时,Dataproc Metastore 会执行 Hive 元数据架构验证。此验证会验证 SQL 转储中的表 文件以及 Avro 的文件名。如果缺少表,导入操作会失败,并显示描述缺失表的错误消息。
如需在导入前检查 Hive 元数据兼容性,您可以使用 Dataproc Metastore Toolkit。
在导入前准备导入文件
在将文件导入 Dataproc Metastore 之前, 必须将元数据转储文件复制到 Cloud Storage, 工件 Cloud Storage 存储桶。
将文件移至 Cloud Storage
创建要导入 Dataproc Metastore 的外部数据库的数据库转储。
如需了解如何创建数据库转储,请参阅以下页面:
将文件上传到 Cloud Storage。
请务必记下上传文件的 Cloud Storage 路径 您需要稍后使用它来执行导入。
如果您要导入 MySQL 文件,请将 SQL 文件上传到 Cloud Storage 存储桶。
如果您要导入 Avro 文件,请将文件上传到 Cloud Storage 文件夹。
- Avro 导入应为每个 Hive 表包含一个 Avro 文件,即使该表为空也是如此。
- Avro 文件名必须采用
<table-name>.avro
格式。<table-name>
必须为 全部大写。例如AUX_TABLE.avro
。
将文件导入 Dataproc Metastore
在导入元数据之前,请查看导入注意事项。
导入运行期间,您无法更新 Dataproc Metastore 服务,例如更改配置设置。不过,您可以 仍然将其用于正常操作,例如使用它从 挂接的 Dataproc 集群或自行管理的集群。
控制台
在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:
在 Dataproc Metastore 页面上,点击相应服务的名称 要导入元数据的目标文件
服务详细信息页面会打开。
在导航栏中,点击导入。
系统随即会打开 Import 对话框。
输入导入名称。
在目标位置部分,选择 MySQL 或 Avro。
在目标 URI 字段中,点击浏览,然后选择要在其中执行以下操作的 Cloud Storage URI 导入您的文件。
您也可以在提供的文本字段中手动输入存储桶位置。请使用以下格式:
bucket/object
或bucket/folder/object
。可选:输入导入操作的说明。
您可以在服务详情页面上修改说明。
如需更新服务,请点击导入。
导入完成后,导入内容会显示在服务详细信息页面上的导入/导出标签页中的一个表格中。
gcloud CLI
如需导入元数据,请运行以下
gcloud metastore services import gcs
命令:gcloud metastore services import gcs SERVICE_ID \ --location=LOCATION \ --import-id=IMPORT_ID \ --description=DESCRIPTION \ --dump-type=DUMP_TYPE \ --database-dump=DATABASE_DUMP
替换以下内容:
SERVICE_ID
:Dataproc Metastore 服务的 ID 或完全限定名称。LOCATION
:Dataproc Metastore 服务所在的 Google Cloud 区域。IMPORT_ID
:元数据导入的 ID 或完全限定名称。例如import1
。DESCRIPTION
(可选):导入的说明。 您以后可以使用gcloud metastore services imports update IMPORT
修改此名称。DUMP_TYPE
:您要导入的外部数据库的类型。接受的值包括mysql
和avro
。默认值为mysql
。DATABASE_DUMP
:包含数据库文件的 Cloud Storage 的路径。此路径必须以gs://
开头。对于 Avro,请提供存储 Avro 文件的文件夹(Cloud Storage 文件夹)的路径。对于 MySQL,请提供 MySQL 文件(Cloud Storage 对象)的路径。
验证导入操作是否成功。
REST
按照 API 说明使用 APIs Explorer 将元数据导入到服务中。
使用该 API,您可以创建、列出、描述和更新导入操作,但不能删除导入操作。但是,删除 Dataproc Metastore 服务会删除所有已存储的嵌套 导入。
导入成功后,Dataproc Metastore 会自动返回到活动状态。如果导入失败,Dataproc Metastore 会回滚到之前的正常运行状态。
查看导入作业历史记录
如需在 Google Cloud 控制台中查看 Dataproc Metastore 服务的导入历史记录,请完成以下步骤:
- 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面。
在导航栏中,点击导入/导出。
您的导入历史记录会显示在导入历史记录表中。
历史记录最多显示最近的 25 次导入。
删除 Dataproc Metastore 服务也会删除所有关联的导入历史记录。
排查常见问题
一些常见问题包括:
如需有关解决常见问题排查的更多帮助,请参阅导入和导出错误场景。