Limitations, requirements, and considerations for dbt Projects on Snowflake¶
Before you use dbt Projects on Snowflake, review the requirements, considerations, and limitations in this topic.
Limitations, requirements, and considerations for dbt project configurations
Limitations, requirements, and considerations for stored procedures
Limitations, requirements, and considerations for using workspaces with dbt projects
Limitations, requirements, and considerations for dbt dependencies
Limitations, requirements, and considerations for telemetry, logging, and tracing
Limitations, requirements, and considerations for dbt project configurations¶
The following requirements, considerations, and limitations apply to dbt project configurations that are supported by dbt Projects on Snowflake:
Only dbt Core projects are supported. dbt Cloud projects aren’t supported. dbt Projects on Snowflake runs dbt-core version 1.9.4 and dbt-snowflake version 1.9.2. When you migrate an existing dbt project to Snowflake, your dbt versions don’t have to align with Snowflake versions.
Each dbt project folder in your Snowflake workspace must contain a
profiles.ymlfile that specifies a targetwarehouse,database,schema, androlein Snowflake for the project. Thetypemust be set tosnowflake. dbt requires anaccountanduser, but these can be left with an empty or arbitrary string because the dbt project runs in Snowflake under the current account and user context.A dbt project in a workspace can’t have more than 20,000 files in its folder structure. This limit includes all files in the dbt project directory and subdirectories, including the
target/dbt_packages/logsdirectories, which is where log files are saved when a dbt project runs from within the workspace.
Limitations, requirements, and considerations for stored procedures¶
When you use a stored procedure to call EXECUTE DBT PROJECT, use a caller’s rights stored procedure. For more information, see CREATE PROCEDURE and Creating a stored procedure.
Limitations, requirements, and considerations for telemetry, logging, and tracing¶
The following requirements, considerations, and limitations apply to telemetry, logging, and tracing for dbt on Snowflake:
Workspaces for dbt Projects on Snowflake don’t stream stdout dynamically, and stdout is only viewable upon command completion.
Viewing logs and tracing requires that you set the LOG_LEVEL and TRACE_LEVEL on the dbt project object. For more information, see Access control for dbt projects on Snowflake and Monitor dbt Projects on Snowflake.
By default, Snowflake collects telemetry in the default SNOWFLAKE.TELEMETRY.EVENTS table. If you have a custom event table that is set as the event table for your account, telemetry data is collected there. If you use an Enterprise Edition account, you can create an event table to collect telemetry data and associate it with the database where the dbt project object is deployed. For more information, see Event table overview.