Deutsch   |   English
   
 digg.com  del.icio.us 

Real Time OLAP mit Mondrian

Mondrian ist ein in Java geschriebener Open-Source OLAP Server, der mittels einer XMLA Schnittstelle multidimensionale Anfragen im MDX Format erlaubt. Multidimensionale Cubes werden in Mondrian logisch definiert und auf eine relationale Datenbank als Backend abgebildet. Cubes werden in EXASolution on demand berechnet und für weitere Abfragen in Mondrian zwischengespeichert. Dadurch entfällt die aufwendige Vorberechnung von Cubes und schnelles Real Time OLAP wird in Verbindung mit EXASolution ermöglicht. Die XMLA-Schnittstelle bietet eine standardisierte Anbindung an verschiedene Reporting- und Analysetools.

Im Folgenden wird gezeigt wie ein Cube mit der Mondrian Schema Workbench definiert wird und wie dieser Cube auf dem Mondrian Server über eine XMLA-Schnittstelle publiziert wird. Ein für EXASolution vorkonfiguriertes Mondrian-Paket inklusive Tomcat können Sie hier herunterladen.

MDX-Schnittstelle über Mondrian

Definieren eines Cubes mit Hilfe der Mondrian Schema Workbench

Die Definition einer Multidimensionalen Datenbank bestehend aus dem logischen Modell (Cubes, Hierarchies and Measures) und die Abbildung dieses Modells auf eine relationale Datenbank erfolgt bei Mondrian mit Hilfe eines Schemas, einer Beschreibung in XML.

Der Mondrian Schema Workbench ist ein grafisches Entwicklungswerkzeug für das Erstellen und Validieren eines Schemas. Das Tool überprüft auch, ob die Abbildung auf die relationale Datenbank korrekt ist. Außerdem ermöglicht es über eine einfache Schnittstelle MDX-Queries an ein erstelltes Schema abzusenden.

Laden Sie eine aktuelle Version der Workbench herunter. Außerdem benötigen Sie noch einen EXASolution JDBC-Treiber, welchen Sie im Downloadbereich finden. Weiterhin sollte auf Ihrem Rechner mindestens ein JRE 6 installiert sein. Entpacken Sie die Workbench und kopieren Sie das jdbc14.jar in den Ordner WORKBENCH_HOME/drivers.  

Starten Sie nun den Workbench über das Startskript workbench.bat bzw. workbench.sh und richten Sie eine Verbindung zu EXASolution ein. Öffnen Sie dazu den Verbindungsdialog unter Options->Connection... . Wählen Sie als Connection type "generic database" aus, als Access "Native JDBC", als Custom Connection "jdbc:exa:<connection string>", als Custom Driver Class "com.exasol.jdbc.EXADriver" und den entsprechenden Benutzernamen mit Passwort. Mit dem Test-Button kann die Verbindung zu EXASolution getestet werden.

Öffnen Sie die Datei TPCH1.xml in der Schema Workbench. Dieses Beispiel basiert auf dem relationalen TPC-H Schema (dieses Schema wird für den TPC-H Benchmark verwendet) , welches Sie in unserem Demo-System finden können. Der Schema-Editor ist ein zweigeteiltes Fenster. Im linken Bereich wird eine Baumstruktur des Schemas anzeigt und im rechten Bereich die zugehörigen Attribute. Über eine Toolbar können verschiedene Objekte wie ein neuer Cube, Dimension usw. angelegt werden.

