BigLake metastore 简介

BigLake metastore 是一种统一的、无服务器且可扩缩的托管式 metastore,可将存储在 Cloud Storage 或 BigQuery 中的湖仓一体数据连接到多个运行时,包括开源运行时(例如 Apache Spark 和 Apache Flink)和 BigQuery。

BigLake metastore 提供了单一可信来源,用于管理来自多个引擎的元数据。它通过 BigLake Iceberg 表和标准 BigQuery 表来支持 Apache Iceberg 等重要的开源表格式。此外,BigLake metastore 还支持开放 API 和 Iceberg REST 目录预览版)。

下表可帮助您确定从何处开始 BigLake metastore 之旅:

用例 建议
开源引擎需要访问 Cloud Storage 中的数据。 探索 Iceberg REST 目录预览版)。
开源引擎需要与 BigQuery 的互操作性。 使用 BigQuery 自定义 Iceberg 目录插件,探索 BigLake metastore 与开源引擎(例如 Spark)的集成。

优势

BigLake metastore 在数据管理和分析方面具有以下优势:

  • 无服务器架构。BigLake metastore 提供无服务器架构,从而无需进行服务器或集群管理。这有助于减少运营开销、简化部署并允许根据需求自动扩缩。
  • 引擎互操作性。BigLake metastore 可让您在开源引擎(例如 Spark 和 Flink)和 BigQuery 中直接访问表,从而无需进行额外配置即可查询开放格式表。例如,您可以在 Spark 中创建一个表,然后直接在 BigQuery 中查询该表。这有助于简化分析工作流,并减少对复杂数据移动或 ETL 流程的需求。
  • 统一的用户体验。BigLake metastore 可在 BigQuery 和开源引擎之间提供统一的工作流。这种统一的体验意味着,您可以通过 Iceberg REST 目录预览版)配置自托管或由 Dataproc 托管的 Spark 环境,也可以在 BigQuery Studio 笔记本中配置 Spark 环境来执行相同的操作。

BigLake metastore 中的表格式

BigLake 支持多种表类型。下表可帮助您选择最适合自己应用场景的格式:

外部表 BigLake Iceberg 表 BigQuery 中的 BigLake Iceberg 表 标准 BigQuery 表
Metastore 外部或自托管 metastore BigLake metastore BigLake metastore BigLake metastore
存储 Cloud Storage / Amazon S3 / Azure Cloud Storage Cloud Storage BigQuery
管理 客户或第三方 Google Google(托管程度较高的体验) Google(托管程度最高的体验)
读取/写入 开源引擎(读取/写入)

BigQuery(只读)
开源引擎(读取/写入)

BigQuery(只读)
开源引擎(通过 Iceberg 库实现只读操作,通过 BigQuery Storage API 实现读/写互操作性)

BigQuery(读/写)

开源引擎(通过 BigQuery Storage API 实现读/写互操作性)

BigQuery(读/写)

使用场景 迁移、用于 BigQuery 加载的暂存表、自我管理 开放式湖仓一体 开放式湖仓一体,适用于分析、流式处理和 AI 的企业级存储 适用于分析、流式传输和 AI 的企业级存储

与 BigLake metastore(经典版)的差异

BigLake metastore 是 Google Cloud上推荐使用的 metastore。

BigLake metastore 与 BigLake metastore(经典版)之间的核心区别包括以下详细信息:

  • BigLake metastore(经典版)是一项独立的 metastore 服务,它与 BigQuery 不同,并且仅支持 Iceberg 表。它具有不同的三部分资源模型。BigLake metastore(经典版)表不会在 BigQuery 中被自动发现。
  • 您可以从多个开源引擎和 BigQuery 访问 BigLake metastore 中的表。BigLake metastore 支持与 Spark 直接集成,这有助于减少存储元数据和运行作业时的冗余。BigLake metastore 还支持 Iceberg REST 目录预览版),后者可跨多个运行时连接湖仓一体数据。

限制

BigLake metastore 中的表存在以下限制:

  • 您无法使用 BigQuery 引擎通过 DDL 或 DML 语句创建或修改 BigLake metastore 表。您可以使用 BigQuery API(通过 bq 命令行工具或客户端库)修改 BigLake 元数据库表,但这样做可能会导致更改与外部引擎不兼容。
  • BigLake metastore 表不支持重命名操作ALTER TABLE ... RENAME TO Spark SQL 语句。
  • BigLake metastore 表与标准表具有相同的配额和限制
  • 与在标准 BigQuery 表中查询数据相比,BigQuery 引擎中 BigLake metastore 表的查询速度可能较慢。一般而言,BigLake metastore 表的查询性能应等同于直接从 Cloud Storage 读取数据。
  • 使用 BigLake 元数据库表的查询的试运行可能会报告 0 字节数据的下限,即使在返回了数据行的情况下也是如此。出现这种结果的原因是,在实际查询完成之前,无法确定从表中处理的数据量。运行查询会产生处理此数据的费用。
  • 您无法在通配符表查询中引用 BigLake metastore 表。
  • 您无法使用 tabledata.list 方法从 BigLake metastore 表中检索数据。不过,您可以将查询结果保存到目标表中,然后对该表使用 tabledata.list 方法。
  • BigLake metastore 表不支持聚类
  • BigLake metastore 表不支持使用灵活的列名称
  • 不支持显示 BigLake metastore 表的表存储空间统计信息。
  • BigLake metastore 不支持 Iceberg 视图。

后续步骤