Business Intelligence mit Pentaho

Seite 5: Analyse

Inhaltsverzeichnis

Das Modul Pentaho Analysis besteht zurzeit aus dem OLAP-Server Mondrian, GUI-Anwendungen zur Konfiguration der OLAP-Würfel und dem OLAP-Webfrontend JPivot. Pentaho hat zudem das WEKA-Projekt übernommen, um zukünftig auch Data Mining anbieten zu können. Momentan ist die Integration in die BI-Suite aber noch nicht zur Gänze vollzogen.

Insgesamt wird das Thema OLAP (Online Analytical Processing) von der Pentaho BI Suite zufriedenstellend unterstützt. Im Vergleich zu kommerziellen Produkten ist allerdings insbesondere bei der Nutzerfreundlichkeit der Abstand noch recht groß. Gerade hier ist aber eine rege Entwicklungsdynamik zu beobachten, sodass davon auszugehen ist, dass sich die Lücke in der nächsten Zeit schließen wird.

Mondrian ist eine Java-basierte Server-Engine für relationales OLAP. Mondrian wurde ursprünglich 2001 als eigenständiges Open-Source-Projekt veröffentlicht und ist seit Anfang 2006 Teil des Pentaho-Projekts. Mondrian wird auch in anderen Open-Source-BI-Projekten, beispielsweise von Pentaho-Mitbewerber JasperSoft, als OLAP-Engine eingesetzt. Das führt zu einer Bündelung der Open-Source-Ressourcen im Bereich OLAP und zu gemeinsamen Projekten wie der Schema Workbench oder der OLAP4J-API.

Die Datenbasis in relationalen OLAP-Systemen bildet eine relationale Datenbank mit in Star- oder Snowflake-Schemata organisierten Tabellen. Die Beziehung zwischen den logischen und den relationalen Strukturen wird im Mondrian-Schema definiert – einer XML-basierten Konfigurationsdatei. Im Schema werden die Tabellen und Spalten des relationalen Datenbankschemas auf Würfel (Cubes), Dimensionen und Fakten des logischen Schemas abgebildet. Pro Fakttabelle wird eine Cube angelegt.

Zur Cube-Konfiguration gehört neben der Definition der Faktspalten auch die Definition der Granularität, d.h. auf welchen Dimensionen inklusive Hierarchieebenen die Fakten des Würfels basieren. Weiterhin können auch logische Fakten (Calculated Members) angelegt werden, die nicht mit Spalten der Fakttabelle verbunden sind, sondern in der OLAP-Engine berechnet werden. Dimensionen werden in Hierarchien und Hierarchieebenen definiert. Sind Dimensionen mit mehreren Cubes verbunden (Shared Dimensions), so werden sie separat angelegt. Ansonsten können sie auch als Teil des Cubes definiert werden.

Mondrian unterstützt den Zugriff auf Daten per MDX. MDX (Multi-Dimensional Expressions) ist ein von Microsoft entwickelter Standard zur Definition von Abfragen in OLAP-Systemen. Die MDX-Syntax beschreibt Struktur und Dateninhalte einer Kreuztabelle. Die Dateninhalte werden aus Mengen von Dimensionselementen und Fakten gebildet und dann auf den Zeilen oder Spaltenköpfen einer Kreuztabelle platziert.

Weiterhin unterstützt Mondrian den Datenzugriff per XMLA (XML for Analysis API) oder OLAP4J. OLAP4J ist eine neue Schnittstellendefinition für die Verbindung von OLAP-Systemen und Java-Programmen. Verschiedene Anbieter – insbesondere aus dem Open-Source-Umfeld – arbeiten zusammen an der Entwicklung einer Standard-Javaschnittstelle für OLAP.

Mondrian als OLAP-Engine optimiert den Zugriff auf WĂĽrfel

Bei einem Zugriff übernimmt Mondrian als OLAP-Engine die Aufgabe, die MDX-Befehle oder XMLA- oder OLAP4J-Anfragen zu interpretieren und das Ergebnis zurückzuliefern. Die Engine nutzt das Mondrian-Schema, um die multidimensionalen Abfragen in SQL-Syntax zu übersetzen und auf der Datenbank auszuführen. Die Ergebnisse der SQL-Abfrage werden von Mondrian im Cache gespeichert. Wenn alle benötigten Daten vorhanden sind, gibt die Engine das Gesamtergebnis zurück.

