ClickHouse and Apache Iceberg: OLake Go guides
ClickHouse reads Iceberg tables in place through its DataLakeCatalog database engine. You can query the copied data with no insert job.
Short answer. To query a replicated database in ClickHouse, run OLake Go with a catalog ClickHouse reads, such as Polaris, Lakekeeper or AWS Glue. Then create a DataLakeCatalog database for it. Add ClickHouse as a target query engine and OLake Go writes positional deletes, because the ClickHouse 26.8 long-term support (LTS) release does not read deletion vectors.
Key takeaways
- ClickHouse queries Iceberg tables in place through a DataLakeCatalog database, with no insert job.
- With ClickHouse as a target query engine, OLake Go writes positional deletes, which the 26.8 LTS release reads.
- Six guides ran end to end on Polaris, with Trino and DuckDB reading the same tables.
Last reviewed October 2026.
How OLake Go gets data into ClickHouse
OLake Go uses change data capture (CDC) where the source has it and commits Iceberg tables to the catalog. ClickHouse reads Polaris and Lakekeeper as REST (representational state transfer) catalogs. Glue, Horizon and Unity Catalog have their own catalog types.
The six guides below ran end to end on Polaris, with Trino and DuckDB reading the same tables. The ClickHouse lakehouse post is a longer walkthrough.
When to use it
- ClickHouse should query live database tables without a second copy.
- You want CDC from Postgres, MySQL or MongoDB into ClickHouse.
When not to use it
- You need deletion vectors on the 26.8 LTS release. Reads were merged for 26.10.
- You use a JDBC catalog. ClickHouse has no JDBC catalog support.
Catalogs ClickHouse reads
| Catalog | ClickHouse reads | How |
|---|---|---|
| AWS Glue | Yes | DataLakeCatalog with catalog_type glue (beta) |
| Apache Polaris | Yes | DataLakeCatalog with catalog_type rest |
| Lakekeeper | Yes | DataLakeCatalog with catalog_type rest |
| Snowflake Horizon | Yes | DataLakeCatalog with catalog_type horizon |
| Unity Catalog | Yes | DataLakeCatalog with catalog_type unity (external locations only) |
| Nessie | Yes | DataLakeCatalog with catalog_type rest |
| Hive Metastore | Partial | experimental hive catalog |
| JDBC | No | no JDBC catalog support |
Delete formats ClickHouse reads
| Equality deletes (v2) | Positional deletes (v2) | Deletion vectors (v3) |
|---|---|---|
| Yes | Yes | No |
ClickHouse reads position deletes, and equality deletes from 25.8. Deletion vector reads were merged for 26.10 (PR 110781); the 26.8 LTS release does not read them. Set ClickHouse as a target query engine on the OLake Go job and OLake Go picks a format it reads; with ClickHouse as the only reader that is positional deletes (v2).
Sources: ClickHouse: Iceberg table engine (checked 2026-10-12); ClickHouse PR 110781 (deletion vectors) (checked 2026-10-12).
Tested guides for ClickHouse
- Postgres to ClickHouse
- MySQL to ClickHouse
- MongoDB to ClickHouse
- SQL Server to ClickHouse
- DB2 to ClickHouse
- Kafka to ClickHouse
Guides where ClickHouse reads the same tables
These pages show ClickHouse reading the same tables through the same catalog, in their cross-engine section. No second copy of the data is made.
Frequently asked questions
Which ClickHouse version reads equality deletes?
ClickHouse 25.8 and later. Positional deletes work on earlier releases too.
Does ClickHouse read Iceberg deletion vectors?
Reads were merged for 26.10 (pull request 110781). The 26.8 LTS release does not read them.
Does the AWS Glue catalog work in ClickHouse?
Yes, as DataLakeCatalog with catalog_type glue, which ClickHouse marks beta.