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 表。它具有不同的三部分资源模型。不会从 BigQuery 自动发现 BigLake Metastore(传统版)表。
BigLake Metastore 基于 BigQuery 目录,并直接与 BigQuery 集成。BigLake Metastore ��的表可通过多个开源引擎进行更改,并且可以通过 BigQuery 查询相同的表。使用 BigQuery 时,元数据只有一个可信来源。例如,BigLake Metastore 支持与 Spark 直接集成。此集成可提供更顺畅的工作流,并有助于减少存储元数据和运行作业时的冗余。
限制
BigLake Metastore 表存在以下限制:
- 您无法使用 BigQuery 引擎通过 DDL 或 DML 语句创建或修改 BigLake Metastore 表。您可以使用 BigQuery API(通过 bq 命令行工具或客户端库)修改 BigLake Metastore 表,但这样做可能会导致所做的更改与外部引擎不兼容。
- 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 搭配使用