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 中创建表。

    在 BigLake Metastore 中创建表

    接下来,您可以在Google Cloud 控制台中查询同一个 Spark 表。

    在 BigLake Metastore 中查询表

受支持的集成

您可以将 BigLake Metastore 与 Google Cloud 控制台、gcloud CLI、BigQuery REST API 或 Iceberg REST API 搭配使用。

BigLake Metastore 支持以下集成:

与 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 表的表存储统计信息。

后续步骤