I worked in my career with different ETL/ELT Tools.
Microsoft SSIS, SAP BO Data Services, IBM Data Stage, Informatica Power Center and now with Matillion.
I was working as a consultant for a while so I worked with a lot of different people at a lot of different companies.
One of the main topics is always the culture clash between SQL only vs ETL/ELT only.
In some work environments everything is coded with cascaded SQLs/Views and the tool is only used the connect to different data sources and targets.
In other environments SQL is forbidden and everything has to be build inside the tool to improve the standardization and make the "code" more readable and maintainable.
I share the opinion that something well build using the components of the GUI and following good design patterns will result in more maintainable code than using plain SQL only. But i acknowledge that SQL has it own advantages. Development speed/sometimes performance advantages/generating code is easier)
My problem with all of this in mind is that an ETL/ELT tool should help me to make my work easier and not more complicated.
But most of the time I try to avoid these tools because they make my work more complicated compared to writing plain SQL code.
This feels always wrong that the company pays for tools it employees try to avoid.
The most annoying part is adding new attributes/columns.
In a lot of cases this works in Matillion awesome without doing anything manual.
But especially using the join component it gets frustrating.
If my source gets a new attribute that I need in the target table and the job has three joins I manually need to add this attribute in every join.
To avoid this I could delete all attributes and always use the add all feature but with this feature the names will get pretty messy after some joins because of the added default prefix. In some cases I don't need all the columns.
In this case something like an propagate column feature would be nice.
What is your solution to this kind of problems where the tool makes the work more complicated compared to plain SQL coding?
Do you use plain SQL instead?
Still use the GUI but 'allow' everything to get messy regarding names and orderings of attributes?
Do you force conventions and invest a lot of time to fix these components to make them more readable for someone else?
In my opinion this is always an trade off between saving time now but loosing time in the future for maintaining these jobs.
In our current agile IT landscape a lot of projects start small and have to deliver fast results.
For the management a result is already a finished solution so the next project is waiting to get fast results.
That sounds worse than I think it actually is.
As an data engineer I like to build perfect solutions but this is most of the time not needed and in some years everything we did will be migrated anyway.
So everything we build will be gone soon. (Famous last word regarding legacy systems)
I always like to avoid manually stupid work and hope these kind of tools are actually tools that will help me in the future.