Aktuelles Projekt: NoSQL Schema Evolution and Big Data Migration at Scale (Darwin)

  • zusammen mit Prof. Dr. Uta Störl, Darmstadt University of Applied Sciences und Prof. Dr.-Ing. Stefanie Scherzinger, OTH Regensburg, gefördert durch die Deutsche Forschungsgemeinschaft DFG für 3 Jahre

Ziel des Projektes

Im Mittelpunkt dieses Projektes stehen die Schemaevolution und die skalierbare Migration von Daten in NoSQL-Datenbanken.

Im letzten Jahrzehnt haben sich NoSQL-Datenbanksysteme fest im Software-Entwicklungs-Stack etabliert. Diese Systeme sind darauf ausgelegt, große Datenmengen zu verwalten. Gerade in der agilen Anwendungsentwicklung wird die Schema-Flexibilität dieser Systeme sehr geschätzt, da der Anwendungscode inkrementell weiterentwickelt werden kann, ohne dass vorab ein starres Schema definiert werden muss. Doch auch wenn die Datenbank selbst kein Schema verwaltet, stellt der Anwendungscode implizite Anforderungen an die Struktur der gespeicherten Daten. Mit der Veröffentlichung einer neuen Version der Anwendungssoftware gilt es nun, die Daten im Produktivsystem in die aktuelle Struktur zu migrieren. Aus den Schemaevolutionsoperationen, die die Änderungen zwischen aufeinanderfolgenden Schemaversionen beschreiben, können die Datenmigrationsoperationen für das jeweilige NoSQL-Datenbanksystem abgeleitet werden.

Es gibt verschiedene Möglichkeiten zur Umsetzung der Schemaevolution, die vollständige Migration aller Datensätze (eager migration), die Aktualisierung nur der Datensätze, auf die durch die Anwendung zugegriffen wird (lazy migration) und hybride Strategien. Ausgehend von einer empirischen Studie zur Co-Evolution von Anwendungscode und darin impliziertem Schema in quelloffenen Entwicklungsprojekten sollen praktisch relevante Migrationsstrategien identifizieren werden. Darüber hinaus entwickeln wir neue Varianten, bewerten ihre Vor- und Nachteile und untersuchen ihre Einsatzmöglichkeiten. Um Software-Entwickler in ihrer Projektarbeit zu unterstützen, entwickeln wir einen Datenmigrations-Advisor. Dieser schlägt auf Basis eines eigens entwickelten Kostenmodells eine für das Projekt geeignete Datenmigrationsstrategie sowie deren Parametrisierung vor. Unser Vorhaben leistet dabei folgende Beiträge:

  1. Erstellung einer empirischen Studie zur Co-Evolution von Anwendungscode und NoSQL-Daten in quelloffenen Entwicklungsprojekten,
  2. theoretische Fundierung effizienter NoSQL-Datenmigrationsstrategien,
  3. Bewertung der Strategien auf Basis unseres Kostenmodells, 
  4. Bereitstellen einer ausdrucksstarken Schema-Evolutionssprache, welche praxisrelevante Transformationen unterstützt, 
  5. Implementierung der Konzepte innerhalb von Darwin, unserem Prototypen einer produktunabhängigen Schema-Managementkomponente, 
  6. Konzeption und Bereitstellung eines Advisor für die NoSQL-Datenmigration, sowie 
  7. die Entwicklung und Bereitstellung eines repräsentativen Benchmarks für die NoSQL Schema-Evolution.

Ein wesentliches Ziel des Projektes ist es, den Erkenntnisgewinn aus unserer Forschungsarbeit in Form von quelloffenen Werkzeugen verfügbar zu machen. Da Anwendungsentwicklern bis dato keine Referenzarchitektur für NoSQL Schema-Evolution zur Verfügung steht, sind wir der Überzeugung, mit unserem Forschungsvorhaben einen wertvollen Beitrag leisten zu können.

Online-Tool zum Generieren von JSON Daten verfügbar

Sceendump

Felix Beuster hat im Rahmen seiner Masterarbeit im Darwin-Projekt ein Online-Tool zum Generieren von JSON-Dokumenten als Testdaten entwickelt. Dieses kann JSON-Dokumente mit Beispieldaten zu einer vorgegebenen Struktur erzeugen, besonderes Feature dabei ist, dass das Generieren heterogener JSON-Dokumente (mit unterschiedlicher Strukturierung pro Datensatz) möglich ist.

Der Zugang zu diesem Generator ist hier zu finden.

Forschungsgebiete und -themen

Forschungsgebiete

  • Data Warehouses 
  • Datenintegration
  • NoSQL Datenbanken
  • XML und Datenbanken
  • Recommendersysteme

Abgeschlossene Projekte

  • Octopus-TX: Flexibilisierung des ETL-Prozesses für Data Warehouse-Anwendungen
  • CodeX: Conceptual Design and Evolution of XML applications