Dagster integration for the Rocky SQL transformation engine
Project description
dagster-rocky
Dagster integration for the Rocky SQL transformation engine.
dagster-rocky wraps the rocky CLI as a Dagster ConfigurableResource and exposes Rocky-managed
tables as materializable Dagster assets — complete with check results, lineage, drift detection
and quality metrics surfaced as native Dagster events.
Install
uv add dagster-rocky
You'll also need the Rocky CLI on your $PATH:
https://github.com/rocky-data/rocky/releases?q=engine
Quick start (component)
Add a defs.yaml next to your other Dagster definitions:
type: dagster_rocky.RockyComponent
attributes:
binary_path: rocky
config_path: config/rocky.toml
models_dir: models
Dagster's component loader will:
- Run
rocky discover(androcky compile, when models are present) and cache the result. - Build one subset-aware
multi_assetper Rocky group, with declaredrow_count/column_match/freshnesschecks per table. - On materialization, shell out to
rocky run --filter <key>=<value>for the selected subset and yieldMaterializeResult+AssetCheckResultevents with rich metadata.
Quick start (resource)
import dagster as dg
from dagster_rocky import RockyResource
rocky = RockyResource(
binary_path="rocky",
config_path="config/rocky.toml",
timeout_seconds=3600,
)
defs = dg.Definitions(resources={"rocky": rocky})
Then in an asset:
@dg.asset
def acme_orders(rocky: RockyResource) -> dg.MaterializeResult:
result = rocky.run(filter="tenant=acme")
return dg.MaterializeResult(
metadata={"tables_copied": result.tables_copied, "duration_ms": result.duration_ms},
)
Public API
| Symbol | Purpose |
|---|---|
RockyResource |
ConfigurableResource wrapping the Rocky CLI |
RockyComponent |
State-backed Dagster component that loads Rocky tables as assets |
RockyDagsterTranslator |
Subclass to customize asset key / group / tag mapping |
RockyMetadataSet |
Namespaced metadata (source_id, strategy, watermark, …) |
load_rocky_assets() |
Functional helper that returns AssetSpec for each Rocky table |
emit_materializations() / emit_check_results() |
Convert a RunResult into Dagster events |
check_metadata() |
Build a metadata mapping for a single Rocky CheckResult |
cost_metadata_from_optimize() |
Extract per-model cost recommendations from OptimizeResult |
parse_rocky_output() |
Auto-detect a Rocky JSON payload and return the matching Pydantic model |
Documentation
- Dagster Integration docs — resource, component, translator, schedules, sensors, pipes, and more
- DEVELOPMENT.md — local setup, architecture, testing
- CHANGELOG.md — release notes
Related projects
- Rocky — the Rust SQL transformation engine
- Rocky VS Code extension — VS Code extension with LSP and AI features
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dagster_rocky-1.15.0.tar.gz.
File metadata
- Download URL: dagster_rocky-1.15.0.tar.gz
- Upload date:
- Size: 327.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
142484ea34e945578a4d2379ac12d56451937c8883e8d09f514b8433db100920
|
|
| MD5 |
2b6b3896b792a9b861c96ea682a705fd
|
|
| BLAKE2b-256 |
934db85309744ffe6b26583bbf171a6f46c6ff9ba35a631e8969c3e3a250d8f2
|
Provenance
The following attestation bundles were made for dagster_rocky-1.15.0.tar.gz:
Publisher:
dagster-release.yml on rocky-data/rocky
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dagster_rocky-1.15.0.tar.gz -
Subject digest:
142484ea34e945578a4d2379ac12d56451937c8883e8d09f514b8433db100920 - Sigstore transparency entry: 1404689161
- Sigstore integration time:
-
Permalink:
rocky-data/rocky@86238cf70a7575ba562409b10a36aaa674a27535 -
Branch / Tag:
refs/tags/dagster-v1.15.0 - Owner: https://github.com/rocky-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
dagster-release.yml@86238cf70a7575ba562409b10a36aaa674a27535 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dagster_rocky-1.15.0-py3-none-any.whl.
File metadata
- Download URL: dagster_rocky-1.15.0-py3-none-any.whl
- Upload date:
- Size: 186.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2752ea3cdffbeccf514ba2ee8dcfaa6b67906bb0bd08c0c1e44b2762d52d988
|
|
| MD5 |
b2470ee87221bca94e7266af0084300c
|
|
| BLAKE2b-256 |
e3f1e582456c980c339485d0d6cd5af0396e6caa3c19e3fbb709b257d1ec163d
|
Provenance
The following attestation bundles were made for dagster_rocky-1.15.0-py3-none-any.whl:
Publisher:
dagster-release.yml on rocky-data/rocky
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dagster_rocky-1.15.0-py3-none-any.whl -
Subject digest:
b2752ea3cdffbeccf514ba2ee8dcfaa6b67906bb0bd08c0c1e44b2762d52d988 - Sigstore transparency entry: 1404689251
- Sigstore integration time:
-
Permalink:
rocky-data/rocky@86238cf70a7575ba562409b10a36aaa674a27535 -
Branch / Tag:
refs/tags/dagster-v1.15.0 - Owner: https://github.com/rocky-data
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
dagster-release.yml@86238cf70a7575ba562409b10a36aaa674a27535 -
Trigger Event:
push
-
Statement type: