Analytische Datenbanken im Data Warehouse

Transaktionale Systeme oder auch OLTP-Systeme (Online Transaction Processing) sind gekennzeichnet durch kurze ACID-Transaktionen. Für diese Art von Systemen eignen sich vor allem relationale Datenbanken, da sie für diese Art von Operationen optimiert wurden. Im Bereich von Business Intelligence und Data Science hingegen kommen zunehmend OLAP-Systeme (Online Analytical Processing) zum Einsatz, die sich von den klassischen OLTP-Systemen unterscheiden. Die OLAP-Operationen verarbeiten eine große Anzahl von Datensätzen und führen auf diesen Datensätzen mathematische Operationen wie Durchschnittsbildungen und Summierungen durch. Für diese Art von Anwendungen eignen sich vor allem analytische Datenbanken.

Grundlagen analytischer Datenbanken

Analytische Datenbanken zeichnen sich vor allem dadurch aus, dass sie ressourcen-intensive Verarbeitungen über viele Datnesätze inklusive mathematischer Operationen sehr effizient durchführen können. Hierfür werden die Daten nicht wie in klassischen OLTP-Systemen zeilenorientiert, sondern spaltenorientiert gespeichert (siehe Abb. 1).
Inhalte aus: BI-Spektrum, Ausgabe 04/2019, S.9)
Dabei werden die Daten spaltenweise in Blöcken organisiert. So können einzelne Spalten schneller gelesen und Aggregationen entsprechend schneller angewendet werden. Um die Datenbank noch schneller zu machen, wird außerdem häufig eine In-Memory-Verarbeitung im Sinne von Datenhaltung im RAM verwendet. Damit sind Ein- und Ausgabeleistungen von mehreren Gigabyte pro Sekunde möglich. Die Datenbanken können dahingehend konfiguriert werden, ob die kompletten Daten oder nur ein Teil der Daten beim Starten der Datenbank in den RAM geladen werden. So könnten beispielsweise nur die Daten der letzten 12 Monate in den RAM geladen und alle anderen Daten auf günstigere Speichermedien ausgelagert werden. Durch die spaltenorientierte Speicherung können die Daten zudem sehr speichereffizient komprimiert werden, da in jeder Spalte immer derselbe Datentyp gespeichert wird. Identische Daten innerhalb desselben Blocks verweisen nur auf einen sogenannten Mastereintrag.

Verschiedene Arten von Datenbanken

In-Memory OLAP (Cubes) Bei den OLAP-Cubes handelt es sich um proprietäre Datenbanken, die ausschließlich für den Einsatz im Data Mart Layer eines DWH geeignet sind. Hier werden verschiedenste Aggregationen bereits vorberechnet, was die Performance solcher Datenbanken noch einmal steigert. Der Fokus liegt hierbei auf der Bildung von Dimensionen und numerischen Kennzahlen. Jedoch sollte darauf geachtet werden, dass die Anzahl der Zeilen und damit die Größe der Cubes nicht zu groß werden, da dies zu fehlerhaftem Verhalten der Datenbank führen kann, weil die Daten nicht mehr richtig geladen werden können. Außerdem ist es sinnvoll, diese Art von Datenbank wirklich nur für den Einsatz als Data Mart und nur unter Einsatz einer extrem leistungsfähigen GUI zu verwenden. Big Data OLAP Auch in Big-Data-Systemen sind die Merkmale analytischer Datenbanken oft zu finden. So sind beispielsweise Hadoop oder Spark Systeme, die auf viele verschiedene Rechnerknoten verteilt sind, um auch große Datenmengen schnell und effizient parallel verarbeiten zu können. Außerdem steht spaltenorientierte Speicherung der Daten mit Hilfe von Parquet und Kudu zur Verfügung. Bei Parquet handelt es sich um ein Datenformat, in welchem Daten innerhalb von Blöcken spaltenweise organisiert werden. Kudu hingegen ist eine spaltenorientierte Storage Engine, die im Gegensatz zu Parquet vor allem für die performante Aktualisierung von Daten genutzt wird. Beide Systeme lassen sich beispielsweise in den Spark- oder Hadoop-Stack integrieren – aufgrund ihrer Komplexität in der Handhabung aber vor allem in cloud-basierten Big-Data-Systemen. Graph-Datenbanken Graph-Datenbanken speichern Daten in Knoten und Kanten. Der Performance-Fokus liegt bei dieser Art von Datenbank vor allem auf der Auswertung von Beziehungen der Daten untereinander. Dabei treffen allerdings die oben genannten Merkmale wie Spaltenorientierung nicht zu. Allerdings gibt es bisher noch keinen einheitlichen Standard bezüglich der Abfrage-Sprache. Da es sich hierbei um sogenannte NoSQL-Datenbanken handelt, gibt es eine Vielzahl von Abfragesprachen wie beispielsweise Gremlin oder SPARQL. Graph-Datenbanken finden vor allem in der Data Science Anwendung, wenn es um Szenarien wie Empfehlungssysteme (Recommendation Systems) oder Betrugserkennung (Fraud Detection) geht.

Fazit

Der Einsatz eines geeigneten Mittels löst ein Problem nicht, sondern kann nur dabei unterstützen, dieses zu lösen. So ist es auch mit analytischen Datenbanken. Merkmale wie die Spaltenorientierung, In-Memory-Verarbeitung und Komprimierung machen sie allerdings ideal für den Aufbau einer analytischen Anwendung. Jedoch birgt vor allem die Komplexität in der Handhabung solcher Datenbanken ein gewisses Risiko, das von vorn herein mit einkalkuliert werden sollte. Falls also kein internes Know-How für die Verwendung dieser Art von Datenbanken vorhanden ist, dann sollte bestenfalls auf ein anderes System oder externes Know-How zurückgegriffen werden.

“Die OMM Solutions GmbH ist ein unabhängiger und ganzheitlicher Partner für den Mittelstand. Wir begleiten Unternehmen bei der Digitalen Transformation von der Planungs- bis zur Umsetzungsphase. Hierfür finden, bewerten oder entwickeln wir individuelle Lösungen auf Basis unserer Kompetenzfelder Digitale Innovation und Digitale Technologie.”