pygrametl: A Powerful Programming Framework for Easy Creation and Testing of ETL Flows

Publikation: Bidrag til bog/antologi/rapport/konference proceedingBidrag til bog/antologiForskningpeer review

2 Citationer (Scopus)
364 Downloads (Pure)

Abstract

Extract-Transform-Load (ETL) flows are used to extract data, transform it, and load it into data warehouses (DWs). The dominating ETL tools use graphical user interfaces (GUIs) where users must manually place steps/components on a canvas and manually connect them using lines. This provides an easy to understand overview of the ETL flow but can also be rather tedious and require much trivial work for simple things. We, therefore, challenge this approach and propose to develop ETL flows by writing code. To make the programming easy, we proposed the Python-based ETL framework pygrametl in 2009. We have extended pygrametl significantly since the original release, and in this paper, we present an up-to-date overview of the framework. pygrametl offers commonly used functionality for programmatic ETL development and enables the user to efficiently create effective ETL flows with the full power of programming. Each dimension is represented by a dimension object that manages the underlying table or tables in the case of a snowflaked dimension. Thus, filling a slowly changing or snowflaked dimension only requires a single method call per row as pygrametl performs all of the required lookups, insertions, and assignment of surrogate keys. Similarly to dimensions, fact tables are each represented by a fact table object. Our latest addition to pygrametl, Drawn Table Testing (DTT), simplifies testing ETL flows by making it easy to define both preconditions (i.e., the state of the database before the ETL flow is run) and postconditions (i.e., the expected state after the ETL flow has run) into a test. DTT can also be used to test ETL flows created in other ETL tools. pygrametl also provides a set of commonly used functions for transforming rows, classes that help users parallelize their ETL flows using simple abstractions, and editor support for working with DTT. We present an evaluation that shows that pygrametl provides high programmer productivity and that the created ETL flows have good run-time performance. Last, we present a case study from a company using pygrametl in production and consider some of the lessons we learned during the development of pygrametl as an open source framework.
OriginalsprogEngelsk
TitelTransactions on Large-Scale Data- and Knowledge-Centered Systems XLVIII : Special Issue In Memory of Univ. Prof. Dr. Roland Wagner
Antal sider40
Vol/bindXLVIII
ForlagSpringer
Publikationsdato18 maj 2021
Sider45-84
ISBN (Trykt)978-3-662-63518-6
ISBN (Elektronisk)978-3-662-63519-3
DOI
StatusUdgivet - 18 maj 2021
NavnLecture Notes in Computer Science
Vol/bind12670
ISSN0302-9743

Fingeraftryk

Dyk ned i forskningsemnerne om 'pygrametl: A Powerful Programming Framework for Easy Creation and Testing of ETL Flows'. Sammen danner de et unikt fingeraftryk.

Citationsformater