1. dbt Labs Official Documentation
"How we structure our dbt projects": This guide explicitly details the best practice of using multiple layers and models. It states
"By breaking down complex logic into smaller
more manageable pieces
we can improve the modularity
reusability
and maintainability of our dbt project. This is a core tenet of dbt." The guide then outlines the multi-layered approach (staging
intermediate
marts)
which inherently requires many models
not one.
2. dbt Labs Official Documentation
"What is a dbt model?": The documentation defines a model as a single select statement. The entire concept of the ref() function
a cornerstone of dbt
is built on the principle of creating dependencies between multiple models. The documentation explains
"The ref function is the most important function in dbt. It's how you refer to other models
" which presupposes a multi-model project structure.
3. dbt Labs Official Documentation
Best Practice Guides
"Building a scalable dbt project": This guide emphasizes the importance of model layering for scalability and maintainability. It advises
"Layering your models is a key part of a scalable dbt project. It allows you to build up your transformations in stages
making them easier to debug and manage." This directly contradicts the idea of using a single model.