Data Lineage Analysis Service for Embedded Code
Služba pro analýzu datových toků vestavěného kódu
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/184190Identifiers
Study Information System: 244885
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Bednárek, David
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science - Software and Data Engineering
Department
Department of Distributed and Dependable Systems
Date of defense
6. 9. 2023
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
Keywords (Czech)
dataová linie|datové toky|vložený kód|python|AWS GlueKeywords (English)
data lineage|data flow|embedded code|python|AWS GlueNástroje pro integraci dat často používají vložený kód pro manipulaci s daty. Mezi příklady takových nástrojů patří služba pro integraci dat AWS Glue, platforma Databricks, datový cloud Snowflake nebo integrační služby SQL Serveru (SSIS). Vestavěný kód je ob- vykle psán v programovacích jazycích jako je Python, Java, C# nebo JavaScript. Manta Flow je automatizovaná platforma pro analýzu datových linií v databázových modelech, datových kanálech nástrojů pro integraci dat, a ve zdrojovém kódu aplikací, ale chybí jí schopnost analyzovat vložený kód. V této práci jsme zhodnotili potenciální způsoby rozšíření možností platformy Manta Flow o schopnost analyzovat datové linie ve vloženém kódu. Vytvořili jsme obecný návrh opakovaně použitelné služby pro vestavěný kód, která využívá stávající potenciál analýzy datových toků ve zdrojovém kódu, a používá jej pro analýzu vestavěného kódu. Im- plementovali jsme specializaci této služby pro programovací jazyk Python a abychom demonstrovali její užitečnost, navrhli jsme a implementovali prototyp skeneru datových linií pro službu integrace dat AWS Glue. Tento skener rozsáhle využívá dotčenou službu k analýze datových linií ve vložených skriptech v jazyce Python, což jsme předvedli na realistickém příkladu. 1
Data integration tools often use embedded code for data manipulation tasks. Popular examples of such tools include AWS Glue data integration service, Databricks platform, Snowflake data cloud or SQL Server Integration Services (SSIS). Embedded code is typi- cally written in programming languages such as Python, Java, C# or JavaScript. Manta Flow is an automated platform that can analyze data lineage in database models, data pipelines of data integration tools, and in application source code, but it lacks the ability to analyze embedded code. In this work, we discussed potential ways to extend the capabilities of Manta Flow with the ability to analyze data lineage in embedded code. We created a general design of a reusable Embedded Code Service that leverages the existing potential of data flow analysis of source code, and uses it to analyze embedded code. We implemented a specialization of this service for the Python programming language, and to demonstrate its usefulness, we designed and implemented a prototype of data lineage scanner for AWS Glue data integration service. This scanner extensively uses the service to analyze data lineage in embedded Python scripts, which we demonstrated on a realistic example. 1