Apache Kylin: OLAP im Big-Data-Maßstab

Werkzeuge  –  0 Kommentare
Anzeige

Die von eBay entwickelte OLAP-Engine (Online Analytical Processing) Kylin will die in der klassischen Business Intelligence seit vielen Jahren etablierten OLAP-Cubes mit Unterstützung der Hadoop-Plattform in die Big-Data-Welt übertragen. Ein Überblick zur Architektur und zu Prozessen sowie ein paar nützliche Hinweise bei der Generierung von Cubes.

In der klassischen Business Intelligence kommen seit vielen Jahren in der Regel relationale Datenbanken als Datenspeicher zum Einsatz. Das ermöglicht Analysten, ihre Hypothesen entweder direkt mit SQL oder dafür vorgesehenen Analysewerkzeugen auf Basis von SQL zu verifizieren. Jedoch skalieren sowohl klassische relationale Datenbanken als auch OLAP-Engines nicht horizontal und besitzen daher eine natürliche Grenze bezüglich ihrer Datenspeicher- und Datenverarbeitungskapazität. Die Beschränkungen lassen sich mit Big-Data-Techniken überwinden. In den letzten Jahren hat hierbei das verteilte Datenbetriebssystem Apache Hadoop und sein Ökosystem zunehmend an Bedeutung gewonnen.

Wie viele große Firmen stand eBay vor der Herausforderung, die stetig wachsende Datenmenge bei steigender Vielfalt der Nutzer im Sekundenbereich analysieren zu wollen. Die Systemanforderungen waren schnell aufgeschrieben: Das Tool sollte ANSI-Standard-SQL für interne SQL-kompatible Tools verstehen, eine gleichzeitige Nutzung von mehreren 1000 Benutzern ermöglichen und auf einer horizontal skalierenden Architektur auf Hadoop basieren. Die Ausführungsdauer der Analysen sollte dabei im Sekundenbereich liegen, auch bei mehreren Milliarden Datensätzen.

Die Suche nach dem passenden Werkzeug führte in der Open-Source-Community ins Leere. Deshalb beauftragte eBay im September 2013 Luke Han und sein Team damit, ein neues Projekt ins Leben zu rufen – die Geburtsstunde von Kylin.

Bevor der Artikel näher auf Architektur und Komponenten von Kylin eingeht, soll zunächst das Prinzip hinter dem von Edgar F. Codd geprägten Begriff Online Analytical Processing (OLAP) genauer betrachtet werden. Im Gegensatz zum Online Transaction Processing (OLTP) steht bei OLAP das Durchführen komplexer und flexibler Analysen im Vordergrund. Zur logischen Darstellung werden die Daten als Elemente eines mehrdimensionalen Würfels (OLAP-Cube) dargestellt.

Ein Beispiel: Ein Getränkehändler mit mehreren Standorten in Deutschland will analysieren, wie viele Hektoliter Bier 2014 verkauft wurden. Da die Frage bei der Entwicklung des Analysesystems vermutet wurde, speicherte man die Daten in einen OLAP-Cube:

OLAP-Cube mit Dimensionen Jahr, Getränkesorte und Standort (Abb. 1)

Im Beispiel besteht der OLAP-Cube aus folgenden drei Dimensionen: Zeit, Getränke und Standorte des Unternehmens. Die Werte des Cubes werden als Measures bezeichnet. Um die Frage beantworten zu können, sind lediglich die Measures in der Zeile "Bier im Jahr 2014" zu addieren.

Eine wichtige Eigenschaft von OLAP-Systemen ist die hierarchische Anordnung der Daten, die sich in vielen Daten wiederfindet. Beispielsweise besteht ein Jahr aus zwölf Monaten und ein einzelner Monat aus mehreren Tagen. OLAP-Systeme ermöglichen die Navigation entlang einer Hierarchie. Wenn analysiert werden soll, wie viele Hektoliter 2014 pro Monat verkauft wurden, lassen sich durch eine detaillierte Navigation die Zahlen für einzelne Monate auslesen. Diese Verfeinerung des Detaillierungsgrades der Daten wird als Drill-down-, die entgegengesetzte Richtung als Roll-up-Operation bezeichnet. Durch die Anordnung der Daten ermöglicht das OLAP-System eine einfache, flexible und schnelle Bereitstellung entscheidungsrelevanter Informationen aus verschiedenen Perspektiven.

Je nach Speichertechnik wird zwischen unterschiedlichen OLAP-Verfahren unterschieden. Die gebräuchlichsten sind ROLAP (Relational OLAP) und MOLAP (Multidimensional OLAP). Greift ein OLAP-System bei der Analyse auf eine relationale Datenbank zu, nennt man das ROLAP. Aufgrund der weiten Verbreitung relationaler Datenbanken wird dieses Verfahren häufiger eingesetzt. In den meisten Fällen besteht das Datenmodell aus einer zentralen Relation, der Faktentabelle, die mehrere, sternförmig angeordnete Relationen, die Dimensionstabellen, umgeben. Die Faktentabelle enthält pro Datensatz sowohl alle Measures als auch die Fremdschlüssel zu den Dimensionstabellen. Die beschreibenden Informationen werden in den jeweiligen Dimensionstabellen gespeichert.

Im Vergleich zur Datenspeicherung in einer relationalen Datenbank legt man die Daten bei MOLAP direkt in einer multidimensionalen Datenbank ab. Dabei sind Vorberechnungen der Aggregationen im OLAP-Cube erforderlich. Dieser Aufwand ermöglicht während der Analyse eine kürzere Ausführungsdauer, führt jedoch gleichzeitig zu einem größeren Speicherplatzverbrauch, da die Aggregationen für jede Kombination der Dimensionen vorzuberechnen sind. Solch eine einzelne Teilmenge der Dimensionen heißt Cuboid. Die mögliche Anzahl an Cuboids steigt exponenziell zur Anzahl der Dimensionen an. Im Beispiel werden bereits 2^3 Cuboids benötigt: ein Cuboid mit drei Dimensionen (Getränk, Zeit, Standort), drei Cuboids mit zwei Dimensionen (Zeit, Standort), (Getränk, Standort), (Getränk, Zeit), drei Cuboids mit einer Dimension (Standort), (Zeit), (Getränk) und zuletzt ein Cuboid ohne Dimension ().

Um die Vorteile beider Verfahren zu nutzen, ist eine Kombination der Speichertechniken möglich. Auch Kylin setzt auf eine Verbindung von ROLAP und MOLAP.

Anzeige