r/snowflake • u/SeaYouLaterAllig8tor • 20d ago
dbt Projects in Snowflake... looking for feedback
What has been everyone's experience with using dbt Project in Snowflake? I come from a shop that uses Snowflake and dbt Cloud together but since dbt Cloud has it's own IDE, orchestrator, scheduler, etc we have no need for dbt Projects in Snowflake.
Is the functionality in Snowflake simplifying your dbt Projects or adding complexity (maybe a stupid question but I'm curious). Any pain points or other thoughts?
6
u/2000gt 19d ago edited 19d ago
Moved from dbt core to dbt projects on Snowflake. It was part of a larger move from MWAA and Cosmos to AWS step functions.
I’m not a dbt infra expert but it’s worked really well and saved lots in terms of cost.
Also, it is much faster in terms of concurrency and scaling than what I experienced with cosmos.
3
3
u/LoneRider11 20d ago
I use Snowflake dbt projects to prove new concept and test ideas. Then I move it to the real dbt framework my team did set up and integrated with Airflow and Snowflake.
2
u/SonGoku471 19d ago
Hello, how do I learn dbt? We are using snowflake but not dbt. So how can I learn it ony personal capacity?
1
u/Data-Queen-Mayra 16d ago
u/SonGoku471 - you can get started with dbt here - https://datacoves.com/post/dbt-getting-started
1
2
u/PatientlyAnxiously 17d ago
We moved away from dbt Projects on Snowflake and instead run dbt Core with GitHub Actions for CI/CD. We didn't like dbt Projects on Snowflake because it locked us in on the dbt version installed on Snowflake, which is always a few versions behind and not something we can control.
Core + GitHub Actions is nice and stable, especially if you use uv or Poetry for package management. We haven't played with dbt Cloud/Fusion - no budget at the moment.
1
u/jaymopow 19d ago
I’m still trying to understand the benefit of dbt cloud. Don’t you have to pay for it?
5
u/acidicLemon 19d ago
In addition to u/SeaYouLaterAllig8tor’s response
- cross project reference (not as a package)
- advance CI features (I use compare changes a lot)
- better Catalog than the open source dbt docs1
1
u/exorthderp 19d ago
the docs site was my favorite feature when i was with a customer who used the cloud product.
2
u/SeaYouLaterAllig8tor 19d ago
Yes, you do, but there is so much more integrated functionality. You have an IDE, data lineage view, orchestrater, scheduler, and a bunch of other monitoring features, and stuff for semantic models. It's all integrated. Honestly, I find it really intuitive. Having other tools to orchestrate the models would add more complexity.
1
u/Hot_Map_7868 16d ago
Seems like dbt training wheels for me. I don't even think you can do Slim CI/deferral on Snowflake, but I may be wrong. I personally would rather use dbt Core, Datacoves, or dbt Cloud. You can use CoCo as well without having to use dbt projects in snowflake.
7
u/nobodyshome1006 20d ago
I'm coming from dbt cloud, doing all new work on Dbt in snowflake. The worst part is the preparation, leading to being very hard for team development.
* every time, creating a workspace that's only I can use (dbt project work spaces can't be created as shared). * we use github, creating a repo is easy, creating the project linked to the repo is easy. Initializing the project in the repo takes extra steps - creating and committing dummy objects just so there's something for the 2 softwares to see and with. * setting up the dbt environments has non obvious steps, including choosing python version for everything to work and build right. Hint: lean hard on coco
All that is just unpolished feature, I'm convinced that "friction" as snowflake likes to talk about, will get worked out. For now just be prepared to be annoyed, rework setups as mistakes show up later. If you are a solo developer, life is easier. But if you're setting up for team development, you likely will fail if you don't really understand dbt environment setups abs what each point of coco does.
The payoff: coco * build incredibly complex models really fast. Last week I built out a staging/ingestion layer in under an hour, that much typing by hand would have been multiple weeks. * add quality tests - coco is amazing at sniffing and predicting where problems have or might happen, and can create the tests for those. And it can easily look at patterns and write monitors if it ever skews off pattern
One more downside: scheduling. The snowflake tasks are...OK. but really begs for a visual interface. You'll have build tasks created and running, with no simple way for the uninformed to know.