BigLake metastore 简介

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 TO Spark 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 视图。

后续步骤