跳转到主要内容
与 Lakekeeper 目录 的集成仅适用于 Iceberg 表。 此集成同时支持 AWS S3 和其他云存储提供商。
ClickHouse 支持与多个目录 (Unity、Glue、REST、Polaris 等) 集成。本指南将逐步介绍如何使用 ClickHouse 和 Lakekeeper 目录查询你的数据。 Lakekeeper 是 Apache Iceberg 的开源 REST 目录 实现,提供:
  • 高性能且具备原生 Rust实现,兼顾性能与可靠性
  • 符合 Iceberg REST 目录 规范的 REST API
  • 与兼容 S3 存储的云存储集成
由于此功能仍处于 Experimental 阶段,你需要使用以下命令启用: SET allow_experimental_database_iceberg = 1;

本地开发环境设置

对于本地开发和测试,你可以使用容器化的 Lakekeeper 部署。这种方式非常适合学习、原型设计和开发环境。

前置条件

  1. Docker and Docker Compose:确保已安装并运行 Docker
  2. 示例设置:你可以使用 Lakekeeper 的 docker-compose 配置

设置本地 Lakekeeper 目录

你可以使用官方的 Lakekeeper docker-compose 配置,它提供了一个完整的环境,其中包含 Lakekeeper、PostgreSQL 元数据后端,以及用作对象存储的 MinIO。 步骤 1: 创建一个用于运行此示例的新文件夹,然后创建一个名为 docker-compose.yml 的文件,内容如下:
**第 2 步:**运行以下命令以启动服务:
**步骤 3:**等待所有服务就绪。你可以查看日志:
Lakekeeper 设置要求先将样本数据加载到 Iceberg 表中。请确保环境中已创建这些表并填充数据,然后再尝试通过 ClickHouse 查询它们。表是否可用取决于具体的 docker-compose 设置以及样本数据加载脚本。

连接到本地 Lakekeeper 目录

连接到您的 ClickHouse 容器:
然后创建与 Lakekeeper 目录 的数据库连接:

使用 ClickHouse 查询 Lakekeeper 目录 中的表

建立连接后,你就可以开始通过 Lakekeeper 目录 进行查询。例如:
如果你的环境中包含示例数据 (例如出租车数据集) ,你应该会看到如下这些表:
如果你没有看到任何表,通常说明:
  1. 环境尚未创建样本表
  2. Lakekeeper 目录 service 尚未完全初始化
  3. 样本数据加载过程尚未完成
你可以查看 Spark 日志,了解表创建进度:
如需查询表 (如果可用) :
必须使用反引号由于 ClickHouse 不支持多个命名空间,因此必须使用反引号。
要查看该表的 DDL:

将数据湖中的数据加载到 ClickHouse

如果您需要将 Lakekeeper 目录 中的数据加载到 ClickHouse,请先创建一个本地 ClickHouse 表:
然后通过 INSERT INTO SELECT 从 Lakekeeper 目录 表中导入数据:
最后修改于 2026年6月12日