Skip to main content
The sqb dbt commands use --select and --exclude to scope what runs. Selectors work across both dbt and SQLBuild, with the system determining which side owns each selector and how to route work.

SQLBuild-recognized selectors

These selectors match SQLBuild models directly:
SelectorExampleBehavior
Model namefact_ordersSelects that SQLBuild model. Auto-includes its immediate dbt upstream dependencies.
Leading ++fact_ordersSelects the model plus walks upstream through both SQLBuild and dbt models.
Trailing +fact_orders+Selects the model plus all downstream SQLBuild models.
Both ++fact_orders+Full upstream (including dbt) and downstream expansion.
Tagtag:nightlySelects all SQLBuild models with that tag. Auto-includes dbt dependencies.
Tag with ++tag:nightlyTag match plus upstream expansion through the combined graph.
Pathpath:martsSelects SQLBuild models under that directory. dbt-style path:models/marts is translated automatically.
Path with ++path:martsPath match plus upstream/downstream expansion.
When a SQLBuild model is selected, its immediate dbt upstream dependencies are always included so dbt can build the tables that SQLBuild models read from.

dbt-only selectors

Selectors that SQLBuild does not recognize (like state:modified, package:stripe, source:stripe.charges) are passed to dbt ls to resolve:
SelectorExampleBehavior
Without +state:modifieddbt-only work. No SQLBuild models selected.
With trailing +state:modified+SQLBuild runs dbt ls to find which dbt models match, then walks downstream into SQLBuild territory.
With both ++state:modified+Same downstream expansion, plus upstream dbt expansion.
This means you can use dbt-native selectors like state:modified+ to trigger rebuilds of SQLBuild models that depend on changed dbt models. If dbt ls returns no matching models, no SQLBuild work is triggered.

Exclude

--exclude removes matching SQLBuild models from the final selection:
sqb dbt build --select fact_orders+ --exclude tag:nightly

Examples

# Build a specific SQLBuild model and its dbt dependencies
sqb dbt build --select downstream_orders

# Build everything downstream of a SQLBuild model
sqb dbt build --select downstream_orders+

# Build a SQLBuild model with full upstream dbt chain
sqb dbt build --select +downstream_orders

# Build SQLBuild models downstream of modified dbt models
sqb dbt build --select state:modified+

# Build all SQLBuild models tagged "nightly" with their dbt dependencies
sqb dbt build --select tag:nightly

# Build SQLBuild models under a path
sqb dbt build --select path:marts

Execution order

For sqb dbt run and sqb dbt build:
  1. Reuse pre-phase (if reuse from production is configured) - already-built relations are pulled from the production branch before dbt runs
  2. dbt runs - a single dbt run/build command executes with the user’s selectors merged with any additional dbt models required by selected SQLBuild models, pruned to only the models that actually changed
  3. SQLBuild runs - selected SQLBuild models execute against the now-built dbt tables
For sqb dbt test:
  1. dbt test runs first - with the user’s original selectors
  2. SQLBuild test runs - unit tests for selected SQLBuild models
  3. SQLBuild audit runs - audits for selected SQLBuild models
The test_type:data and test_type:unit selectors from dbt are mapped to SQLBuild equivalents: test_type:data runs SQLBuild audits, test_type:unit runs SQLBuild unit tests.