BigLake metastore 是一项全代管式无服务器服务,可为您的数据湖仓一体提供单一可信来源。它使多个引擎(包括 Apache Spark、Apache Flink 和 BigQuery)能够共享表和元数据,而无需复制文件。
BigLake metastore 支持存储访问权限委派(凭据贩售),从而无需直接访问 Cloud Storage 存储桶,进而提高安全性。它还与 Dataplex Universal Catalog 集成,以实现统一的治理、沿袭和数据质量。
主要功能
作为 BigLake 的一个组件,BigLake metastore 在数据管理和分析方面具有多项优势,包括无服务器架构、通过开放 API 实现引擎互操作性、统一的用户体验,以及与 BigQuery 搭配使用时可实现高性能分析、流式传输和 AI。如需详细了解这些优势,请参阅 什么是 BigLake?
配置选项
BigLake metastore 可以通过以下两种方式之一进行配置:使用 Iceberg REST 目录或 BigQuery 的自定义 Iceberg 目录。最佳方案取决于您的使用情形,如下表所示:
| 用例 | 建议 |
|---|---|
| 希望其开源引擎能够访问 Cloud Storage 中的数据,并且需要与其他引擎(包括 BigQuery 和 AlloyDB for PostgreSQL)实现互操作性的 BigLake metastore 新用户。 | 使用 Iceberg REST 目录。 |
| 已使用 BigLake metastore 且当前表使用 BigQuery 的自定义 Iceberg 目录的用户。 | 继续使用 BigQuery 的自定义 Iceberg 目录,但为新工作流使用 Iceberg REST 目录。通过 BigQuery 目录联合,使用 BigQuery 的自定义 Iceberg 目录创建的表可通过 Iceberg REST 目录查看。 |
与 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 视图。