I’m about to start implementing dbt and liquibase, but I find that there will be a functionality overlay between dbt and Liquibase (dbt creates the tables if they don’t exist). I would like to know if anyone in the community knows how to solve this. Or what advice could you give me
I started to work on datawarehouses a few years ago. Before that, I worked a lot on OLTP databases, using of course liquibase to handle schemas’ evolution. So I first tried maintaining DWH schemas with liquibase. It did the trick to a certain extent. The problems I faced were :
no DAG generation, you have to manually order your models creation/loading statements.
no easy path selection on the DAG, you can still use contexts/labels to tag models.
And then I found dbt…
Two years after, I cannot see any reason you should use liquibase (provided that you are working in the BI realm, using only SQL to transform your data, and all your data is in the same dwh).
The good point I guess in your questioning is that you are starting a new project. In my case, I just joined a three years old BI project based on a ETL+liquibase stack, and I clearly see every day (and at night in
my nightmares) all the benefit of using dbt right from the start !
Without dbt, you have to handle the simultaneous evolutions of your models’ structure and loading in separate tools.
Maybe someone else will bring other thoughts on the subject ?