About dbt compile command
dbt compile
generates executable SQL from source model
, test
, and analysis
files. You can find these compiled SQL files in the target/
directory of your dbt project.
The compile
command is useful for:
- Visually inspecting the compiled output of model files. This is useful for validating complex jinja logic or macro usage.
- Manually running compiled SQL. While debugging a model or schema test, it's often useful to execute the underlying
select
statement to find the source of the bug. - Compiling
analysis
files. Read more about analysis files here.
Some common misconceptions:
dbt compile
is not a pre-requisite ofdbt run
, or other building commands. Those commands will handle compilation themselves.- If you just want dbt to read and validate your project code, without connecting to the data warehouse, use
dbt parse
instead.
The command accesses the data platform to cache-related metadata, and to run introspective queries. Use the flags:
--no-populate-cache
to disable the initial cache population. If metadata is needed, it will be a cache miss, requiring dbt to run the metadata query. This is adbt
flag, which means you need to adddbt
as a prefix. For example:dbt --no-populate-cache
.--no-introspect
to disable introspective queries. dbt will raise an error if a model's definition requires running one. This is adbt compile
flag, which means you need to adddbt compile
as a prefix. For example:dbt compile --no-introspect
.
FAQs
0