Das vordefinierte Schema besteht aus zwei Cubes: Q1 und Q2. Ein Cube besteht aus einer Faktentabelle, mehreren Dimensionen und Measures. Zum Beispiel basiert der Cube Q2 auf der Faktentabelle ORDERS und einer Dimension Customer, die als Hierarchie die Unterteilung in Regionen und Nationen definiert. Die Dimensionstabelle für diese Hierarchie ist ein verschachtelter Join (ein Standard-Mondrian-Konstrukt, siehe Screenshot) über die Tabellen CUSTOMER,NATION und REGION. Die Dimensionstabelle wird über den entsprechenden Fremdschlüssel C_CUSTKEY mit der Faktentabelle ORDERS verknüpft.  Eine für OLAP typische Zeitdimension bestehend aus Jahr, Quartal, Monat können wir über eine temporäre View auf die Spalte O_ORDERDATE der Tabelle ORDER definieren:

  1. WITH ORDERDATE (FULLDATE,M,Q,Y) AS (
  2.         SELECT
  3.             O_ORDERDATE,
  4.             TO_CHAR(O_ORDERDATE, 'MM') ,
  5.             TO_CHAR(O_ORDERDATE, 'Q'),
  6.             TO_CHAR(O_ORDERDATE, 'YYYY')
  7.         FROM
  8.             TPC.ORDERS
  9.     )
  10. SELECT DISTINCT * FROM ORDERDATE;

Basierend auf dieser View werden die Hierarchien für Year, Quarter und Month definiert. Der Cube Q2 enthält weiterhin das Measure 'Sum TotalPrice'. Dieses Measure wird definiert über den Aggregator sum auf der Spalte O_TOTALPRICE der Faktentabelle ORDERS. 

Die Workbench validiert automatisch die verwendeten Spalten und Tabellen des Schemas auf die physische Datenbank. Dadurch ist gewährleistet, dass die Abbildung auch im Produktiveinsatz korrekt ist. MDX-Queries können direkt über File->New->MDX-Query über ein einfaches Textfeld an das definierte Schema abgesetzt werden. Wir verwendet zum testen des Cubes folgende MDX-Query, welche für die Jahre 1992, 1993, 1994 und die Regionen AFRICA, ASIA und EUROPE die 'Sum TotalPrice' berechnet:

  1. SELECT {[Orderdate].[1992],
  2. [Orderdate].[1993],
  3. [Orderdate].[1994]} ON COLUMNS,
  4. {[Customer].[AFRICA                   ],
  5. [Customer].[ASIA                     ],
  6. [Customer].[EUROPE                   ]}
  7. ON ROWS
  8. FROM [Q2]
  9. WHERE [Measures].[SUM TotalPrice]

Zusätzliche Informationen zur Definition eines Mondrian Schemas finden Sie auf den Dokumentationsseiten von Mondrian.

Publizieren des Cubes und Einrichtung der XMLA-Schnittstelle

Falls Sie das vorkonfigurierte Tomcat/Mondrian-Paket noch nicht heruntergeladen haben, laden Sie es bitte herunter und entpacken Sie es. Dieses Paket enthält unter TOMCAT_HOME/webapps/mondrian/WEB-INF/queries das Schema TPCH1.xml, welches wir vorhin mit Hilfe der Workbench erstellt haben.

Für die Einrichtung der XMLA-Schnittstelle passen wir die Datei TOMCAT_HOME/webapps/mondrian/WEB-INF/DataSources.xml an.

In dieser Datei wird der Name der DataSource 'Provider=Mondrian;DataSource=TPCH', die URL für die XMLA Schnittstelle 'http://localhost:8080/mondrian/xmla', in dem Element 'DataSourceInfo' die JDBC-Verbindung zur EXASolution sowie der Catalog TPCH mit der URI auf die Schema-Definition TPCH1.xml definiert. Passen Sie in der DataSourceInfo den Connection-String zur EXASolution sowie Benuter und Passwort an. Die vollständige DataSources.xml sieht folgendermaßen aus:

  1. <?xml version="1.0"?>
  2.  
  3. <DataSources>
  4.  
  5.     <DataSource>
  6.    
  7.         <DataSourceName>Provider=Mondrian;DataSource=TPCH;</DataSourceName>
  8.  
  9.         <DataSourceDescription>TPCH</DataSourceDescription>
  10.  
  11.         <URL>http://localhost:8080/mondrian/xmla</URL>
  12.        
  13.         <DataSourceInfo>Provider=mondrian;
  14.             Jdbc=jdbc:exa:212.204.74.3..8:8563;
  15.             JdbcUser=test;JdbcPassword=password;
  16.             JdbcDrivers=com.exasol.jdbc.EXADriver;
  17.             Catalog=/WEB-INF/queries/TPCH1.xml 
  18.         </DataSourceInfo>
  19.  
  20.         <ProviderName>Mondrian</ProviderName>
  21.  
  22.         <ProviderType>MDP</ProviderType>
  23.  
  24.         <AuthenticationMode>Unauthenticated</AuthenticationMode>
  25.  
  26.         <Catalogs>
  27.             <Catalog name="TPCH">
  28.                 <Definition>/WEB-INF/queries/TPCH1.xml</Definition>
  29.             </Catalog>
  30.         </Catalogs>
  31.  
  32.     </DataSource>
  33.  
  34. </DataSources>

