dbt Projects on Snowflake¶
dbt Core is an open-source framework for defining, testing, and deploying SQL transformations. dbt Projects on Snowflake brings the full dbt lifecycle into Snowflake: develop, deploy, orchestrate, and observe your transformations in the same place your data already lives.
Why dbt Projects on Snowflake¶
- No infrastructure to manage: Snowflake provides managed dbt Core and dbt Fusion runtimes. Pin a version or set an account-level default.
- Hybrid development: dbt Projects on Snowflake is supported across Snowflake Workspaces and Snowflake-managed mode in CoCo Desktop, giving you a true pre-production runtime environment with no installs.
- Governed configuration: Manage per-developer setups, production environment variables, and secrets in a single, Git-versioned
env.ymlfile. - CI/CD: Bring software development best practices to your data pipelines. Use the Snowflake CLI in any CI platform, such as GitHub Actions, GitLab, or Azure DevOps, to validate every pull request against a dev environment and deploy to production on merge.
- Native orchestration: Schedule executions with Snowflake tasks or integrate with Apache Airflow. No external orchestrator required.
- Built-in observability: Inspect run history, logs, and artifacts, with column-level lineage in Snowsight.
- AI-assisted development: CoCo is integrated with the Snowflake Horizon Catalog, so it can inspect the files of a deployed dbt project object to debug production runs, generate
sources.ymlandmodels.ymldocumentation from catalog metadata, and scaffold dbt data quality tests in yourschema.yml. - No extra fees: Executions use a virtual warehouse and incur standard compute costs, with no licensing or per-user fees.
Get started¶
- New to dbt Projects on Snowflake? Follow the Tutorial: Get started with dbt Projects on Snowflake.
- Migrating an existing dbt Core project? See the Migrate from dbt Core to dbt Projects on Snowflake.
- Running dbt at scale? See Best practices for dbt Projects on Snowflake.
Workflow¶
- Start with a valid dbt project. Your project needs a
dbt_project.yml,profiles.yml, and model files, stored in a workspace or a connected Git repository. See Migrate from dbt Core to dbt Projects on Snowflake. - Install dependencies by running
dbt depsto populate thedbt_packagesfolder. See Understand dependencies for dbt Projects on Snowflake. - Deploy a dbt project object with
CREATE DBT PROJECT ... FROM <source>orsnow dbt deploy. See Deploy dbt project objects. - Execute the object with
EXECUTE DBT PROJECTorsnow dbt execute. See EXECUTE DBT PROJECT. - Schedule and orchestrate with Snowflake tasks or Apache Airflow. See Schedule execution of dbt project objects on Snowflake.
- Set up CI/CD integrations with the Snowflake CLI. See Tutorial: Set up CI/CD integrations on dbt Projects on Snowflake.
- Monitor executions, logs, and artifacts. See Monitor dbt Projects on Snowflake.
Learn more¶
| Topic | Description |
|---|---|
| Understand dbt project objects | Start here to learn what dbt project objects are and how they work. |
| Use SQL environment variables and private Git packages | Manage environment variables, secrets, and multiple environments with a Git-versioned env.yml file. |
| Understand CI/CD | Automate testing and deployment with the Snowflake CLI and OIDC. |
| Deploy dbt project objects | Create and update dbt project objects from Snowsight, SQL, or the Snowflake CLI. |
| Understand orchestration | Integrate dbt project object executions with Snowflake tasks, Apache Airflow, or other external orchestrators. |
| Schedule executions | Run dbt project objects on a schedule with Snowflake tasks. |
| Monitor and observe | Inspect run history, logs, artifacts, and column-level lineage. |
| Understand costs | How compute costs work when you execute dbt project objects. |
| Access control | Privileges for creating, executing, and managing dbt project objects. |
| Supported commands and flags | The dbt commands and flags supported on Snowflake. |
| Limitations | Requirements and considerations to plan for. |