Oct 09, 2025: dbt Projects on Snowflake: Recent improvements (Preview)¶
dbt Projects on Snowflake now support the following functionalities:
dbt Project failures show up as failed queries¶
Any dbt Project errors — like compile or test failures — now appear as query failures. This makes it easier to handle them with tasks or
other orchestration tools. You can view detailed logs using SELECT SYSTEM$get_dbt_log('<query_id>')
.
Important
This might cause a breaking change for anyone relying on the previous method of checking the return values to determine dbt Project execution outcomes.
Compile on create¶
Whenever you deploy or update a dbt Project object, it’s automatically compiled so build artifacts are up to date and Snowsight works smoothly.
This could cause a breaking change if you’re deploying projects that fail during compilation.
Compilation currently uses the profile in your profiles.yml
by default. As a workaround, you can update your profiles.yml
prior to deployment to point to the production target before deploying. In a future release, you’ll be able to override this with
DEFAULT_TARGET
on the Project object.
Install deps on compile¶
You can optionally run dbt deps
during deployment to install project dependencies by setting EXTERNAL_ACCESS_INTEGRATIONS=[...ext]
on your deploy or update commands. This means you no longer need to include /dbt_packages
when deploying projects with external
dependencies.
In a future release, compile on create will support the local:
syntax.
MONITOR privilege¶
dbt Projects now support the MONITOR privilege. This allows you to see the execution history, download the build artifacts of a dbt Project object and download build artifacts of each dbt Project execution. This privilege can be granted at the DATABASE or SCHEMA level.
Accessing execution results is easier¶
You can download build artifacts directly from the Query History page or use the following new system functions:
SELECT SYSTEM$LOCATE_DBT_ARTIFACTS($latest_query_id)
: Returns the file path for dbt Project artifacts from a run (for example,snow://dbt/DB_TEST.PUBLIC.DBT_PROJECT_TEST/results/query_id_01bf3f5a-010b-4d87-0000-53493abb7cce/
).SELECT SYSTEM$LOCATE_DBT_ARCHIVE($latest_query_id)
: Returns the location of the dbt Project output archive zip.SELECT SYSTEM$GET_DBT_LOG($latest_query_id)
: Returns the last 1000 lines of thedbt.log
file. For full logs, download the archive zip.
Use the Snowflake CLI to download these artifacts from the results stage, for example:
snowsql -q “GET 'snow://dbt_project/DB_TEST.PUBLIC.DBT_PROJECT_TEST/results/query_id_01bf3f89-0300-0001-0000-0000000c1229/dbt_artifacts.zip' file:///Users/user_name/Code/temp"
This new approach replaces OUTPUT_ARCHIVE_URL
and improves interoperability with Snowflake CLI and other services.
Important
dbt Project output logs from executions before this release won’t appear on the Query History page.
For more information, see dbt Projects on Snowflake.