Název:
Analýza datových toků pro knihovny se složitými vzory interakcí
Překlad názvu:
Data Lineage Analysis of Frameworks with Complex Interaction Patterns
Autoři:
Hýbl, Oskar ; Parízek, Pavel (vedoucí práce) ; Hnětynka, Petr (oponent) Typ dokumentu: Diplomové práce
Rok:
2020
Jazyk:
eng
Abstrakt: [eng][cze] 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...Manta 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ě...
Klíčová slova:
Apache Spark; datové toky; Java frameworky; statická analýza programu; Apache Spark; data lineage; Java frameworks; static program analysis