How to Test Apache Iceberg & Trino Locally in Under 60 Seconds (With Zero AWS Costs)
If you are building modern data pipelines, you already know that Apache Iceberg is completely changing the way we interact with data lakes…
How to Test Apache Iceberg & Trino Locally in Under 60 Seconds (With Zero AWS Costs)
If you are building modern data pipelines, you already know that Apache Iceberg is completely changing the way we interact with data lakes. But let’s be honest about the developer experience: testing Iceberg locally can be a massive headache.
Every time I wanted to run a simple integration test, I found myself relying on cloud resources. Spinning up an EMR cluster, waiting for AWS Glue to sync, or running queries through Athena just to verify a schema change is slow, frustrating, and expensive.
I needed a way to test Iceberg tables entirely on my local machine, disconnected from the cloud, with zero latency and zero AWS costs.
After spending way too many hours wrestling with Docker networks, catalog configurations, and Trino connectors, I finally built the perfect local Lakehouse stack. Here is how you can spin it up in under 60 seconds.
The Architecture: Bringing the Lakehouse to Localhost
To replicate a production cloud environment on your laptop, we need three main components:
- Storage (The S3 Alternative): MinIO
- Metadata Catalog (The Glue Alternative): Nessie (or a REST Catalog)
- Compute Engine (The Athena Alternative): Trino
Getting these three to communicate inside a Docker network usually requires a complex labyrinth of environment variables. The biggest challenge is ensuring Trino’s Iceberg connector properly authenticates with MinIO while reading the catalog from Nessie.
The 60-Second Solution
Instead of building this from scratch, I open-sourced the boilerplate. You can grab the core stack from my GitHub repository and start querying immediately.
Step 1: Clone and Run
Make sure you have Docker installed, then run:
Bash
git clone https://github.com/YOUR_USERNAME/lakehousekit-free.git
cd lakehousekit-free
docker-compose up -d
That’s it. In about 30 seconds, you have a fully functional Data Lakehouse running on localhost.
Step 2: Write Some Data
Open your favorite SQL client (DBeaver, DataGrip, or the Trino CLI) and connect to localhost:8080 (User: admin).
Let’s create a schema and an Iceberg table:
SQL
-- Create a new Iceberg schema mapping to our MinIO bucket
CREATE SCHEMA iceberg.default WITH (location = 's3a://lakehouse-data/');
-- Create an Iceberg table with partitioning
CREATE TABLE iceberg.default.user_events (
event_id VARCHAR,
event_time TIMESTAMP(6),
user_id VARCHAR,
event_type VARCHAR
) WITH (
format = 'PARQUET',
partitioning = ARRAY['day(event_time)']
);
-- Insert some test records
INSERT INTO iceberg.default.user_events
VALUES ('uuid-1', current_timestamp, 'user-123', 'click');
You can now head over to the MinIO console at localhost:9001 and actually see the underlying Parquet files and metadata JSONs generated by Iceberg.
Taking it to Production (CI/CD & Mock Data)
Having a local Docker stack is great for ad-hoc testing, but what if you want to run automated tests on every Pull Request? Or what if you need to populate that local environment with 1,000,000 rows of realistic synthetic data to test performance?
If you want to skip the setup and get a complete, production-ready development ecosystem, I created LakehouseKit Pro.
It includes everything you need to build with Iceberg like a pro:
- 🐍 Python Mock Data SDK: Instantly generate millions of synthetic Iceberg rows using PyArrow.
- ⚡ GitHub Actions CI/CD: Ready-to-use YAML templates to run automated Iceberg integration tests on your PRs (without AWS).
- 🏗️ Enterprise IaC: Terraform and Helm blueprints to seamlessly transition from local Docker directly to AWS production.
👉 **Check out LakehouseKit Pro here**
Stop wasting time configuring local environments and get back to building actual data pipelines. Happy querying!
메타데이터
- post_id
- f8da4a145e76
- slug
- how-to-test-apache-iceberg-trino-locally-in-under-60-seconds-with-zero-aws-costs-f8da4a145e76
- url
- https://medium.com/@ofirnakdai/how-to-test-apache-iceberg-trino-locally-in-under-60-seconds-with-zero-aws-costs-f8da4a145e76
- canonical_url
- https://medium.com/@ofirnakdai/how-to-test-apache-iceberg-trino-locally-in-under-60-seconds-with-zero-aws-costs-f8da4a145e76
- author_url
- https://medium.com/@ofirnakdai
- status
- ok
- fetched_at
- 2026-08-10 15:08:05