UNIVERSITÄTSBIBLIOTHEK

Datentransformationen in NoSQL-Datenbanken

  • 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.
  • NoSQL databases are a new family of databases systems that do not necessarily follow the relational model, they have simple access methods, and they are made to handle Big Data. Characterized with the 3 Vs, Big Data is typically defined in terms of Volume, Variety, and Velocity. Data-processing frameworks like MapReduce, Spark, or Flink are often used to perform complex data analyses due to the simple access methods of NoSQL databases. These systems are powerfull but more difficult to use than query languages such as SQL. In this thesis, a data-transformation language called NotaQL is presented. This language follows three objectives. Firstly, it is easy to learn, concise and powerful. Secondly, it is independent of the actual underlying database system and its data model. Data from different systems can be read and written to perform a cross-system transformation. Thirdly, NotaQL transformations can be executed in various ways. There are approaches that \mbox{make} use of MapReduce, Spark, or other tools and languages. As typical data transformations are executed periodically to bring the transformation results up to date, this thesis shows and evaluates different approaches for incremental transformations by reusing a previous result and analyzing only the changes since the former computation to produce the new result. Different incremental and non-incremental approaches are supported by the NotaQL transformation platform. An intelligent advisor component can be used to always execute a transformation in the best possible way. NotaQL supports all typical forms of NoSQL databases: key-value stores, wide-column stores, document stores and graph databases. Its powerful and extensible data model allows for handling arrays, complex objects, and relationships between objects. However, NotaQL is not limited to NoSQL databases; it can also be used to analyze and transform data from relational databases, files, services, and data streams. When a user reaches the limits of NotaQL, user-defined functions and engines can be developed to extend the language and connect transformations to other systems. The fields of application of the presented language are data transformations of any kind: from Big-Data analytics and polyglot-persistence applications to data migrations and information integration.

Volltext Dateien herunterladen

Metadaten exportieren

Metadaten
Verfasserangaben:Johannes Schildgen
URN (Permalink):urn:nbn:de:hbz:386-kluedo-48294
Betreuer:Stefan Deßloch
Dokumentart:Dissertation
Sprache der Veröffentlichung:Deutsch
Veröffentlichungsdatum (online):10.10.2017
Jahr der Veröffentlichung:2017
Veröffentlichende Institution:Technische Universität Kaiserslautern
Titel verleihende Institution:Technische Universität Kaiserslautern
Datum der Annahme der Abschlussarbeit:25.09.2017
Datum der Publikation (Server):12.10.2017
Freies Schlagwort / Tag:Datenbanken; Sprache
NoSQL
Seitenzahl:XV, 193
Fachbereiche / Organisatorische Einheiten:Fachbereich Informatik
CCS-Klassifikation (Informatik):H. Information Systems / H.2 DATABASE MANAGEMENT (E.5) / H.2.5 Heterogeneous Databases
DDC-Sachgruppen:0 Allgemeines, Informatik, Informationswissenschaft / 004 Informatik
Lizenz (Deutsch):Creative Commons 4.0 - Namensnennung (CC BY 4.0)