What is dbt?
Before diving into what dbt is, let's start with what it stands for: Data Build Tool.
dbt is a data transformation tool that streamlines workflows to get insights faster by helping data teams transform raw data into clean and structured data that is ready for analysis.
It is predominately used in the 'T' (Transform) stage of the ELT process and connects directly to data platforms such as Snowflake, Redshift databricks etc, where data has already been loaded.
dbt allows users to define transformations to raw data with the use of SQL, and then instructs the data platform to execute the transformations using it's own computing resources. dbt does not store or process the data itself, but rather manages how the data is transformed.
Beyond transforming data, dbt also provides testing capabilities that helps ensure data quality, as well as documentation and version control, all of which helps ensure that reliability of data pipelines.
Another useful feature of dbt is the semantic layer - this enables semantics to be centrally defined in one place. This is particularly useful in organisations, as it ensures consistency in how key metrics such as revenue and profit etc are defined and calculated, which is crucial for good data quality and reporting consistencies.
How dbt fits into the ELT process

As per the diagram above, raw data from various locations, is loaded into a data warehouse with the use of loader tools. This is where dbt now comes in.
Once the data has been loaded, dbt connects directly to the data warehouse and enables users to write SQL transformations to clean, structure and and organise the data. These transformations are organised into models, which are typically SQL files that contain SELECT statements. dbt compiles these models and instructs the data warehouse to execute the SQL transformations.
The transformed data can then be used for BI reporting purposes, dashboarding and other analysis.
Why use dbt?
Although data transformations can typically be written directly in a data warehouse, dbt provides a more structured way to develop, manage and maintain them.
Some of the key features of dbt are:
- Version-controlled transformations - dbt supports integration with Git, allowing teams to track changes to their SQL transformations, collaborate effectively and maintain a history of modifications.
- Automation and scheduling - the dbt platform includes built-in job scheduling capabilities. This means dbt transformations can be automated and scheduled to run at specified intervals, helping ensure that datasets are regularly updated as new data becomes available.
- Data testing - the dbt platform provides built-in testing capabilities, to help validate data quality. For example, tests can be run to identify duplicate records, null values and invalid relationships between datasets.
- Documentation and data lineage - dbt enables teams to documents their models and understand how datasets relate to and depend on one another, making data pipelines easier to understand, troubleshoot and maintain
