HACKER Q&A
📣 whydbt

What Is the Point of Dbt?


I have a SQL Server/ETL/DBA background and have been getting into software and Python work over the last 5 years. I'm reading about data build tool, I don't get the benefit of this tool. It seems like you have to use dbt to write SQL, then dbt translates that SQL into more SQL, and then it runs it against the db/dw, potentially leaves a bunch of new tables/views out there, and then you source control the code you wrote.

Is the point of this tool to avoid hiring a DBA or people who know intermediate SQL? SQL is already declarative, so I don't understand how dbt helps with determining order of execution on all the CTEs it makes. A DBA will create all the objects needed for an organization, rightsize the datatypes on the fields in the tables, create/tune the procedures needed for any calls, create the keys for referential integrity, and model the whole thing so it isn't garbage.

The one cool thing I've seen so far is that it can leverage Jinja to dynamically make SQL. Other than that, what does dbt do that a decent DBA can't?


  👤 sails Accepted Answer ✓
It is primarily a tool for analytics engineers (coined by the dbt team I think[]) to write more robust, managed, version controlled, DRY analytics SQL. The tool is designed to be run on an analytics data warehouse (Snowflake/Bigquery/Redshift) and generally used to provide fact & dimension tables to BI/visualisation tools.

I get your confusion, I don't think it is designed for a DBA, but it makes a great tool for an ETL engineer, especially in the modern ELT paradigm.

> tool to avoid hiring a DBA

Yes in a way. With ELT tools like Fivetran/Stitch and highly flexible "zero-tuning" data warehouses like Snowflake/Bigquery, there is very little need for a DBA unless it is a very large organisation, and the role will more likely fall to a "Data Engineer" type role, ultimately much the same as a DBA, just a modernisation.

[] https://blog.getdbt.com/what-is-an-analytics-engineer/