Docs that read like the code.
Pre-deploy benchmark testing for databases — Apache Iceberg today. Concrete, technical, and written alongside the engine. Anything marked PLANNED describes what we're building, not what runs today.
Four ways in.
Getting started
From a described table to a verified baseline. Or follow the deeper end-to-end tutorial.
Concepts
The mental model behind synthesis, search, and layout definitions.
API reference
Every endpoint, every flag, every error code — generated from the engine, not hand-written. Being written now; not published yet.
browse the full API · soonIntegrations
Where Kijun is headed: feeding the report and baseline into the dashboards, pipelines, and alert tools you already use. On the roadmap — not built yet.
From table profile to benchmark report.
Five steps. No more. Today a benchmark run is configured in the Kijun UI — the CLI, CI check and Terraform provider below are the shapes we're building toward, not shipped software.
- Describe your Iceberg table — schema, key columns, growth. No catalog access needed.
- Point Kijun at the queries you're about to ship.
- Set an SLA (latency + write rate) and a scale order-of-magnitude.
- Kijun builds the future table on its own infrastructure and measures candidate layouts on AWS Athena.
- Read the report, then export the winning layout as Iceberg DDL and the results as JSON or CSV.
# Install $ brew install kijun-dev/tap/kijun # Authenticate $ kijun auth login --token $KIJUN_TOKEN # Run a benchmark $ kijun benchmark run \ --profile ./orders.iceberg.yml \ --queries ./queries/*.sql \ --scale 300_000_000 # 300M rows \ --sla ./production.sla # Export the winning layout as Iceberg DDL and the results as JSON $ kijun report export kj_8af3b1c \ --layout iceberg-ddl --results json
# PLANNED — not available yet. The shape of the CI check we're building. # .github/workflows/kijun.yml name: kijun-validate on: [pull_request] jobs: validate: runs-on: ubuntu-latest steps: - uses: kijun/validate-action@v1 with: profile: orders.iceberg.yml queries: ./queries/*.sql scale: 300_000_000 sla: production.sla diff: HEAD~1..HEAD # Planned: surfaces SLA impact on the PR. Coming, not live.
# PLANNED — not available yet. The shape of the provider we're building. # main.tf terraform { required_providers { kijun = { source = "kijun-dev/kijun" version = "~> 0.1" } } } # A benchmark profile — not a live production table. resource "kijun_benchmark_profile" "orders" { engine = "iceberg" profile = "orders-300m-rows" baseline = "kj_8af3b1c" sla_p95_ms = 1500 }