Testen der XMLA-Schnittstelle mit JPivot

Die XMLA-Schnittstelle kann nun mit der OLAP-Webanwendung JPivot getestet werden. JPivot wird standardmäßig mit Mondrian ausgeliefert. Vor dem Test können sie die Datei TOMCAT_HOME/webapps/mondrian/WEB-INF/queries/xmla.jsp anpassen, um zum Beispiel die Beispiel-MDX-Query, die xmla-URL oder den verwendeten Catalog zu ändern. Die vollständige xmla.jsp sieht folgendermaßen aus:

  1. <%@ page session="true" pageEncoding="UTF-8" contentType="text/html; charset=ISO-8859-1" %>
  2. <%@ taglib uri="http://www.tonbeller.com/jpivot" prefix="jp" %>
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
  4.  
  5.  
  6. <!--
  7.    * Change uri attribute to your deployment of this webapp.
  8.    * The dataSource attribute is necessary for Mondrian's XMLA.
  9. -->
  10. <jp:xmlaQuery id="query01"
  11.    uri="http://localhost:8080/mondrian/xmla"
  12.    dataSource="Provider=Mondrian;DataSource=TPCH;"
  13.     catalog="TPCH">
  14. select {[Orderdate].[1992],[Orderdate].[1993],[Orderdate].[1994]} ON COLUMNS,
  15.                 {[Customer].[AFRICA                   ],
  16.                 [Customer].[ASIA                     ],
  17.                 [Customer].[EUROPE                   ]}
  18.                 ON ROWS from [Q2] where [Measures].[Sum TotalPrice]
  19. </jp:xmlaQuery>
  20.  
  21. <c:set var="title01" scope="session">Accessing Mondrian powered by EXASolution by XMLA</c:set>

Setzen Sie die Umgebungsvariable JAVA_HOME auf den entsprechenden Pfad zu einem installierten JRE 6, z.B.: SET JAVA_HOME=C:\jre16 unter Windows bzw. EXPORT JAVA_HOME=/usr/bin/jre16 unter Linux. Starten Sie den Tomcat-Applicationserver mit dem Skript TOMCAT_HOME/bin/startup.sh bzw. startup.bat und gehen Sie mit einem Webbrowser auf localhost/mondrian/testpage.jsp, um die xmla-Schnittstelle über JPivot zu testen. Das Ergebnis unserer Beispiel-MDX-Query wird in Tabellenform dargestellt (siehe Screenshot). 

Dadurch haben wir sichergestellt, dass die xmla-Schnittstelle korrekt funktioniert. Im nächsten Schritt können Sie ihr Reporting- bzw. Analysetool an die xmla-Schnittstelle anbinden. Wenn Sie sich mit der xmla-Schnittstelle unter 'http://localhost:8080/mondrian/xmla' verbinden, können Sie Ihr OLAP-Tool mit EXASolution als Backend verwenden und von der Performancesteigerung und Flexibilität profitieren. Ihre Cubes werden on the fly berechnet.

