关于元数据联合

元数据联合是一项服务,可让您访问 从单个端点管理元数据

要设置联合,请创建联合服务,然后配置您的 元数据源。之后,该服务会公开一个 gRPC 端点 用于访问所有元数据。

例如,您可以使用联合创建 Dataproc 集群 该服务可通过 单个端点之后,您可以通过开源软件运行大数据作业 软件 (OSS) 引擎(如 Spark 或 Hive), 多个 Metastore

联合的工作原理

在 Spark 或 Hive 上运行的 OSS 大数据工作负载向 Hive 发送请求 用于在运行时提取元数据的 Metastore API。

  • Hive Metastore 界面 支持读取和写入方法。联合服务公开了 gRPC 版本的 Hive Metastore 接口。
  • 在运行时,当联邦服务收到请求时,它会检查来源排序以检索适当的元数据。

元数据来源

创建联合服务时,您必须添加元数据源。 您可以将以下源用作后端 Metastore:

  • 一个 Dataproc Metastore 实例。
  • 包含一个或多个 BigQuery 数据集的项目。
  • Dataplex 数据湖(预览版)。

来源限制

以下部分列出了使用各种元数据源时必须遵守的限制。

所有来源

以下限制适用于所有元数据源:

  • 联合服务不包含自己的数据。相反,联合会 服务只提供来自其元数据源的元数据。
  • 一项联合服务不能作为另一项联盟中的元数据来源 服务。

Dataproc Metastore

如果您使用的是 Dataproc Metastore 作为来源,则存在以下限制:

  • 联合服务只能通过 gRPC 端点使用。要使用 Dataproc Metastore 与联合机制,请创建您的 Metastore 具有 gRPC 端点
  • 联合服务可以附加到单区域 Dataproc Metastore 服务联合服务不支持 多区域 Dataproc Metastore 服务。

BigQuery

如果您使用的项目包含 BigQuery 数据集, 您必须满足以下条件:

  • 授予正确的 IAM 角色以访问包含 BigQuery 数据集的项目。
  • 将至少一个 Dataproc Metastore 服务以及您的 BigQuery 数据集添加为来源。

Dataplex 数据湖

  • 授予包含 dataplex.lakes.get 权限的 IAM 角色。
  • 添加至少一个 Dataproc Metastore 服务作为来源, 以及 Dataplex Lake 数据

来源排序

您的联合服务按优先级顺序处理元数据请求。这个 称为源代码排序在运行时,当联邦服务收到请求时,它会检查来源排序并完成以下操作之一:

  • 如果请求包含数据库名称。该请求会路由到 包含数据库名称的后端 Metastore。如果有多个元存储空间包含相同的数据库名称,系统会将请求路由到排名最低的元存储空间。
  • 如果请求创建或删除数据库。请求会路由到排名最低的元存储空间。
  • 如果请求不包含数据库名称,并且没有创建或 删除数据库。该请求会路由到 排名最低的 Dataproc Metastore 实例。不指定数据库的 Hive Metastore 请求的一些示例包括 set_ugicreate_database
  • 如果所有元存储空间都不包含数据库。OSS 引擎会做出响应 与“未找到”错误等效。

后续步骤