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?
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.