BigLake metastore 是一种统一的、无服务器且可伸缩的托管式 metastore,可将存储在 Google Cloud 中的湖仓一体数据连接到多个运行时,包括开源引擎(例如 Apache Spark)和 BigQuery。它为您构建开放式、托管式且高性能的湖仓一体架构奠定了基础,让您能够使用 Apache Iceberg 等关键的开源表格式,实现自动化数据管理和内置治理。
BigLake metastore 提供了一个可信来源,用于管理来自多个来源的元数据,从而无需使用自定义工具在不同分析系统和代码库之间复制和同步数据和元数据。它还支持存储访问权限委托模型(例如凭据自动售卖),从而无需目录用户直接访问 Cloud Storage 存储分区。
对于在 BigQuery 中使用 BigLake Iceberg 表的工作流,BigLake metastore 也受 Dataplex Universal Catalog 支持,后者可在所有受支持的引擎中提供统一且精细的访问权限控制,并实现端到端治理,包括全面的沿袭、数据质量和可发现性功能。
BigLake metastore 可以通过以下两种方式之一进行配置:使用 Iceberg REST 目录或 BigQuery 的自定义 Iceberg 目录。最佳方案取决于您的使用情形,如下表所示:
| 用例 | 建议 |
|---|---|
| 希望其开源引擎能够访问 Cloud Storage 中的数据,并且需要与其他引擎(包括 BigQuery 和 AlloyDB)实现互操作性的 BigLake metastore 新用户。 | 使用 Iceberg REST 目录。 |
| 已使用 BigLake metastore 且当前表使用 BigQuery 的自定义 Iceberg 目录的用户。 | 继续使用 BigQuery 的自定义 Iceberg 目录,但为新工作流使用 Iceberg REST 目录。通过联合查询,使用 BigQuery 的自定义 Iceberg 目录创建的表可通过 Iceberg REST 目录查看。 |
主要功能
BigLake metastore 在数据管理和分析方面具有以下主要优势:
- 无服务器架构。BigLake metastore 提供无服务器架构,从而无需进行服务器或集群管理。这样做有助于减少运营开销、简化部署并允许根据需求自动扩缩。
- 通过开放 API 实现引擎互操作性。BigLake metastore 支持与开源引擎和第三方引擎互操作。BigLake metastore 可让您在开源引擎(例如 Spark 和 Flink)和 BigQuery 中直接访问表,从而无需执行额外的连接步骤即可查询开放格式表。此配置有助于简化分析工作流,并减少对复杂数据移动或 ETL 流程的需求。
- 统一的用户体验。BigLake metastore 可在开源引擎和 BigQuery 之间提供统一的工作流。这种统一的体验意味着,您可以配置自托管、由 Dataproc 通过 Iceberg REST 目录托管或位于 BigQuery 笔记本中的 Spark 环境。
- 使用 BigQuery 实现高性能分析、流式处理和 AI。 借助 BigLake metastore,您可以将 Iceberg 数据存储在自己的 Cloud Storage 存储分区中,并利用 BigQuery 的高度可伸缩的实时元数据管理功能。此架构可让您同时享有 Cloud Storage 的开放性和数据所有权,以及 BigQuery 的全代管式流式处理、分析和 AI 功能。
与 BigLake metastore(经典版)的差异
BigLake metastore 是 Google Cloud上推荐使用的 metastore,而 BigLake metastore(经典版)被视为旧版功能。
BigLake metastore 与 BigLake metastore(经典版)之间的核心区别包括以下几点:
- BigLake metastore 支持与 Spark 等开源引擎直接集成,这有助于减少存储元数据和运行作业时的冗余。您可以直接从多个开源引擎和 BigQuery 访问 BigLake metastore 中的表。
- BigLake metastore 支持 Iceberg REST 目录,而 BigLake metastore(经典版)不支持。
BigLake metastore 限制
BigLake metastore 中的表存在以下限制:
- 您无法使用 BigQuery 数据定义语言 (DDL) 或数据操纵语言 (DML) 语句创建或修改 BigLake Iceberg 表。您可以使用 BigQuery API(通过 bq 命令行工具或客户端库)修改 BigLake Iceberg 表,但这样做可能会导致更改与外部引擎不兼容。
- BigLake metastore 表不支持重命名操作或
ALTER TABLE ... RENAME TOSpark SQL 语句。 - BigQuery 中的 BigLake metastore 表与标准表具有相同的配额和限制。
- 与在标准 BigQuery 表中查询数据相比,BigQuery 引擎中 BigLake metastore 表的查询速度可能较慢。一般来说,查询速度应等同于从 Cloud Storage 读取数据的速度。
- 使用 BigLake 元数据库表的查询的 BigQuery 试运行可能会报告 0 字节数据的下限,即使在返回了数据行的情况下也是如此。出现这种结果的原因是,在运行完整查询之前,无法确定从表中处理的数据量。运行查询会产生处理此数据的费用。
- 您无法在通配符表查询中引用 BigLake metastore 表。
- 您无法使用
tabledata.list方法从 BigLake metastore 表中检索数据。不过,您可以将查询结果保存到 BigQuery 表中,然后对该表使用tabledata.list方法。 - BigLake metastore 表不支持聚类。
- BigLake metastore 表不支持使用灵活的列名称。
- 不支持显示 BigLake metastore 表的表存储空间统计信息。
- BigLake metastore 不支持 Iceberg 视图。