Hi folks, this is more of a conceptual question.
I've been playing with Dagster and found it to be quite clever, with the way that you can write like a normal Python program, but in the background the decorators can write to storage of your choice through your IO manager configuration.
I've been considering the use of DBT in an upcoming project. The idea being that I get my raw(ish) data into a data warehouse and apply DBT transforms there. DBT is great though it still has the drawbacks of being based on SQL as opposed to a general purpose programming language.
Having played with Dagster, in a way it appears it can perform a similar function: you write your Python code, then the function will materialise it 'somewhere' (depending on your IO manager). Given this, I'm considering leaning into Dagster more for my transforms, as I can have them done in Python code as opposed to SQL, with the benefits that provides. It would also have the benefit of a traceability like DBT due to those materialisations in intermediate tables/files.
Dagster also has integration with DBT, though I haven't toyed with it yet. My thought is that either approach has merit, and it would come down to whatever language (python/sql) your users are most comfortable with. . Obviously this may have some tradeoffs, though the idea popped into my mind over the weekend and I'm wondering if it has some merit. Would love to hear your thoughts.