Install
dagster and dagster-webserver alongside SQLBuild.
Try it
dagster/definitions.py that includes asset definitions, scenario checks, and a configured resource. Open the Dagster UI, materialize the assets, then run the scenario checks.
How it works
sqb compile --daggenerates a staticsqlbuild_dag.jsonartifact with your project’s full graph (nodes, edges, checks)@sqlbuild_assets()reads the artifact and creates one DagsterAssetSpecper source, seed, model, function, loader, task, and asset, with dependency edges preservedSqlBuildCliResourceshells out tosqb build,sqb test,sqb scenario test, etc. as subprocesses- Execution results (materializations, audit pass/fail, scenario outcomes) are parsed from structured JSON and emitted as Dagster
MaterializeResultandAssetCheckResultevents
Quickstart
sqb build invocation to those nodes via --select.
For production deployments, use project.prepare() or sqb compile --dag to generate the DAG artifact explicitly in your CI pipeline.
Asset selection
When you select a subset of assets in the Dagster UI, the integration automatically:- Maps selected Dagster asset keys back to SQLBuild node names using the DAG artifact
- Writes the selectors to a temporary file
- Passes
--select-fileto thesqbCLI so only the selected models are built
Checks
SQLBuild tests, audits, scenarios, and Python checks are registered as Dagster asset checks:- Unit tests become checks attached to the models they test
- Audits become checks attached to the model or source they audit, with severity mapped to
AssetCheckSeverity.ERRORorAssetCheckSeverity.WARN - Scenarios become checks attached to the models they exercise
- Python checks (
@check) become checks attached to the tasks, assets, or loaders they validate
Scenarios as checks
Scenarios can be included as asset checks alongside tests and audits (the default), or run separately:Project preparation
SqlBuildProject.prepare() regenerates the DAG artifact by running sqb compile --dag. Use prepare_if_dev() to only regenerate during local development:
Translator
Customise how SQLBuild nodes map to Dagster assets by subclassingSqlBuildDagsterTranslator:

