将自行管理的 MySQL Metastore 迁移到 Dataproc Metastore

本页面介绍如何通过创建 MySQL 转储文件并将元数据导入现有 Dataproc Metastore 服务,将外部自行管理的 MySQL 元存储区迁移到 Dataproc Metastore。

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. 启用 Dataproc Metastore API。

    启用 API

必需的角色

如需获取创建 Dataproc Metastore 和导入 MYSQL Metastore 所需的权限,请让管理员向您授予以下 IAM 角色:

  • 如需创建服务并导入元数据,请执行以下操作:
  • 如需使用 Cloud Storage 对象(SQL 转储文件)导入,请执行以下操作:
    • Dataproc Metastore 服务代理上的 Storage Object Viewer (roles/storage.objectViewer)。例如 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
    • 用户帐号的 Storage Object Viewer (roles/storage.objectViewer) 角色。

如需详细了解如何授予角色,请参阅管理访问权限

这些预定义角色包含创建 Dataproc Metastore 和导入 MYSQL Metastore 所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需创建 Dataproc Metastore 和导入 MYSQL Metastore,需要以下权限:

  • 如需创建服务,请针对项目执行 metastore.services.create 操作。
  • 如需导入元数据,请执行以下操作: 针对项目的 metastore.imports.create 权限。
  • 如需使用 Cloud Storage 对象(SQL 转储文件)导入,请执行以下操作:
    • 针对 Dataproc Metastore 服务代理的 storage.objects.get 权限。例如 service-CUSTOMER_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com
    • 针对用户帐号的 storage.objects.get 权限。

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解特定的 Dataproc Metastore 角色和权限,请参阅使用 IAM 管理 Dataproc 访问权限

创建 Dataproc Metastore 服务

以下说明演示了如何创建可将 SQL 转储文件迁移到的 Dataproc Metastore 服务。

控制台

  1. 在 Google Cloud 控制台中,打开创建服务页面:

    前往“创建服务”

    “创建服务”页面。
    Dataproc Metastore“创建服务”页面
  2. 服务名称字段中,输入 example-service

  3. 选择数据位置。如需了解如何选择区域,请参阅 Cloud 位置

  4. 对于其他服务配置选项,请使用提供的默认值。

  5. 要创建并启动该服务,请点击提交按钮。

您的新服务会显示在“服务”列表中。

gcloud

运行以下 gcloud metastore services create 命令创建服务:

 gcloud metastore services create example-service \
     --location=LOCATION
 

LOCATION 替换为您计划在其中创建服务的 Compute Engine 区域。确保该地区提供 Dataproc Metastore

REST

按照 API 说明使用 API Explorer 创建服务

准备迁移

现在,您必须创建一个 MySQL 转储文件并将其放入 Cloud Storage 存储桶中,以准备存储在 Hive Metastore 数据库中的元数据以进行导入。

如需了解迁移准备工作,请参阅导入前准备导入文件

导入元数据

现在您已准备好转储,请将其导入您的 Dataproc Metastore 服务。

如需了解将元数据导入 example-service 服务的步骤,请参阅将文件导入 Dataproc Metastore

创建并关联 Dataproc 集群

将元数据导入 Dataproc Metastore example-service 服务后,请创建并关联 Dataproc 集群,该集群将该服务用作其 Hive Metastore。

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 如果您打算删除的项目已附加到某个组织,请展开名称列中的组织列表。
  3. 在项目列表中,选择要删除的项目,然后点击删除
  4. 在对话框中输入项目 ID,然后点击关闭以删除项目。

或者,您可以删除本教程中使用的资源:

  1. 删除 Dataproc Metastore 服务。

    控制台

    1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:

      在 Google Cloud 控制台中打开 Dataproc Metastore

    2. 通过选中相应的复选框,选择服务名称左侧的 example-service

    3. Dataproc Metastore 页面顶部,点击删除以删除该服务。

    4. 在对话框中,点击删除以确认删除。

    您的服务将不再出现在“服务”列表中。

    gcloud

    运行以下 gcloud metastore services delete 命令删除服务:

     gcloud metastore services delete example-service \
         --location=LOCATION

    LOCATION 替换为您创建服务的 Compute Engine 区域。

    REST

    按照 API 说明使用 API Explorer 删除服务

    所有删除操作都会立即成功执行。

  2. 删除 Dataproc Metastore 服务的 Cloud Storage 存储桶

后续步骤