创建元数据联合服务

本页介绍了如何为 Dataproc Metastore 创建元数据联合服务。借助联合服务,您可以通过单个 gRPC 端点访问存储在多个来源中的元数据。

如需详细了解联合的运作方式及其限制,请参阅元数据联合简介

准备工作

所需的角色

如需获得创建联邦服务和附加 Dataproc 集群所需的权限,请遵循最小特权原则,让管理员为您授予以下 IAM 角色:

  • 如需访问联合服务:用户账号或服务账号的 Federation accessor (roles/metastore.federationAccessor)
  • 如需授予对所有 Dataproc Metastore 资源的完全控制权,请使用用户账号或服务账号中的 Dataproc Metastore 编辑器 (roles/metastore.editor)
  • 如需对使用联邦服务配置的 Dataproc Metastore 完成元数据操作,请执行以下操作: 用户账号或服务账号中的 Metastore 所有者 (metastore.metadataEditor)
  • 如需创建 Dataproc 集群,请使用: Dataproc 虚拟机服务账号中的 Dataproc Worker (roles/dataproc.worker)
  • (可选)如需访问 BigQuery 数据集,请为用户账号或服务账号使用适用于您的用例的适当 BigQuery 预定义角色
  • (可选)如需访问 Dataplex 数据湖(预览版),请在用户账号或服务账号上使用适用于您的用例的适当 Dataplex 预定义角色

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

这些预定义角色包含创建联合服务和附加 Dataproc 集群所需的权限,遵循最小权限原则。如需查看所需的确切权限,请展开所需权限部分:

所需权限

若要创建联合服务并附加 Dataproc 集群,您需要遵循最小权限原则,并具备以下权限:

  • 如需创建 Dataproc Metastore,请执行以下操作: metastore.services.create 在用户账号或服务账号中
  • 如需列出、获取、创建、更新和删除联邦服务,请执行以下操作: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list 在用户账号或服务账号中
  • 如需对 Dataproc Metastore 完成元数据操作,请执行以下操作: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy 在用户账号或服务账号中
  • (可选)如需访问 BigQuery 数据集,请执行以下操作: For more information, see BigQuery permissions 在用户账号或服务账号中
  • (可选)如需访问 Dataplex 数据湖(预览版),请在用户账号或服务账号中执行以下操作: For more information, see Dataplex permissions

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

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

创建联合服务

以下说明介绍了如何创建联合服务并将其附加到来源。完成这些步骤后,您可以将联邦服务附加到 Dataproc 集群。

如需详细了解联合来源及其限制,请参阅元数据源

控制台

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

    打开 Dataproc Metastore

  2. 在 Dataproc 导航菜单中,点击联合

    系统会打开联邦 Metastore 服务页面。

  3. 联邦元数据存储库菜单栏中,点击创建

    系统随即会打开创建联合服务页面。

  4. 联合服务名称字段中,为您的服务输入一个唯一名称。

    如需了解详情,请参阅资源命名惯例

  5. 选择数据位置

    请确保您在与 Dataproc Metastore 源相同的区域创建联邦服务。

  6. 选择 Hive 版本

  7. 如需为联合服务添加来源,请点击添加来源

    您可以添加一个或多个来源。您在此列表中添加的第一个来源会自动设置为您的主要元存储空间。您可以在创建后更新来源排序。

    1. 来源类型中,选择您的联合来源。

      您可以选择 Dataproc Metastore 实例、包含一个或多个 BigQuery 数据集的项目,或 Dataplex 数据湖(预览版)。

    2. 来源字段中,输入以下信息:

      • 对于 Dataproc Metastore 服务

        1. 所选项目字段中,点击浏览,然后选择包含您要用作来源的 Dataproc Metastore 的项目。

          确保您的 Dataproc Metastore 来源使用的 Hive 版本与您的联邦服务兼容。主 Metastore 必须使用高于或等于您的联邦服务的 Hive 版本。

        2. Metastore 服务下拉菜单中,选择要用作来源的 Dataproc Metastore。

      • 对于 BigQuery。 在所选项目字段中,点击浏览,然后选择包含 BigQuery 数据集的项目的项目 ID。

      • 对于 Dataplex预览版)。 在所选项目字段中,点击浏览,然后选择包含 Dataplex Lake 的项目的项目 ID。

    3. 点击完成

  8. 如需创建并启动该服务,请点击提交

    现在,您可以将联邦服务附加到 Dataproc 集群

更新联邦服务

以下说明介绍了如何更新联邦服务。您可以完成以下任务:

  • 向联合服务添加来源。
  • 从联邦服务中移除来源。
  • 更改联合服务中包含的来源的来源排序。
  • 永久删除联邦服务。删除服务后,系统会释放其所有资源。

控制台

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

    打开 Dataproc Metastore

  2. 在 Dataproc 导航菜单中,点击联合

    系统会打开联邦 Metastore 服务页面。

  3. 联邦元数据存储服务页面上,点击要更新的服务的名称。

    服务详细信息页面会打开。

  4. 在菜单栏中,点击修改

    系统随即会打开修改服务页面。

  5. 选择要更新的值。

  6. 如需更新服务,请点击提交

将 Dataproc 集群附加到联邦服务

以下说明介绍了如何创建 Dataproc 集群并将联邦服务端点附加为其元存储空间。

在开始按照这些说明操作之前,请完成准备工作中列出的所有步骤,并创建联合服务

gcloud CLI

如需创建 Dataproc 集群并附加联邦端点,请运行以下 gcloud Dataproc clusters create 命令。

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

替换以下内容:

  • CLUSTER_NAME:新 Dataproc 集群的名称。
  • PROJECT_ID:您要在其中创建 Dataproc 集群的项目的 Google Cloud 项目 ID。
  • LOCATION:Dataproc 集群所在的区域。
  • IMAGE_VERSION:您要使用的 Dataproc 映像版本。

    请确保您在此命令中使用的 Dataproc 映像与您的联邦服务所用的 Hive 版本兼容。如需了解详情,请参阅 Dataproc 映像版本列表

  • SERVICE_ACCOUNT 可选:您用于创建 Dataproc 集群的服务账号。如果未指定,集群将使用您的默认 Compute Engine 服务账号。

  • FEDERATION_URI:您的联盟服务的端点 URI。

  • FEDERATION_VERSION:您的联邦服务使用的 Hive 版本。

  • WAREHOUSE_DIR:主要 Dataproc Metastore 的仓库目录。

后续步骤