跳转到主要内容
ClickHouse 支持与多个目录 (如 Unity、Glue、Polaris 等) 集成。本指南将逐步介绍如何通过 ClickHouse 查询 Lakehouse 运行时目录 (即 BigLake Metastore) 中的 Iceberg 表。
由于该功能目前处于 Beta 阶段,你需要使用以下语句启用它: SET allow_database_iceberg = 1;

前置条件

在创建从 ClickHouse 到 Lakehouse 运行时目录 (BigLake Metastore) 的 connection 之前,请确保你已具备以下条件:
  • 一个已启用 Lakehouse 运行时目录的 Google Cloud 项目
  • 某个应用的 应用默认凭据 (OAuth client ID 和 client secret) ,通过 Google Cloud Console 创建
  • 通过完成具有适当作用域的 OAuth 流程获取的 刷新令牌 (例如 https://www.googleapis.com/auth/bigquery 以及适用于 GCS 的存储作用域)
  • 仓库 路径:存储表的 GCS 存储桶 (以及可选前缀) ,例如 gs://your-bucketgs://your-bucket/prefix

在 Lakehouse 运行时目录与 ClickHouse 之间建立连接

完成 OAuth 凭证配置后,在 ClickHouse 中创建一个使用 DataLakeCatalog 数据库引擎的数据库:

使用 ClickHouse 查询 Lakehouse 运行时目录中的表

创建连接后,您可以查询已注册到 Lakehouse 运行时目录中的表。
示例输出:
必须使用反引号必须使用反引号,因为 ClickHouse 不支持多个命名空间。
要查看表定义:

将 Lakehouse 中的数据加载到 ClickHouse

要将 Lakehouse 运行时目录表中的数据加载到本地 ClickHouse 表,以加快重复查询的速度,请创建一个 MergeTree 表,并从该目录插入数据:
初始加载完成后,查询 clickhouse_table 可获得更低的延迟。需要时,可重新运行 INSERT INTO ... SELECT,从 BigLake 刷新数据。
最后修改于 2026年6月12日