Modular data modeling
Transform raw data into human-usable metrics.
How you transform data has a huge impact on the happiness and productivity of your team. Have you ever attempted to debug a long stored procedure that someone else wrote?
With modular data modeling, anyone who knows SQL can make sense of your team's work, and build on it when the time comes.
Leverage for data teams
dbt is a framework for writing high-leverage SQL transformation code.
Everything is a SELECT
Define transformations in your native SQL syntax.
Layer your models with the ref() function, and dbt handles the rest.
Clear project structure
Express your data warehouse design in terms of sources, staging models and marts.
Macros and packages
Write SQL that writes itself, to avoid repeating frequently-used statements (ex dbt_utils).
dbt makes easy things easy, and hard things possible.
Define materializations in code
Set your materialization logic inline with your SQL transformations.
dbt supports materializing models as tables, incremental tables, views, or a custom materialization of your design.
Handle large datasets gracefully
Long-running SQL transformations can eat up development time and drive up your cloud data warehouse bill.
dbt's support for incremental transformations allows you to only run models on newly-arrived data.
Track slowly-changing dimensions
Mutable source tables are updated over time, an order is fulfilled, or a customer cancels their subscription.
dbt's snapshots allow you to snap source tables at a point in time.
Model data where it lives
Whether your analytics data is stored in a cloud warehouse, data lake, lake house or beach house - you can model and transform it with dbt.
For data models of any shape
Whether your team prefers your data tall or short, narrow or wide, your data transformation tool should support your efforts.