湖仓一体架构运行时目录是一项全代管式无服务器服务,可为您的数据湖仓一体架构提供单一可信来源。它使多个引擎(包括 Apache Spark、Apache Flink 和 BigQuery)能够共享表和元数据,而无需复制文件。
Lakehouse 运行时目录支持存储访问权限委托(凭据贩售),从而无需直接访问 Cloud Storage 存储桶,进而提高安全性。它还与 Knowledge Catalog 集成,以实现统一的治理、沿袭和数据质量。
主要功能
作为 Google Cloud Lakehouse 的一个组件,Lakehouse 运行时目录为数据管理和分析提供了多项优势,包括无服务器架构、通过开放式 API 实现的引擎互操作性、统一的用户体验,以及与 BigQuery 搭配使用时可实现的高性能分析、流式处理和 AI。如需详细了解这些优势,请参阅什么是 Google Cloud Lakehouse?
支持的引擎
湖仓一体运行时目录与多种查询引擎兼容,包括(但不限于)Apache Spark、Apache Flink 和 Trino。下表提供了指向每种引擎的文档的链接:
| Engine | 文档 |
|---|---|
| Apache Spark | 快速入门:与 Spark 搭配使用 |
| Apache Flink | 与 Apache Flink 搭配使用 |
| Trino | 与 Trino 搭配使用 |
配置选项
您可以通过以下两种方式之一配置 Lakehouse 运行时目录:使用 Apache Iceberg REST 目录端点或 *适用于 BigQuery 的自定义 Apache Iceberg 目录端点。最佳选择取决于您的使用情形,如下表所示:
| 用例 | 建议 |
|---|---|
| 希望其开源引擎能够访问 Cloud Storage 中的数据,并且需要与其他引擎(包括 BigQuery 和 AlloyDB for PostgreSQL)实现互操作性的新 Lakehouse 运行时目录用户。 | 使用 Apache Iceberg REST Catalog 端点。 |
| 现有 Lakehouse 运行时目录用户,其当前表使用 BigQuery 的自定义 Apache Iceberg 目录。 | 继续使用 BigQuery 端点的自定义 Apache Iceberg Catalog,但对于新工作流,请使用 Apache Iceberg REST Catalog。通过 BigQuery 目录联合,使用 BigQuery 端点的自定义 Apache Iceberg 目录创建的表可通过 Apache Iceberg REST 目录查看。 |
与 BigLake metastore(经典版)的差异
湖仓一体运行时目录是Google Cloud上推荐使用的 metastore,而 BigLake metastore(经典版)被视为旧版功能。
Lakehouse 运行时目录与 BigLake metastore(经典版)之间的核心区别包括以下几点:
- Lakehouse 运行时目录支持与 Spark 等开源引擎直接集成,这有助于减少存储元数据和运行作业时的冗余。您可以从多个开源引擎和 BigQuery 直接访问湖仓一体运行时目录中的表。
- Lakehouse 运行时目录支持 Apache Iceberg REST 目录端点,而 BigLake metastore(经典版)不支持。
Lakehouse 运行时目录限制
Lakehouse 运行时目录中的表存在以下限制:
表格管理
- 您无法使用 BigQuery 数据定义语言 (DDL) 或数据操纵语言 (DML) 语句创建或修改 Lakehouse Iceberg REST 目录表。您可以使用 BigQuery API(通过 bq 命令行工具或客户端库)修改 Lakehouse Iceberg REST 目录表,但这样做可能会导致更改与外部引擎不兼容。
- 湖仓一体运行时目录表不支持重命名操作或
ALTER TABLE ... RENAME TOSpark 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 运行时目录表与标准表具有相同的配额和限制。