Neben dem Cache verfügt Mondrian mit der Unterstützung von Aggregaten auf Fakttabellen über eine weitere wichtige Funktion zur Performanzsteigerung. Aggregate beinhalten die gleichen Faktspalten wie ihre Basistabelle, unterscheiden sich jedoch in der Granularität, also der Hierarchieebene einer oder mehrerer verbundenen Dimensionen. Durch die höhere Verdichtung enthalten die Aggregattabellen weniger Zeilen und verkürzen somit die Antwortzeiten gegenüber den Fakttabellen erheblich. Sind für einen Cube Aggregattabellen definiert, entscheidet die OLAP-Engine mit einem kostenbasierten Ansatz, ob sie bei einer SQL-Abfrage auf die Fakttabelle oder eine passende Aggregattabelle zugreift. Die Ergebnisse werden unabhängig von der abgefragten Tabelle im entsprechenden Aggregatlevel in den Cache geschrieben. Dies vermeidet unnötige Berechnungen in der OLAP-Engine und bei einem erneuten Zugriff können die Daten direkt aus dem Cache in der richtigen Granularität zurückgegeben werden.

Pentaho bietet noch keine integrierte Anwendung zur Definition von Mondrian-Schemadateien an. Zurzeit existieren zwei Anwendungen, ein Wizard fĂĽr eine gesteuerte Definition eines Mondrian-Schemas, der Cube Designer, und die Schema Workbench, eine Anwendung zur Bearbeitung von existierenden Schemadateien, die von JasperSoft fĂĽr Mondrian entwickelt wurde. Pentaho selbst hat ebenfalls ein Projekt fĂĽr die Entwicklung eines integrierten Schema Designers aufgesetzt.

WĂĽrfel mit dem Cube Designer definieren

Mit dem Cube Designer ist es derzeit nicht möglich, Aggregattabbellen einzubinden oder vorhandene Schemata zu bearbeiten. Für diesen Zweck bietet sich die Schema Workbench an.

Eine Werkbank fĂĽr WĂĽrfel: die Schema Workbench

Hier präsentiert sich das Schema als Baumstruktur. Per Mausklick kann die Baumstruktur um neue Knoten erweitert werden. Die Eigenschaften des ausgewählten Knotens lassen sich in der Workbench bequem editieren.

Neben dem Schema-Editor umfasst die Schema Workbench noch einen JDBC-Navigator, mit dem man in den Strukturen der ĂĽber JDBC verbunden Datenbank navigieren kann. Ein MDX-Editor, mit dem das erstellte Schema direkt per MDX-Abfragen getestet werden kann, ist ebenso integriert.

Die Pentaho BI Platform nutzt die quelloffene Java-Tag-Library JPivot als grafisches Frontend fĂĽr OLAP-Operationen. JPivot wurde von der Tonbeller AG entwickelt und ist seit 2002 als Open-Source-Projekt auf Sourceforge registriert. JPivot stellt Ergebnisse von MDX-Abfragen als Kreuztabellen oder Diagramme dar. Die MDX-Abfragen mĂĽssen vom Endanwender nicht in der MDX-Syntax formuliert werden.

JPivot beinhaltet einen OLAP-Navigator, um in den Dimensionen eines Würfels zu navigieren und die anzuzeigenden Dimensionselemente und Fakten auszuwählen. In dem Navigator wird auch die Positionierung der ausgewählten Objekte auf der Kreuztabelle vorgenommen. Aus den Konfigurationen im Navigator erstellt JPivot eine MDX-Abfrage. Die mit dem Navigator erstellten MDX-Abfragen können zusätzlich in JPivots MDX-Editor betrachtet und weiterbearbeitet werden.

JPivot: In WĂĽrfeln navigieren und Analysen anzeigen

Die Ergebnisse der Abfragen werden von JPivot in einer interaktiven Kreuztabelle oder wahlweise in einem Graphen dargestellt. In der Kreuztabelle kann der Anwender tiefer in die Detaildaten navigieren und somit die Analyse direkt auf den Ergebnissen der ursprĂĽnglichen Abfrage weiter detaillieren.

Eine erstellte Analyse-Sicht lässt sich auf dem BI-Server speichern und zu einem späteren Zeitpunkt wieder aufrufen. Die Daten werden dann aktualisiert dargestellt.

Das WEKA-Projekt (Waikato Environment for Knowledge Analysis) stellt die Data-Mining-Komponente von Pentaho dar. WEKA wurde 1993 an der Universität von Waikato in Neuseeland als Forschungsprojekt gestartet. Die Zielsetzung war die Implementierung einer Umgebung zur Entwicklung und Beurteilung von Machine-Learning-Algorithmen, die auch in industriellen Applikationen einsetzbar sind.

Die implementierten Algorithmen der aktuellen Version sind zum großen Teil sehr aktuell und werden von einer großen Gemeinschaft von Forschern beigesteuert und gepflegt. Gleichzeitig ist die mit WEKA gelieferte Java-API Grundlage für mehr als 20 zusätzliche Learning-Tools oder Erweiterungen. Dies reicht von "einfachen" Schnittstellen zu der Statistik-Software R (RWEKA) bis zu verteiltem Rechnen mit WEKA. Seit 2006 wird das Projekt durch Pentaho unterstützt und als Bestandteil der Pentaho BI-Suite vermarktet.

