Skip to content
rocky-dataPublic

About

A SQL transformation engine that type-checks your whole pipeline and catches breaking changes before they run — branches, replay, column-level lineage, compile-time contracts, per-model cost. Adapters: Databricks, Snowflake, BigQuery, DuckDB. Single static Rust binary. Apache 2.0.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

308 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,913 Commits

Folders and files

Rocky

Engine CI License: Apache 2.0

Rocky checks your SQL models before they run, and helps you review every change before it reaches the warehouse.

You keep your warehouse and your SQL. Rocky runs on Databricks, Snowflake, BigQuery, DuckDB and more. Apache 2.0.

   edit SQL ──▶ rocky compile ──▶ rocky plan ──▶ rocky apply ──▶ warehouse
                     │                │
                     ▼                ▼
           type and contract    what will change,
           errors, before SQL   saved for review
           runs anywhere

A clean compile finds the problems that your SQL, schemas and config make visible. It does not prove that every query runs or returns correct values.

Rocky quickstart: create a project, compile, and run 3 models in under 15s

Try it

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/rocky-data/rocky/main/engine/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/rocky-data/rocky/main/engine/install.ps1 | iex

rocky playground my-first-project
cd my-first-project
rocky compile && rocky test && rocky run

rocky run does plan and apply in one step. The playground runs on local DuckDB, so you need no credentials. Next: the playground guide, then connect a warehouse.

See your project

In your browser. rocky serve --ui shows what needs you, your models and their DAG, recent runs, and plans waiting for review. See the browser UI guide.

rocky serve --ui --token "$(openssl rand -hex 16)" --token-scope read-only

With a read-only token, the page cannot run or approve anything. Plain rocky serve --ui on your own machine starts operator mode, where the page can approve and apply plans.

A tour of the Rocky browser UI: the estate with its DAG, the review queue, a plan awaiting a human, and a model's history

In VS Code. The Rocky extension shows errors as you type, column types on hover, and go-to-definition across models.

What Rocky does

You want to Rocky gives you Read more
Catch a broken model before it runs rocky compile: types, references and contracts, checked offline Compiler
See what a change breaks downstream rocky lineage-diff main: affected tables and columns, as PR-ready Markdown Lineage diff
Review before you write rocky plan saves the change. rocky apply <plan-id> runs it. Core pipeline
Try a change safely Named branches and rocky replay Branches
Load only new rows strategy = "incremental" Incremental
Test data Checks and declarative [[tests]] Checks and tests
Control what agents may do [policy] rules: allow, require review or deny. An AI-written plan needs an approval marker. Operating Rocky with agents
Declare a data product products/<name>.toml, verified and compiled. rocky fulfill is experimental. Products
Leave rocky emit-sql writes plain SQL. rocky import-dbt brings a dbt project in. No lock-in

Each feature has a runnable demo in examples/playground/pocs/.

Know the limits:

  • An approval marker is not a signature. The marker is the file that approves an AI-written plan. It records that someone approved on this machine, not who.
  • A check that runs after a warehouse write cannot undo that write.
  • Rocky adds the grants you declare and never revokes one.

See Who enforces what.

Warehouses

Status Adapters
Generally available Databricks, the most complete adapter
Supported for local work DuckDB: the playground and rocky test
Beta Snowflake, BigQuery, Trino, PostgreSQL, Redshift, ClickHouse, SQL Server, Apache Spark
Sources (read) Fivetran, Airbyte, Iceberg REST catalog, a manual table list

The checker works the same on every warehouse. What runs after it differs: for example, Trino and ClickHouse refuse strategy = "merge". See Connect a warehouse for each adapter's limits.

In this repo

Path What it is
engine/ The rocky CLI (Rust), with the browser UI built in (engine/ui/)
editors/vscode/ The VS Code extension
sdk/python/ rocky-sdk, a Python client
integrations/dagster/ dagster-rocky, the Dagster integration
examples/playground/ Sample project and runnable demos
deploy/ Docker Compose and Helm for a self-hosted rocky serve

Build from source with just build. See CONTRIBUTING.md.

Learn more

About

A SQL transformation engine that type-checks your whole pipeline and catches breaking changes before they run — branches, replay, column-level lineage, compile-time contracts, per-model cost. Adapters: Databricks, Snowflake, BigQuery, DuckDB. Single static Rust binary. Apache 2.0.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

308 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages