Data Lineage Analysis of Frameworks with Complex Interaction Patterns
Analýza datových toků pro knihovny se složitými vzory interakcí
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/147591Identifiers
Study Information System: 222076
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Hnětynka, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
16. 9. 2020
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
Keywords (Czech)
datové toky, statická analýza programu, Java frameworky, Apache SparkKeywords (English)
data lineage, static program analysis, Java frameworks, Apache SparkManta Flow je nástroj pro analýzu toku dat v podnikovém prostředí. Obsahuje modul Java skener, využívající statickou analýzu k nalezení datových toků Java aplikacemi. Aby bylo možné analyzovat aplikaci využívající určitý framework, vyžaduje skener speciální plugin. Přestože Java skener poskytuje pluginy pro několik frameworků, k použitelnosti na reálných aplikace je nezbytné, aby podporoval frameworků co nejvíce. To vyžaduje implementaci nových pluginů. Aplikace využívající Apache Spark, framework pro výpočty na clusterech, jsou stále populárnější. Proto jsme navrhli a implementovali plugin pro Java skener, který mu umožňuje analyzovat aplikace využívající tento framework. Protože se Spark zaměřuje na zpracování dat, přestavovala implementace pluginu pro jeho podporu, oproti již existujícím pluginům, několik nových výzev. Zejména bylo nutné vyvinout metody detekce schématu dat v různých scénářích a sledovat jeho změny během všech operací vyvolaných na datech. Z několika API, která Spark poskytuje pro zpracování dat, jsme se zaměřili na modul Spark SQL, zejména na třídu Dataset. Vynechali jsme především již zastaralé RDD. Implementovali jsme také podporu pro přístup k databázím pomocí JDBC a k souborům ve vybraných formátech. Implementace byla důkladně testována a je prokázáno, že funguje správně...
Manta Flow is a tool for analyzing data flow in enterprise environment. It features Java scanner, a module using static analysis to determine the flows through Java applications. To analyze an application using some framework, the scanner requires a dedicated plugin. Although Java scanner provides plugins for several frameworks, to be usable for real applications, it is essential that the scanner supports as many frameworks as possible, which requires implementation of new plugins. Application using Apache Spark, a framework for cluster computing, are increasingly popular. Therefore we designed and implemented Java scanner plugin that allows the scanner to analyze Spark applications. As Spark focuses on data processing, this presented several challenges that were not encountered in other frameworks. In particular it was necessary to resolve the data schema in various scenarios and track the schema changes throughout any operations invoked on the data. Of the multiple APIs Spark provides for data processing, we focused on Spark SQL module, notably on Dataset, omitting the legacy RDD. We also implemented support for data access, covering JDBC and chosen file formats. The implementation has been thoroughly tested and is proven to work correctly as a part of Manta Flow, which features the plugin in...