1. A method for Extract Transform Load (ETL) process optimization on a computing system, comprising: obtaining an improvement objective from user input into the computing system, the improvement objectives representing a priority optimization desired by a user for improved ETL flows for an application configured to run in memory of the computing system; creating an ETL flow in memory of the computing system; restructuring the ETL flow for flow optimization using a processor of the computing system by applying an algebraic rewriting process, wherein the flow restructuring is based on the improvement objective; and storing the optimized ETL flow as executable code on a computer readable storage medium.