H.2.5 Heterogeneous Databases
Refine
Document Type
- Doctoral Thesis (3)
Has Fulltext
- yes (3)
Keywords
- Datenbanken (1)
- NoSQL (1)
- Sprache (1)
Faculty / Organisational entity
In recent years, business intelligence applications become more real-time and traditional data warehouse tables become fresher as they are continuously refreshed by streaming ETL jobs within seconds. Besides, a new type of federated system emerged that unifies domain-specific computation engines to address a wide range of complex analytical applications, which needs streaming ETL to migrate data across computation systems.
From daily-sales reports to up-to-the-second cross-/up-sell campaign activities, we observed various latency and freshness requirements set in these analytical applications. Hence, streaming ETL jobs with regular batches are not flexible enough to fit in such a mixed workload. Jobs with small batches can cause resource overprovision for queries with low freshness needs while jobs with large batches would starve queries with high freshness needs. Therefore, we argue that ETL jobs should be self-adaptive to varying SLA demands by setting appropriate batches as needed.
The major contributions are summarized as follows.
• We defined a consistency model for “On-Demand ETL” which addresses correct batches for queries to see consistent states. Furthermore, we proposed an “Incremental ETL Pipeline” which reduces the performance impact of on-demand ETL processing.
• A distributed, incremental ETL pipeline (called HBelt) was introduced in distributed warehouse systems. HBelt aims at providing consistent, distributed snapshot maintenance for concurrent table scans across different analytics jobs.
• We addressed the elasticity property for incremental ETL pipeline to guarantee that ETL jobs with batches of varying sizes can be finished within strict deadlines. Hence, we proposed Elastic Queue Middleware and HBaqueue which replace memory-based data exchange queues with a scalable distributed store - HBase.
• We also implemented lazy maintenance logic in the extraction and the loading phases to make these two phases workload-aware. Besides, we discuss how our “On-Demand ETL” thinking can be exploited in analytic flows running on heterogeneous execution engines.
NoSQL-Datenbanken werden als Alternative zu klassischen relationalen Datenbanksystemen eingesetzt, um die Herausforderungen zu meistern, die „Big Data“ mit sich bringt. Big Data wird über die drei V definiert: Es sind große Datenmengen („Volume“), die schnell anwachsen („Velocity“) und heterogene Strukturen haben („Variety“). NoSQL-Datenbanken besitzen zudem meist nur sehr einfache Anfragemethoden. Um auch komplexe Datenanalysen durchzuführen, kommen meist Datenverarbeitungsframeworks wie MapReduce, Spark oder Flink zum Einsatz. Diese sind jedoch schwieriger in der Benutzung als SQL oder andere Anfragesprachen.
In dieser Arbeit wird die Datentransformationssprache NotaQL vorgestellt. Die Sprache verfolgt drei Ziele. Erstens ist sie mächtig, einfach zu erlernen und ermöglicht komplexe Transformationen in wenigen Code-Zeilen. Zweitens ist die Sprache unabhängig von einem speziellen Datenbankmanagementsystem oder einem Datenmodell. Daten können von einem System in ein anderes transformiert und Datenmodelle dementsprechend ineinander überführt werden. Drittens ist es möglich, NotaQL-Skripte auf verschiedene Arten auszuführen, sei es mittels eines Datenverarbeitsungsframeworks oder über die Abbildung in eine andere Sprache. Typische Datentransformationen werden periodisch ausgeführt, um bei sich ändernden Basisdaten die Ergebnisse aktuell zu halten. Für solche Transformationen werden in dieser Arbeit verschiedene inkrementellen Ansätze miteinander verglichen, die es möglich machen, dass NotaQL-Transformationen die vorherigen Ergebnisse wiederbenutzen und Änderungen seit der letzten Berechnung darauf anwenden können. Die NotaQL-Plattform unterstützt verschiedene inkrementelle und nicht-inkrementelle Ausführungsarten und beinhaltet eine intelligente Advisor-Komponente, um Transformationen stets auf die bestmögliche Art auszuführen. Die vorgestellte Sprache ist optimiert für die gebräuchlichen NoSQL-Datenbanken, also Key-Value-Stores, Wide-Column-Stores, Dokumenten- und Graph-Datenbanken. Das mächtige und erweiterbare Datenmodell der Sprache erlaubt die Nutzung von Arrays, verschachtelten Objekten und Beziehungen zwischen Objekten. Darüber hinaus kann NotaQL aber nicht nur auf NoSQL-Datenbanken, sondern auch auf relationalen Datenbanken, Dateiformaten, Diensten und Datenströmen eingesetzt werden. Stößt ein Benutzer an das Limit, sind Kopplungen zu Programmiersprachen und existierenden Anwendungen mittels der Entwicklung benutzerdefinierter Funktionen und Engines möglich. Die Anwendungsmöglichkeiten von NotaQL sind Datentransformationen jeglicher Art, von Big-Data-Analysen und Polyglot-Persistence-Anwendungen bis hin zu Datenmigrationen und -integrationen.
Data integration aims at providing uniform access to heterogeneous data, managed by distributed source systems. Data sources can range from legacy systems, databases, and enterprise applications to web-scale data management systems. The materialized approach to data integration, extracts data from the sources, transforms and consolidates the data, and loads it into an integration system, where it is persistently stored and can be queried and analyzed.
To support materialized data integration, so called Extract-Transform-Load (ETL) systems have been built and are widely used to populate data warehouses today. While ETL is considered state-of-the-art in enterprise data warehousing, a new paradigm known as MapReduce has recently gained popularity for web-scale data transformations, such as web indexing or page rank computation.
The input data of both, ETL and MapReduce programs keeps changing over time, while business transactions are processed or the web is crawled, for instance. Hence, the results of ETL and MapReduce programs get stale and need to be recomputed from time to time. Recurrent computations over changing input data can be performed in two ways. The result may either be recomputed from scratch or recomputed in an incremental fashion. The idea behind the latter approach is to update the existing result in response to incremental changes in the input data. This is typically more efficient than the full recomputation approach, because reprocessing unchanged portions of the input data can often be avoided.
Incremental recomputation techniques have been studied by the database research community mainly in the context of the maintenance of materialized views and have been adopted by all major commercial database systems today. However, neither today's ETL tools nor MapReduce support incremental recomputation techniques. The situation of ETL and MapReduce programmers nowadays is thus much comparable to the situation of database programmers in the early 1990s. This thesis makes an effort to transfer incremental recomputation techniques into the ETL and MapReduce environments. This poses interesting research challenges, because these environments differ fundamentally from the relational world with regard to query and programming models, change data capture, transactional guarantees and consistency models. However, as this thesis will show, incremental recomputations are feasible in ETL and MapReduce and may lead to considerable efficiency improvements.