Transactions on Large-Scale Data- and Knowledge-Centered Systems XLVIII - Lecture Notes in Computer Science
Latest Publications


TOTAL DOCUMENTS

9
(FIVE YEARS 9)

H-INDEX

0
(FIVE YEARS 0)

Published By Springer Berlin Heidelberg

9783662635186, 9783662635193

Author(s):  
Markus Holzleitner ◽  
Lukas Gruber ◽  
José Arjona-Medina ◽  
Johannes Brandstetter ◽  
Sepp Hochreiter
Keyword(s):  

Author(s):  
Søren Kejser Jensen ◽  
Christian Thomsen ◽  
Torben Bach Pedersen ◽  
Ove Andersen

AbstractExtract-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 in 2009. We have extended significantly since the original release, and in this paper, we present an up-to-date overview of the framework. 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 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 , 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. 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 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 in production and consider some of the lessons we learned during the development of as an open source framework.


Sign in / Sign up

Export Citation Format

Share Document