BigLake metastore 简介
BigLake metastore 是一种全托管式 metastore,适用于Google Cloud上的数据分析产品。它提供了一个可信来源,用于管理来自多个来源的元数据。您可以从 BigQuery 和各种开放数据处理引擎访问 metastore,这使其成为数据分析师和工程师的实用工具。
例如,您可以将 BigLake metastore 用作目录,并将其与 Apache Spark 等开源查询引擎搭配使用。使用 Spark 创建的表可以使用 BigQuery 进行查询,而无需同步元数据。
优势
BigLake metastore 在数据管理和分析方面具有以下优势:
- 无服务器架构。BigLake metastore 提供无服务器架构,从而无需进行服务器或集群管理。这有助于减少运营开销、简化部署并允许根据需求自动扩缩。
- 引擎互操作性。BigLake metastore 可让您在 BigQuery 中直接访问表,从而无需进行额外配置即可查询存储在 BigQuery 中的开放格式表。例如,您可以在 Spark 中创建一个表,然后直接在 BigQuery 中查询该表。这有助于简化分析工作流,并减少对复杂数据移动或 ETL 流程的需求。
统一的用户体验。BigLake metastore 可在 BigQuery 和 BigQuery Studio 之间提供统一的工作流。这样,您就可以直接在 BigQuery 和 BigQuery Studio 中使用 Spark。例如:
首先,您可以使用 BigQuery Studio 笔记本在 Spark 中创建表。
接下来,您可以在Google Cloud 控制台中查询同一个 Spark 表。
受支持的集成
您可以将 BigLake metastore 与 Google Cloud 控制台、gcloud CLI、BigQuery REST API 或 Iceberg REST API 搭配使用。
BigLake metastore 支持以下集成:
- 表格式。Apache Iceberg 1.5.2 或更高版本。
- Dataproc。2.2 或更高版本。
- 数据处理引擎。Spark 3.3 或更高版本。
- 插件。BigLake metastore Iceberg 目录插件。
与 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 表的表存储空间统计信息。
后续步骤
- 将 Dataproc Metastore 数据迁移到 BigLake metastore
- 将 BigLake metastore 与 Dataproc 搭配使用
- 将 BigLake metastore 与 Dataproc Serverless 搭配使用