Requirement driven Design and Optimization of Data Intensive Flows
Data have become number one assets of today's business world. Thus, its exploitation and analysis attracted the attention of people from different fields and having different technical backgrounds. Data intensive flows are central processes in today's business intelligence (BI) systems, deploying different technologies to deliver data, from a multitude of data sources, in user preferred and analysis ready formats. However, designing and optimizing such data flows, to satisfy both users' information needs and agreed quality standards, have been known as a burdensome task, typically left to the manual efforts of a BI system designer. These tasks have become even more challenging for next generation BI systems, where data flows typically need to combine data from in house transactional storages, and data coming from external sources, in a variety of formats (e.g. social media, governmental data, news feeds) Moreover, for making an impact to business outcomes, data flows are expected to answer unanticipated analytical needs of a broader set of business users' and deliver valuable information in near real time (i.e. at the right time) These challenges largely indicate a need for boosting the automation of the design and optimization of data intensive flows. This PhD thesis aims at providing automatable means for managing the lifecycle of data intensive flows. The study primarily analyzes the remaining challenges to be solved in the field of data intensive flows, by performing a survey of current literature, and envisioning an architecture for managing the lifecycle of data intensive flows. Following the proposed architecture, we further focus on providing automatic techniques for covering different phases of the data intensive flows' lifecycle. In particular, the thesis first proposes an approach (CoAl) for incremental design of data intensive flows, by means of multi flow consolidation. CoAl not only facilitates the maintenance of data flow designs in front of changing information needs, but also supports the multi flow optimization of data intensive flows, by maximizing their reuse. Next, in the data warehousing (DW) context, we propose a complementary method (ORE) for incremental design of the target DW schema, along with systematically tracing the evolution metadata, which can further facilitate the design of back end data intensive flows (i.e. ETL processes) The thesis then studies the problem of implementing data intensive flows into deployable formats of different execution engines, and proposes the BabbleFlow system for translating logical data intensive flows into executable formats, spanning single or multiple execution engines. Lastly, the thesis focuses on managing the execution of data intensive flows on distributed data processing platforms, and to this end, proposes an algorithm (H WorD) for supporting the scheduling of data intensive flows by workload driven redistribution of data in computing clusters. The overall outcome of this thesis an end to end platform for managing the lifecycle of data intensive flows, called Quarry. The techniques proposed in this thesis, plugged to the Quarry platform, largely facilitate the manual efforts, and assist users of different technical skills in their analytical tasks. Finally, the results of this thesis largely contribute to the field of data intensive flows in today's BI systems, and advocate for further attention by both academia and industry to the problems of design and optimization of data intensive flows.