WEKA besteht aus einer Reihe von Java-Klassen und ist der Pentaho BI Suite in Form eines Jar-Archives beigefügt. Neben einer Bedienung per Shell-Kommandozeile (Aufruf von Java-Klassen) und Kommunikation über Input- und Outputstreams stellt WEKA einige Benutzeroberflächen zur Verfügung:

  • Explorer: Zur interaktiven Exploration von Daten und der Anwendung von Data-Mining Verfahren.
  • Experimenter: Eine Oberfläche, um verschiedene Lernansätze in Form von Experimenten zu vergleichen und statistisch auszuwerten.
  • Knowledge Flow: Eine Oberfläche, die die gleichen Operationen wie der Explorer unterstĂĽtzt, es allerdings erlaubt, per Drag and Drop Data-Mining-Prozesse in Form von DatenflĂĽssen zu modellieren. Hauptprozessgruppen sind hierbei klassischerweise: Laden und Schreiben von Daten, Visualisierung, Datenvorverarbeitung, ĂĽberwachtes Lernen, unĂĽberwachtes Lernen und Validierung.

WEKA: Data-Mining als Prozess

Im Vergleich zu kommerziellen Produkten wie SAS Enterprise Miner oder SPSS Clementine lässt WEKA funktional kaum Wünsche offen. Im Gegenteil, WEKA liefert mehr Data-Mining-Algorithmen als die kommerzielle Konkurrenz, da hier nicht nur etablierte Verfahren sondern auch Ansätze aus der aktuellen Forschung bereitgestellt werden.

Neben einer Vielzahl von Algorithmen fĂĽr ĂĽberwachtes und unĂĽberwachtes Lernen stellt WEKA zum Beispiel eine Reihe von Metalearning-Verfahren wie Crossvalidation und Bagging zur VerfĂĽgung. Es gibt kaum ein bekanntes Lernverfahren, das nicht in WEKA implementiert worden ist.

Lesen bzw. Schreiben kann WEKA unter anderem CSV-Dateien, das eigene ARFF-Format, das C45-Format und Tabellen aus Datenbanken, die einen JDBC-Treiber bereitstellen. Im Open-Source-Bereich liefert aktuell nur das Project YALE/RapidMiner (wird aktuell durch die Firma Rapid-Eye weiterentwickelt) eine höhere Anzahl von Data-Mining-Algorithmen, was zum Teil dadurch zu begründen ist, dass alle unter WEKA implementierten Algorithmen (Klassen) auch in YALE verwendet werden können.

Was die Bedienungsfreundlichkeit betrifft steht die Software jedoch noch weit hinter der kommerziellen Konkurrenz zurück. Insbesondere im Bereich der Vorverarbeitung von Daten sind proprietäre Produkte in der Handhabung viel mächtiger und transparenter zu bedienen.

Ein anderer Wermutstropfen sind die wenig komfortablen Möglichkeiten zur Weiterverarbeitung von Ausgaben. Zudem zeigen die implementierten Algorithmen im Vergleich zu proprietären Systemen eine schlechtere Performance. So sind bei Benchmarks für einzelne Algorithmen Laufzeitunterschiede mit einem Faktor 2 bis 5 zu beobachten. Dies liegt an den zum Teil weniger optimierten Algorithmen und den generischen Datenstrukturen, die zwar eine einfache Einbettung neuer Data-Mining-Verfahren erlauben, aber eine optimierte Implementierung einzelner Algorithmen verhindern.

In der Regel wird die Anzahl der umgesetzten Algorithmen den unerfahrenen Anwender eher erschlagen. Somit ist die Lernkurve im Vergleich zu kommerziellen Produkten viel steiler. Open Source Data Mining Tools (PDF-Datei) bietet einen aktuellen Vergleich quelloffener Data-Mining-Tools.

Von allen Open-Source-Projekten in der Pentaho-Suite ist WEKA aktuell am wenigsten in die Gesamtarchitektur eingebunden. Der grafisch entwickelte Data-Mining-Prozess muss derzeit mit hohem manuellen Aufwand in einen batchfähigen Prozess übersetzt werden. Bei mittleren Kundenzahlen (unter einer Million) lässt sich die Software jedoch durchaus von einem erfahrenen Data-Miner für Fragestellungen wie zum Beispiel Affinitätsscorings für Produkte oder Produktempfehlungen, Kündigervorhersage oder auch Betrugserkennung einsetzen.