A data pipeline runtime for DuckDB and DuckLake.

Ingestion, transformation, validation, and scheduling in a single binary.

curl -fsSL https://ondatra.sh/install.sh | sh
terminal Install and create a project

SQL models

Write SELECT statements. OndatraSQL handles materialization, change detection, schema evolution, and dependency ordering automatically.

API ingestion

Fetch data from REST APIs using lib functions with built-in HTTP, OAuth, and pagination. Your SQL SELECT controls which columns are fetched.

Validation

30 constraint macros block bad data before insert. 18 audit macros catch regressions inside the transaction. 14 warning macros monitor trends.

Change Detection

Only changed data is processed. OndatraSQL uses DuckLake's table_changes() to detect which source rows changed between snapshots.

Sandbox preview

Run the full pipeline against a temporary catalog copy. See row diffs, schema changes, and downstream impact before committing.

Scheduling

One command installs an OS-native scheduler. Pipelines run on cron via systemd or launchd.

Column-level lineage

OndatraSQL traces every column from source to output.

raw.countries
name
capital
population
staging.countries
name
capital
population
size CASE
mart.population
size
countries COUNT
total_pop SUM

Get started in minutes

One binary. Define pipelines in SQL. Run them anywhere.