BigLake metastore 是一项全代管式无服务器服务,可为您的数据湖仓一体提供单一可信来源。它使多个引擎(包括 Apache Spark、Apache Flink 和 BigQuery)能够共享表和元数据,而无需复制文件。
BigLake metastore 支持存储访问权限委派(凭据自动售卖),从而无需直接访问 Cloud Storage 存储桶,进而提高安全性。它还与 Dataplex Universal Catalog 集成,可实现统一的治理、沿袭和数据质量。
主要功能
作为 BigLake 的一个组件,BigLake metastore 在数据管理和分析方面具有多项优势,包括无服务器架构、通过开放 API 实现引擎互操作性、统一的用户体验,以及与 BigQuery 搭配使用时可实现高性能的分析、流式传输和 AI。如需详细了解这些优势,请参阅 什么是 BigLake?
支持的引擎
BigLake metastore 与多种查询引擎兼容,包括(但不限于)Apache Spark、Apache Flink 和 Trino。下表提供了指向每个引擎的文档的链接:
| Engine | 文档 |
|---|---|
| Apache Spark | 快速入门:与 Spark 搭配使用 |
| Apache Flink | 与 Apache Flink 搭配使用 |
| Trino | 与 Trino 搭配使用 |
配置选项
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 视图。