元数据联合是一项服务,可让您访问 从单个端点管理元数据
要设置联合,请创建联合服务,然后配置您的 元数据源。之后,该服务会公开一个 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_ugi
和create_database
。 - 如果所有元存储空间都不包含数据库。OSS 引擎会做出响应 与“未找到”错误等效。