Sie kommen nicht weiter?
Von den Experten lernen:
Referenzen
  • AHOOLY
  • COOP
  • „Mit EXASolution sind wir für zukünftiges Datenwachstum bestens gerüstet. Dadurch, dass wir jetzt Geodaten verarbeiten, sprich die Dimension des Raumbezugs mit auswerten können, bieten wir unseren Kunden ganz neue Analysemöglichkeiten und noch umfassendere Marktübersichten. Wir sind sehr zufrieden mit der neuen Lösung, können flexibel auf zukünftige Anforderungen reagieren und trotzdem unsere Total Cost of Ownership reduzieren, da der so gewählte BI-Stack unsere Vision eines „Lean-BI“ in vollem Umfang unsterstützt.“

    Guido Niermann, IT-Leiter, Dataforce GmbH

    Dataforce
  • "Durch die Einbindung von EXASOL können wir unseren Kunden ein ganz neues Erlebnis bezüglich der explorativen Datenanalyse bieten… Neben der Technologie waren wir vor allem mit der Pre-Sales Beratung und dem Support während der Integration äußerst zufrieden."

     Martin Heink
    Geschäftsführer und Inhaber, econda GmbH 

    Econda
  • "Entscheidend für die IMS Health war insbesondere, dass wir uns durch einen sehr schnell aufgesetzten Proof of Concept von der Leistungsfähigkeit von EXASolution direkt überzeugen konnten."

     Michael Kempke
    Director Data Collection Global Operations, IMS Health GmbH & Co. OHG

    IMS
  • "Mit der innovativen Datenbank von EXASOL können wir komplexe Berechnungen genauer und umfangreicher durchführen. Das gibt uns einen signifikanten Technologievorsprung gegenüber der Konkurrenz."

     Tobias Kiessling
    CTO, intelliAd 

    Intelliad
  • "Die durchgängig hohe Leistung und die Möglichkeit, Echtzeitanalysen fahren zu können, waren für uns ausschlaggebend bei der Wahl von EXASolution."

     Tobias Kroha, Geschäftsführer der für das m-pathy-Projekt verantwortlichen seto GmbH

    m-pathy
  • Media Control
  • Olympus
  • "Wir haben uns für EXASolution entschieden, da die Hochleistungsdatenbank mit den zu erwartenden großen Datenmengen sehr gut umgehen kann und optimale Flexibilität bietet."

     Dr. Michael Röbbecke
    (ehem.) Geschäftsführer, RatePAY 

    RatePAY
  • "Mit EXASolution können wir unsere Geschäftsprozesse deutlich optimieren." 

     Gerhard Zapf
    Projektleiter, Semikron 

    Semikron
  • "Ein zuverlässiger und schneller Support, eine bessere Kundenbetreuung sowie eine bewiesene Fachkompetenz…"

     David Hodge
    IT Director, Sony Music Entertainment Germany 

    Sony Music
  • SOQUERO
  • SponsorPay
  • Stayfriends
  • "Die Datenbank von EXASOL ist Technik made in Germany, auf die wir uns langfristig verlassen können. Da sie bei steigendem Datenvolumen selbstständig skaliert und auch physisch beliebig erweitert werden kann, wächst unsere Datenbank mit unserem Unternehmen, und wir können auch in Zukunft flexibel und schnell auf neue Anforderungen reagieren."

     Heinrich Zetlmayer
    Geschäftsführer, Turtle Entertainment 

    Turtle Entertainment
  • United Internet Dialog
  • "Mit EXASolution haben wir eine Lösung erworben, die unsere hohen Leistungsansprüche komplexer Analysen bei steigenden Datenmengen für unsere Kunden optimal erfüllt." 

     Christian Sauer
    Geschäftsführer, Webtrekk GmbH 

    Webtrekk
  • "Wir haben uns nach einem ausgiebigen Benchmark-Test für die Lösung von EXASOL entschieden. Die hohe Performance des Systems, das Preis-/Leistungs-Verhältnis und der Service haben uns vollauf überzeugt"

    Dr. Ulrich Fricke
    Leiter Business Intelligence, XING AG 

    Xing
  • "Neben Wirtschaftlichkeit, Geschwindigkeit und hoher Leistungsfähigkeit war Flexibilität eines der entscheidenden Kriterien bei der Wahl unserer Datenbank… Die neue Datenbank bietet uns diese Skalierbarkeit bei reduzierten Total Cost of Ownership. So können wir auch in Zukunft immer die optimale Analyseleistung für unsere Kunden erbringen…"

     Sebastian Hoop
    Head of Operations, xplosion interactive gmbh 

    Xplosion
  • Zalando