What if your data models were as simple and clear as separate folders instead of one messy drawer?
Why One model per source table rule in dbt? - Purpose & Use Cases
Imagine you have a big spreadsheet with many sheets, each sheet holding different data. You try to write one giant report by mixing all sheets manually in one place. It gets confusing fast.
Manually combining data from many tables into one model is slow and messy. It's easy to make mistakes, hard to update, and difficult to understand what each part does.
The "One model per source table" rule means you create a simple, clear model for each source table. This keeps things organized, easy to test, and easy to update without breaking everything.
select * from sales join customers on sales.customer_id = customers.id join products on sales.product_id = products.idmodel_sales as (select * from sales), model_customers as (select * from customers), model_products as (select * from products)
This rule lets you build clean, reusable data models that are easy to maintain and understand, making your data projects more reliable and faster to develop.
In a company, each department's data is stored in separate tables. By modeling each table separately, analysts can quickly update or fix one without affecting others, speeding up reporting.
Manual mixing of tables leads to confusion and errors.
One model per source table keeps data organized and clear.
This approach makes data projects easier to maintain and faster to build.