Was ist OLAP?
OLAP-Datenbanken sind speziell darauf konzipiert, analytische Abfragen zu bearbeiten. Diese beanspruchen im Fall von OLTP (Online Transaction Processing) -Datenbanken wesentlich mehr Zeit. Das hat mehrere Gründe:
OLTP-Datenbanken liegen in der Regel in der dritten Normalform vor, so dass analytische Abfragen komplexe JOIN-Operationen für viele Tabellen beinhalten, waswas rechenintensiv sein kann. Alles zu Was ist auf CIO.de
OLTP-Datenbanken haben in der Regel relativ wenige Indizes, um die Schreibgeschwindigkeit zu optimieren. Analytische Abfragen mit hohem Leseaufwand profitieren jedoch oft von zusätzlichen Indizes.
OLTP-Datenbanken sind in der Regel ständig mit kleinen Transaktionen beschäftigt, was zu Konflikten führen kann (vor allem bei Indizes). Analytische Abfragen, die lange laufen, verlangsamen sowohl Transaktionen als auch die Abfragen selbst.
OLAP-Datenbanken lösen diese Probleme, indem sie eine separate, optimierte Datenbank für analytische Abfragen bereitstellen. Um Datenbanken für die Analyse zu optimieren, gibt es verschiedene Möglichkeiten.
Online Analytical Processing: Definition
OLAP-Datenbanken wurden entwickelt, um die multidimensionale Analyse großer Datenmengen aus einem Data Warehouse oder Data Mart zu beschleunigen. Eine Hochgeschwindigkeitsanalyse kann erreicht werden, indem:
die relationalen Daten in ein multidimensionales Format extrahiert werden, das als OLAP-Würfel bezeichnet wird;
die zu analysierenden Daten in den Speicher geladen werden;
Daten in spaltenweiser Reihenfolge gespeichert werden; und/oder
viele CPUs parallel für die Analyse verwendet werden.
OLAP-Datenbanken: Besonderheiten
Ein Hindernis bei der Implementierung von OLAP ist die Einrichtung eines Prozesses, um die Daten aus der Transaktionsdatenbank in die Analysedatenbank zu übertragen. Früher war das ein nächtlicher ETL-Batch-Job.
Mit den Verbesserungen bei Hard- und Software wurden die ETL-Verfahren oft durch kontinuierliche Datenströme ersetzt. In manchen Fällen wurde der Transformationsschritt auf das Ende des Prozesses - also nach dem Einladen der Daten (ELT) - verschoben. ELT wird immer häufiger eingesetzt, um Feature Engineering beim Machine Learning mit einer Analysedatenbank zu unterstützen.
Transaktionsdatenbanken speichern Datensätze als Tabellenzeilen, was sinnvoll ist, wenn Sie ständig auf ganze Zeilen zugreifen. OLAP-Datenbanken fassen in der Regel Tabellenspalten zusammen, was sinnvoll ist, wenn Sie dazu neigen, Feldwerte zu aggregieren. Außerdem versuchen OLAP-Datenbanken oft, aktive Spalten im Speicher zu halten, um die Geschwindigkeit zu erhöhen. Ein weiterer Vorteil der spaltenorientierten Speicherung ist, dass Spalten mit ähnlichen Daten gut komprimiert werden können.
OLAP Cube: Hyperwürfel
OLAP-Cubes (auch Hypercubes genannt) ermöglichen es, Daten mit hierarchischen Dimensionen so zu organisieren, dass Analysen schnell und ohne umfangreiche SQL-, JOIN- und UNION-Operationen durchgeführt werden können. OLAP-Cubes haben Business-Intelligence-Systeme revolutioniert: Vor ihrer Einführung stellten Unternehmensanalysten ihre Abfragen am Ende des Tages und gingen dann nach Hause - in der Hoffnung, am nächsten Tag Antworten zu erhalten. Heute sorgen Hypercubes dafür, dass den Analysten am nächsten Morgen interaktive Abfragen zur Verfügung stehen.
OLAP-Cubes unterstützen fünf Arten von "Slice and Dice"-Operationen:
Beim Slicing wird ein niedriger dimensionierter Würfel extrahiert, wobei eine Dimension auf einen einzigen Wert gesetzt wird, etwa MONAT=6.
Dicing bezeichnet das Extrahieren eines Unterwürfels mit mehreren Dimensionen, die auf einzelne Werte gesetzt sind, z. B. STORE=95 AND MONTH=6.
Drill-down und Drill-up ermöglichen es dem Analysten, von der Anzeige von Zusammenfassungen (nach oben) zu detaillierten Werten (nach unten) zu wechseln.
Roll-up fasst Daten entlang einer Dimension zusammen oder aggregiert sie. Beim Pivot wird ein Würfel gedreht, um eine andere Perspektive auf die Daten zu erhalten.
Einen OLAP-Cube zu pivotieren ist wesentlich effizienter als bei einer Tabellenkalkulation. Dazu wird die Abfragesprache MDX, eine Abwandlung von SQL, verwendet.
OLAP-Cubes wurden in den letzten Jahren weitgehend durch Data Warehouses ersetzt, die komprimierte, spaltenweise Speicherung (vorzugsweise In-Memory) und MPP verwenden.
OLAP extended: MOLAP, ROLAP & HOLAP
MOLAP
Multidimensionales Online Analytical Processing (MOLAP) ist die klassische Form von OLAP, die mehrdimensionale OLAP-Cubes verwendet. MOLAP führt zu sehr schnellen Analysen, allerdings kann die Vorverarbeitung der OLAP-Cubes sehr zeitaufwändig sein. MOLAP ist am effizientesten bei numerischen Datenfeldern, die aggregiert werden können.
ROLAP
Relationales OLAP (ROLAP) arbeitet direkt mit relationalen Datenbanken und erfordert keine OLAP-Cubes. Normalerweise ist die analytische Datenbank für ROLAP von der OLTP-Datenbank getrennt, und ein ETL- oder ELT-Prozess aktualisiert das Data Warehouse oder den Data Mart regelmäßig von der OLTP-Datenbank aus und erstellt im Rahmen dieses Prozesses Aggregat-Tabellen. Aus Effizienzgründen arbeitet der ETL- oder ELT-Prozess in der Regel mit inkrementellen Daten, anstatt das Data Warehouse von Grund auf neu zu erstellen.
Anstelle von MDX-Abfragen fragen Analysten eine ROLAP-Datenbank mit SQL ab, wobei sie sich häufig auf die neueren Analyseoperatoren stützen. Die GROUP-BY-Klausel gruppiert Aggregate nach einer bestimmten Spalte. Der ROLLUP-Operator erweitert GROUP BY auf mehrere Spalten und berechnet im Wesentlichen Zwischensummen und Gesamtsummen. Der CUBE-Operator berechnet Zwischensummen und Gesamtsummen für alle Permutationen der angegebenen Spalten.
HOLAP
Hybrid Online Analytical Processing (HOLAP) ist eine Kombination aus ROLAP und MOLAP. HOLAP ermöglicht die Speicherung eines Teils der Daten in einem MOLAP-Speicher, während ein anderer Teil in einen ROLAP-Speicher fließt. Typischerweise gibt es einen Cache für Aggregate sowohl aus dem Cube als auch aus der relationalen Datenbank. Microsoft Analysis Services und SAP BI Accelerator implementieren HOLAP. (fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation Infoworld.