Selector Methods
Selector methods in dbt allow you to filter resources based on specific properties using the method:value
syntax. This gives you the power to target exactly what you need during your data transformations.

Wildcard Magic
Most selector methods support Unix-style wildcards, which can help you target a broader set of resources:
*
: Matches any number of characters (including none)?
: Matches any single character[abc]
: Matches one character listed in the bracket[a-z]
: Matches one character from the specified range in the bracket
For example:
dbt list --select "*.folder_name.*"
dbt list --select "model_[a-z].sql"
The Selectors
Tag Selector
Use tag:
to select models with a specific tag.
dbt run --select "tag:hourly"
Source Selector
Use source:
to select models that reference a specified source.
dbt run --select "source:fivetran+"
Resource Type Selector
Use resource_type:
to select nodes of a specific type (e.g., model, test, exposure).
dbt run --select "resource_type:exposure"
dbt list --select "resource_type:test"
Path Selector
Use path:
to select models/sources defined at or under a specific path.
dbt run --select "path:models/marts"
dbt run --select "path:models/marts/customers.sql"
File Selector
Use file:
to select a model by filename.
dbt run --select "file:model_name.sql"
FQN (Fully Qualified Name) Selector
Use fqn:
to select nodes based on their fully qualified name.
dbt run --select "fqn:example_model"
dbt run --select "fqn:project_name.example_path.example_model"
Package Selector
Use package:
to select models defined within the root project or an installed dbt package.
dbt run --select "package:fivetran"
Config Selector
Use config:
to select models that match a specified node config.
dbt run --select "config.materialized:table"
dbt run --select "config.cluster_by:zip_code"
Test Type Selector
Use test_type:
to select tests based on type (generic, singular, unit, data).
dbt test --select "test_type:generic"
dbt test --select "test_type:singular"
Test Name Selector
Use test_name:
to select tests based on the name of the test defined.
dbt test --select "test_name:not_null"
State Selector
Use state:
to select nodes by comparing them against a previous version of the project.
dbt test --select "state:new" --state path/to/artifacts
dbt run --select "state:modified" --state path/to/artifacts
Exposure Selector
Use exposure:
to select the parent resources of an exposure.
dbt test --select "exposure:monthly_reports"
dbt run --select "+exposure:*"
Metric Selector
Use metric:
to select parent resources of a metric.
dbt run --select "+metric:monthly_qualified_leads"
Results Selector
Use result:
to select resources based on their results status from a previous execution.
dbt run --select "result:success" --state path/to/project/artifacts
dbt test --select "result:warn" --state /path/to/project/artifacts
Source Status Selector
Use source_status:
to select based on the freshness of sources.
dbt source freshness
dbt build --select "source_status:fresher+" --state path/to/prod/artifacts
Group Selector
Use group:
to select models defined within a specified group.
dbt run --select "group:marketing"
Access Selector
Use access:
to select models based on their access property.
dbt list --select "access:public"
Version Selector
Use version:
to select versioned models.
dbt list --select "version:old"
dbt list --select "version:latest"
Semantic Model Selector
Use semantic_model:
to select semantic models.
dbt ls --select "semantic_model:sales"
Saved Query Selector
Use saved_query:
to select saved queries.
dbt list --select "saved_query:*"
Unit Test Selector
Use unit_test:
to select dbt unit tests.
dbt list --select "unit_test:*"
Pro Tips
Combine selectors for laser-focused selection:
dbt run --select "tag:nightly,config.materialized:table"
Use graph operators like
+
and@
for complex selections:
dbt run --select "source:raw_data+,@tag:critical"
Exclude models using the
--exclude
flag:
dbt run --select "path:models/mart" --exclude "tag:deprecated"
If you omit the method, dbt will default to one of
path
,file
, orfqn
.
Remember, the more targeted your selector methods, the more precisely you can execute your dbt transformations.
Last updated
Was this helpful?