关于 Lakehouse 运行时目录

Lakehouse 运行时目录是一种全代管式无服务器服务,可为您的数据湖仓一体架构提供单一的事实来源。借助该目录,多个引擎(包括 Apache Spark、Apache Flink 和 BigQuery)可以共享表和元数据,而无需复制文件。

Lakehouse 运行时目录支持存储空间访问权限委托(凭据销售),这消除了直接访问 Cloud Storage 存储桶的需求,从而提高了安全性。它还与 Knowledge Catalog 集成,以实现统一的 治理、沿袭和数据质量。

主要功能

作为 Lakehouse for Apache Iceberg 的一个组件, Lakehouse 运行时目录为数据 管理和分析提供了多项优势,包括无服务器架构、通过开放式 API 实现的引擎互操作性、统一的用户体验,以及与 BigQuery 搭配使用时的高性能 分析、流式处理和 AI。如需详细了解这些优势,请参阅什么是 Lakehouse?

支持的引擎

Lakehouse 运行时目录与多个查询引擎兼容,包括(但不限于)Apache Spark、Apache Flink 和 Trino。下表提供了指向每个引擎的文档的链接:

引擎 文档
Apache Spark 快速入门:与 Spark 搭配使用
Apache Flink 与 Apache Flink 搭配使用
Trino 与 Trino 搭配使用

端点配置选项

Lakehouse 运行时目录可以通过以下两种方式之一进行配置:使用 Apache Iceberg REST 目录 端点或 适用于 BigQuery 的自定义 Apache Iceberg 目录 端点。最佳选择取决于您的用例,如下表所示:

用例 建议
新的 Lakehouse 运行时目录用户,希望其开源引擎访问 数据在 Cloud Storage 中,并且需要与其他引擎( 包括 BigQuery 和 AlloyDB for PostgreSQL)实现互操作性。 使用 Apache Iceberg REST 目录端点
现有的 Lakehouse 运行时目录用户,其当前表是使用适用于 BigQuery 的自定义 Apache Iceberg 目录端点创建的。 继续使用适用于 BigQuery 的自定义 Apache Iceberg 目录端点,但对于新工作流,请使用 Apache Iceberg REST 目录。通过 BigQuery 目录联合,使用适用于 BigQuery 的自定义 Apache Iceberg 目录端点创建的表会显示在 Apache Iceberg REST 目录端点中。

与 BigLake metastore(经典版)的差异

Lakehouse 运行时目录是上推荐使用的 metastore,而 BigLake metastore (经典版) 被视为旧版 功能。Google Cloud

Lakehouse 运行时目录与 BigLake metastore(经典版)之间的核心区别包括以下几点:

  • Lakehouse 运行时目录支持与 Spark 等开源引擎直接集成,这有助于减少存储元数据和运行作业时的冗余。您可以从多个开源引擎和 BigQuery 直接访问 Lakehouse 运行时目录中的表。
  • Lakehouse 运行时目录支持 Apache Iceberg REST 目录端点,而 BigLake metastore(经典版)不支持。

Lakehouse 运行时目录限制

Lakehouse 运行时目录中的表存在以下限制:

表管理

  • 您无法使用 BigQuery 数据定义语言 (DDL) 或数据操纵语言 (DML) 语句通过 Apache Iceberg REST 目录端点创建或修改表。您可以使用 BigQuery API(通过 bq 命令行工具或客户端库)修改这些表,但这样做可能会导致更改与外部引擎不兼容。
  • Lakehouse 运行时目录中的表不支持 重命名操作ALTER TABLE ... RENAME TO Spark SQL 语句。
  • Lakehouse 运行时目录中的表不支持 聚类
  • Lakehouse 运行时目录中的表不支持使用 灵活的列名称
  • Lakehouse 运行时目录不支持 Apache Iceberg 视图。

查询

  • 与查询标准 BigQuery 表中的数据相比,BigQuery 引擎中 Lakehouse 运行时目录中的表的查询性能可能较慢。一般而言,查询速度应等同于从 Cloud Storage 读取数据的速度。
  • 使用 Lakehouse 运行时目录中的表的查询的 BigQuery 试运行 可能会报告 0 字节数据的下限,即使返回行也是如此。 出现此结果的原因是,在运行完整查询之前,无法确定从表中处理的数据量。运行查询会产生处理此数据的费用。
  • 您无法在 通配符表 查询中引用 Lakehouse 运行时目录中的表 。

API 和元数据

  • 您无法使用 tabledata.list 方法 从 Lakehouse 运行时目录中的表中检索数据。不过,您可以将查询结果保存到 BigQuery 表中,然后对该表使用 tabledata.list 方法。
  • 不支持显示 Lakehouse 运行时目录中的表的表存储空间统计信息。

配额和限制

  • BigQuery 中 Lakehouse 运行时目录中的表与标准表具有相同的 配额和 限制

后续步骤