Modular Trino + Iceberg environments powered by Postgres and MinIO, supporting Hive Metastore, REST, and JDBC catalog variants with ClickHouse integration. Provides ready-to-use setups for testing and development with Trino against Iceberg and ClickHouse.
- Multiple Iceberg catalog configurations:
- JDBC catalog (Postgres backend)
- Hive Metastore
- REST catalog
- Trino query engine
- MinIO S3 storage
- ClickHouse analytics/serving layer
- Predefined Docker images for reproducible environments
- Docker & Docker Compose installed
makecommand available
- Initialize environment:
make init-env- Pull all required Docker images:
make pull-images- Run a selected setup (
jdbc,rest, orhms):
make run-<tag>- Run test queries against the catalog:
make test-<tag>- Tear down the setup and remove volumes:
make down-<tag>- Generate a complete merged
docker-compose.ymlfor the selected setup:
make gen-com-<tag>-
[jdbc | rest | hms]— choose the catalog backend:jdbc→ Postgres-backed Iceberg catalogrest→ Iceberg REST cataloghms→ Hive Metastore catalog
-
ClickHouse compatibility: Using
clickhouse/clickhouse-server:25.10-alpineor newer may fail with Trino:Query <id> failed: Error listing schemas for catalog clickhouse: java.io.IOException: Magic is not correct - expect [-126] but got [123]Works with
clickhouse/clickhouse-server:24.8-alpine.
Feel free to open issues or pull requests for:
- Adding new catalog variants
- Updating image versions
- Improving test queries
MIT License