Anfragen gegen das Data-Warehouse Sebastian Kuhs 12.01.2012 Zusammenfassung In dieser Arbeit soll auf die unterschiedlichen Möglichkeiten eingegangen werden, welche zur Verfügung stehen, um Daten aus einem DataWarehouse zu beziehen. Dazu zählen zum einem interaktive Varianten, mit denen ein eher intuitiver Umgang mit dem Data-Warehouse realisiert werden soll. Zum anderen existieren Sprachen und Spracherweiterungen, die den Umgang mit einem Data-Warehouse erleichtern sollen. Für beide Möglichkeiten soll diese Arbeit einen kurzen Überblick geben. 1 Inhaltsverzeichnis 1 Benutzergruppen 3 2 Interaktives OLAP 2.1 Beispieldatenwürfel . . . . . . . 2.1.1 Zeit . . . . . . . . . . . 2.1.2 Region . . . . . . . . . . 2.1.3 Produkte . . . . . . . . 2.2 Interaktive OLAP Funktionen . 2.2.1 Rotation/ Pivotisierung 2.2.2 Slice . . . . . . . . . . . 2.2.3 Dice . . . . . . . . . . . 2.2.4 Drill-down . . . . . . . . 2.2.5 Roll-up . . . . . . . . . 2.2.6 Split & Merge . . . . . . 2.2.7 Drill-across . . . . . . . 2.2.8 Drill-through . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 4 5 5 5 6 6 6 7 7 8 3 MDX 3.1 Aufbau . . . . . . . . . . . . . . . . . . . . . 3.1.1 Achsendimension . . . . . . . . . . . . 3.1.2 Würfelspezifikation . . . . . . . . . . . 3.1.3 Restriktion . . . . . . . . . . . . . . . 3.2 Mengenausdrücke . . . . . . . . . . . . . . . . 3.2.1 Aufzählung . . . . . . . . . . . . . . . 3.2.2 Elementausdrücke . . . . . . . . . . . 3.2.3 Funktionale Erzeugung von Mengen . 3.2.4 Schachtelung von Mengen . . . . . . . 3.2.5 Methoden für dimensionale Schemata 3.3 Spezielle Funktionen und Filter . . . . . . . . 3.4 Zeitreihen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9 10 10 10 10 11 11 11 12 12 12 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 MDX Alternativen 14 4.1 XML Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2 Red Brick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5 Zusammenfassung 15 2 1 Benutzergruppen Die Benutzer eines Data-Warehouse kann man im Wesentlichen in zwei Gruppen einteilen. Zum einem gibt es einen Personenkreis, welcher lediglich die Daten des Data-Warehouse benötigt, um auf deren Grundlage Entscheidungen zu treffen. Zu diesen Personen gehören zum Beispiel Manager, Analysten oder Berater. Diese Gruppe benötigt interaktive Tools, die sie bei der Entscheidungsfindung unterstützen. Diese Tools sollten möglichst intuitiv zu bedienen sein und am besten keine oder nur sehr wenige Kenntnisse in Data-Warehouse-Sprachen erfordern. Aus diesem Grund existieren interaktive OLAP-Funktionen, auf die im zweiten Kapitel dieser Ausarbeitung näher eingegangen werden soll. Die zweite Nutzergruppe stellen die Designer und Programmierer dar, welche zum einen die interaktiven Tools entwickeln als auch das Data-Warehouse an sich administrieren. Diese müssen von Seiten des Data-Warehouse mit entsprechenden Entwicklungstools und multidimensionalen Abfragesprachen unterstützt werden. Diese Abfragesprachen können wie im Fall von MDX Neuentwicklungen auf Basis bekannter Sprachen, hier SQL, oder Spracherweiterungen sein, welche die Multidimensionalität der Abfragen gewährleisten können. 2 Interaktives OLAP Unter interaktivem OLAP versteht man die Interaktion des Endanwenders mit einem OLAP-Programm, durch das die Darstellung und der Umfang der dargestellten Daten manipuliert werden kann. Dabei liegt ein besonderer Wert auf der multidimensionalen Navigation durch die Daten des Data-Warehouse. Die Datenanalyse mit einem OLAP-Werkzeug ist ein dynamischer ” Prozess, bei dem der Anwender mit Hilfe von multidimensionlen Operatoren durch die multidimensionale Datenstruktur navigiert.[BG01]“ Bauer Günzel Die nachfolgenden Seiten sollen einen Überblick über die geläufigsten interaktiven OLAP-Funktionen bieten, wobei es vom jeweiligen Hersteller abhängt, ob jede Funktion implementiert wird, oder ob es kleinere Abweichungen bei den Implementierungen gibt. 2.1 Beispieldatenwürfel Um das Verständnis der nachfolgenden Kapitel zu erleichtern, soll an dieser Stelle ein Datenwürfel eingeführt werden, an dessen Beispiel die nachfolgenden Funktionen erklärt werden. Aus Gründen der Übersichtlichkeit besteht dieser Würfel lediglich aus drei Dimensionen, in der Realität kann diese Zahl natürlich wesentlich höher sein. Als Dimensionen dienen in diesem Beispiel Zeit, Region und Produkt, welche nachfolgend näher erläutert werden sollen. 3 2.1.1 Zeit Die Dimension der Zeit kann man sich als graphentheoretischen Baum vorstellen, bei dem die Wurzel den Namen der abgebildetetn Dimension trägt. Die Wurzel Zeit” bildet somit den Einstiegspunkt für alle Zugriffe auf die zeitli” che Dimension. Die erste Kindebene repräsentiert in diesem Beispiel die zur Auswahl stehenden Jahre. Die Kinder der Jahre bilden die Monate und deren Kinder stellen wiederum die Tage dar. Somit ist es möglich, ausgehend von einem Jahr bis zu den einzelnen Tagen des Jahres hinab zu zoomen”. Natürlich ” besteht zusätzlich die Möglichkeit weitere Ebenen einzuführen, wie zum Beispiel Wochen” oder Stunden für die einzelnen Tage. Allerdings sollen diese drei ” Kindebenen für das gewählte Beispiel genügen. 2.1.2 Region Unter der Region versteht man eine geografisches Gebiet, welches sich wiederum als Baumstruktur präsentieren lässt. Die oberste Kindebene wird in diesem Beispiel von den einzelnen Staaten gebildet, mit den dazugehörigen Bundesländern als Kinder. Die nachfolgenden Ebenen werden von den Landkreisen und Städten gebildet. 2.1.3 Produkte Auch die Produkte lassen sich in mehrere Produktsparten aufgliedern, welche sich wiederum aus einzelnen Produkttypen zusammensetzen. Insgesamt könnte man sich die drei Dimensionen als Würfel wie in Abb. 1 gezeigt vorstellen. Abbildung 1: Dimensionswürfel 4 2.2 Interaktive OLAP Funktionen Nun folgen einige der verbreiteteren OLAP-Funktionen bezogen auf das obige Beispiel. Für weiterführende Informationen kann auf die beiden Bücher Data ” Warehouse Systeme: Architektur, Entwicklung, Anwendung” [BG02] und Da” tenbanktechnologien für Datawarehouse-Systeme” [Le01] verwiesen werden. 2.2.1 Rotation/ Pivotisierung Die Rotation stellt eine der naheliegensten Funktionen in Bezug auf einen Datenwürfel dar. Wie bei einem realen Würfel realisiert sie die Rotation des Würfels entlang der Dimensionsachsen und ermöglicht so eine Änderung der Ansicht der Daten. Der Umfang der Daten bleibt bei dieser Operation jedoch unangetastet. Damit ist es möglich einen anderen Blickwinkel auf die Daten zu gewinnen, da der Würfel in jede Richtung gedreht und gekippt werden kann. 2.2.2 Slice Bei dieser Funktion handelt es sich um eine die Daten einschränkende Operation. Basierend auf einem bestehenden Datenwürfel wird eine Dimension in ihrem ausgewählten Umfang eingegrenzt. Dadurch wird sozusagen eine Datenscheibe” ” aus dem Datenwürfel ausgewählt. Im Falle der Dimension Zeit könnte dies zum Beispiel die Einschränkung auf ein bestimmtes Jahr sein. Dies wird in Abbildung 2 gezeigt, wo symbolisch die zeitliche Dimension auf einen bestimmten Intervall eingeschränkt wird und für die betrachteten Daten nur noch der gelb markierte Ausschnitt relevant ist. Abbildung 2: Slice auf Zeit 5 2.2.3 Dice Dice stellt eine stark zu Slice verwandte Operation dar, da in diesem Fall eine Einschränkung (Slice) aller Dimensionen stattfindet. Somit wird keine Da” tenscheibe” mehr ausgewählt, sondern vielmehr ein kleinerer Teildatenwürfel. Abbildung 3 zeigt ein solches Beispiel, bei dem sowohl die Zeit, als auch die Region und die Produkte einem Slice unterzogen wurde und nur noch ein kleinerer Teildatenwürfel übrig bleibt. Abbildung 3: Dice 2.2.4 Drill-down Hat man nun einen durch Dice entstandenden Teildatenwürfel, kann es sinnvoll sein, die Auflösung des Würfels zu erhöhen. Dies realisiert die Operation Drill-down. Bei dieser Funktion bleibt der ausgewählte Rahmen, der die Daten einschränkt, erhalten, jedoch werden Daten aus einer tiefer liegenden Hierarchieebene dargestellt. Im aktuellen Beispiel könnte dies bedeuten, dass man die zeitliche Dimension auf das Jahr 2008 eingeschränkt hat und nun nicht mehr nur die Daten bezogen auf ein bestimmtes Jahr dargestellt haben möchte, sondern vielmehr in Abhängigkeit zu den einzelnen Monaten des Jahres 2008. Somit entspricht diese Funktion einem Hineinzoomen” in die ausgewählten Daten. ” 2.2.5 Roll-up Roll-up stellt die inverse Funktion zu Drill-down dar. Sie verringert sozusagen die Auflösung, mit der man die ausgewählten Daten betrachtet. Wichtig hierbei ist jedoch, dass dabei der Umfang der ausgewählten Daten durchaus geändert werden kann. Wenn man zum Beispiel nur die Monate Januar bis Juli des Jahres 2008 ausgewählt hätte und nun einen Roll-up auf das Jahr 2008 ausführen würde, dann werden die restlichen Monate des Jahres 2008 hinzugenommen. 6 Dies liegt daran, dass die Hierarchieebenen der Zeit keine Teiljahre zulassen, sondern als Zeitabschnitt Jahr” nur Intervalle zugelassen sind, die mit einem ” Januar beginnen und mit dem Dezember des selben Jahres enden. Abbildung 4 zeigt den Zusammenhang von Drill-down und Roll-up, die in dem gezeigten Beispiel auf alle Dimensionen durchgeführt wurden. Abbildung 4: Drill-down & Roll-up 2.2.6 Split & Merge Unter Split versteht man das Hinzufügen einer Dimension und unter Merge das Entfernen einer Dimension aus dem betrachtetem Datenwürfel. Somit ist es möglich, die Dimensionalität der Ergebniswürfels zu erhöhen oder zu verringern. 2.2.7 Drill-across Bei einem Drill-across werden die Daten des Würfels ausgetauscht, während die Dimensionen erhalten bleiben. So ist es zum Beispiel möglich, sich zunächst einen Datenwürfel mit den Verkaufszahlen anzeigen zu lassen und auf diesem einige Slice oder Dice Operationen auszuführen. Anschließend kann man einen Drill-across auf die ausgewählten Bereiche ausführen lassen um die Verkaufszahlen gegen die Verkaufspreise auszutauschen. Abbildung 5 zeigt einen solchen Drill-across. 7 Abbildung 5: Drill-across 2.2.8 Drill-through Der Drill-through ist ein gutes Beispiel um das Auseinanderlaufen bei der Umsetzung der OLAP Funktionen bei den Produkten der einzelnen Hersteller zu zeigen. So besagt die Theorie, dass es sich bei einem Drill-through um einen Drill-down handelt, bei dem zusätzlich noch die zugrunde liegende Datenquelle bzw. auch das Datenschema gewechselt werden kann.[Le02] Somit wäre es möglich, beim Hineinzoomen” in die Daten vom multidimensionalen in das ” relationale Datenbankmodell zu wechseln. Dadurch könnten für die einzelnen Hierarchieebenen die unterschiedlichsten Datenquellen benutzt werden. Allerdings gibt es Anwendungen, die unter einem Drill-through etwas vollkommen anderes verstehen. Hier wird diese Operation vielmehr mit dem Begriff des OLAP-Joins” verbunden[MZ01]. Dabei wird aus zwei oder mehr Datenwürfeln ” mit Hilfe einer mathematischen Operation ein neuer Datenwürfel generiert. In dem hier gewählten Beispiel könnte man zum Beispiel aus einem Datenwürfel mit den Verkaufszahlen und einem weiteren Würfel mit den einzelnen Verkaufspreisen einen neuen Datenwürfel berechnen, der den Umsatz enthält. Dieser Fall ist in Abbildung 6 gezeigt. Eine mögliche Begründung für diese Unterschiede könnte zum Beispiel sein, dass es sich bei den OLAP-Funktionen eigentlich um Interaktionen des Endanwenders mit einem Analyseprogramm handelt. Bei der Analyse sollte ein Wechsel der Datenquellen eigentlich vor dem Benutzer verborgen bleiben, damit dieser sich lediglich auf die Interpretation der Daten konzentrieren kann. Eventuell war dies der Grund dafür, dass der Wechsel der Datenquelle automatisiert geschieht und nicht durch eine Interaktion mit dem Benutzer und diese Funktion deshalb eher als eine Möglichkeit des Joins genutzt wird, was durchaus auch über unterschiedliche Datenquellen geschehen kann. 8 Abbildung 6: Drill-through 3 MDX Um die obigen OLAP-Funktionen umsetzen zu können, bedarf es einer Datenbanksprache, die mit der Multidimensionalität der Abfragen umgehen kann. Ein Vertreter dieser Sprachen kommt aus den Hause Microsoft. Der Name dieser Sprache ist MultiDimensional eXpressions” oder besser bekannt unter MDX. ” MDX wurde im Wesentlichen von Mosha Pasumansky entwickelt[FT01]. Am häufigsten wird diese Sprache in der OLE DB (Object Linking and Embedding Database) von Microsoft eingesetzt. Da MDX aber auch für diverse Programmiersprachen wie C++, Visual Basic oder ActiveX verfügbar ist, kann es auch in Programmen bzw. Betriebssystemen verwendet werden. Im Aufbau orientiert sich MDX sehr an der SQL-Norm, allerdings ohne einen eigenen Standard zu besitzen[Le03]. 3.1 Aufbau Eine MDX-Anfrage gliedert sich im Wesentlichen in die drei Abschnitte Achsendimension, Würfelspezifikation und Restriktion, welche am nachfolgenden MDX-Beispiel” erläutert werden. ” SELECT {Thüringen, Gera, [Saale Holzland Kreis]} ON COLUMNS, {Januar, Februar, Maerz, April.CHILDREN} ON ROWS FROM SalesCube WHERE {Measures.Verkäufe, Zeit.[2011], Produkte.[Alle Produkte]} MDX-Beispiel 9 3.1.1 Achsendimension Mit der Achsendimension wird der Select” Teil der Anfrage bezeichnet. Hier ” wird der Ergebnisraum beschrieben. Dazu gehören die anzuzeigenden Dimensionen und ihre Platzierung im Ergebniswürfel. Das obige Beispiel (Abb.7) definiert einen zweidimensionalen Datenwürfel, bei dem die Dimension Region in den Zeilen und die Zeit in den Spalten abgebildet wird. Mit Hilfe weiterer Klassifikatoren für die Dimensionen kann man weitere Ebenen/Dimensionen im Ergebniswürfel definieren. Beispiele dafür sind: 1. ON COLUMNS 2. ON ROWS 3. ON PAGES 4. ON SECTIONS 5. ON CHAPTERS Mit diesen Parametern kann definiert werden, in welche Dimension des Datenwürfels die Daten abgebildet werden sollen. Die fünf genannten Parameter stellen die Namen der ersten fünf Wüfeldimensionen dar. MDX unterstützt dabei bis zu 128 Würfeldimensionen, welche ab der sechsten Dimension nur noch mit Ziffern benannt werden[MS02]. 3.1.2 Würfelspezifikation Der From”-Abschnitt der Anfrage stellt die Würfelspezifikation dar. In dieser ” werden die verwendeten Datenwürfel angegeben. Wichtig hierbei ist, dass, bei Verwendung mehrerer Datenwürfel, diese zumindest immer in einer Dimension übereinstimmen müssen, da sie sonst nicht miteinander kombiniert werden können. 3.1.3 Restriktion Der letzte Abschnitt der Anfrage, Restriktion genannt, beinhaltet die Einschränkungen der Dimensionen der verwendeten Datenwürfel. Dieser Abschnitt korreliert somit mit dem Slice-Operator aus den interaktiven OLAP-Funktionen. Zu beachten ist hierbei, dass MDX an dieser Stelle von SQL abweicht, da Filter, die über die einfache Auswahl aus den Hierarchieebenen hinausgehen, in den Achsendimensionen untergebracht sind (siehe Abschnitt 3.3). 3.2 Mengenausdrücke Ein wichtiger Bestandteil von MDX ist der Umgang mit Mengenausdrücken. Nachfolgend wird eine Auswahl der häufigsten Mengenausdrücke beschrieben. 10 3.2.1 Aufzählung Die Aufzählung stellt eine der einfachsten Mengenausdrücke von MDX dar. Sie wird durch {” und }” gekennzeichnet, während die Elemente im Inneren der ” ” geschweiften Klammern durch Kommas getrennt werden. Sollte es erforderlich sein, Leerzeichen oder Zahlen zu verwenden, so werden diese mit eckigen Klammern umschlossen, wie nachfolgendes Beispiel zeigt. {Deutschland, Thüringen, Sachsen, Gera, [Saale Holzland Kreis]} Wie man weiterhin erkennen kann, ist es nicht notwendig, dass die Elemente in der Menge aus derselben Klassifikationsebene stammen müssen. So ist es durchaus möglich, eine Teilmenge der Dimension Region anzugeben, die zunächst einen Staat, und anschließend ein Bundesland oder Landkreis enthält. Dabei spielt es keine Rolle, dass innerhalb der Menge Teilmengenbeziehungen auftreten können. 3.2.2 Elementausdrücke Eine weitere Art der Mengenausdrücken stellen die Elementausdrücke dar. Mit diesen ist es möglich, die Verwandschaft” innerhalb der Klassifikationsebene ” anzusprechen. So liefert der Ausdruck Zeit.[2008].CHILDREN alle Monate des Jahres 2008. Möglich sind dabei unter anderem folgende Ausdrücke: • Zeit.Jahr.CHILDREN • Januar.PARENT • Zeit.Jahre.MEMBERS • Produkte.ALL Dabei liefert Zeit.Jahr.CHILDREN” alle Monate des Jahres, während Janu” ” ar.PARENT” das übergeordnete Jahr ausgibt. Zeit.Jahre.MEMBERS” listet ” alle verfügbaren Jahre auf und Produkte.ALL” alle Produkte ” 3.2.3 Funktionale Erzeugung von Mengen Mittels der funktionalen Erzeugung von Mengen können durch die Verwendung von Funktionen bestimmte Mengen generiert werden. So ist es zum Beispiel mit dem Ausdruck DESCENDATS(Deutschland,Städte)möglich, sich alle Städte Deutschlands anzeigen zu lassen. Somit kann man ganze Hierarchieebenen überspringen und ist nicht gezwungen mit umständlichen Verschachtelungen von Mengen zu arbeiten. Des Weiteren ist es möglich, die Funktionen ineinander zu verwenden. So kann man sich zum Beispiel mit GENERATE({Sachsen, Thüringen}, DESCEN DATS(Region .CURRENT, Städte)) zunächst eine Region definieren, von der man anschließend alle in dieser Region befindlichen Städte ausgeben lassen kann. In diesem Beispiel wären das alle Städte von Thüringen und Sachsen. 11 3.2.4 Schachtelung von Mengen Um einen höherdimensionalen Ergebnisraum auf eine zweidimensionale Tabelle abbilden zu können, steht die Schachtelung von Mengen zur Verfügung. Damit ist es sozusagen möglich, Tabellen innerhalb von Tabellen zu speichern, wie folgendes Beispiel (Abb. 7) zeigt. SELECT CROSSJOIN({Thüringen, Gera, [Saale Holzland Kreis]} {Technik, Kleidung}) ON COLUMNS, {Januar, Februar, Maerz, April.CHILDREN} ON ROWS FROM SalesCube WHERE {Measures.Verkäufe, Zeit.[2011], Produkte.[Alle Produkte]} Abbildung 7: Schachtelung von Mengen Hierbei werden für bestimmte Zeiträume die Verkaufszahlen für bestimmte Produkte, unterteilt nach Regionen, dargestellt. 3.2.5 Methoden für dimensionale Schemata Die letzten hier genannten Mengenausdrücke generieren im eigentlichem Sinne keine Mengen, sondern liefern Schemainformationen, mit denen man wiederum Mengen generieren kann. So liefert Zeit.Level die Hierarchiebene Jahr, während Zeit.Levels(2) die übernächste Ebene, in diesem Fall Monate, liefern würde. 3.3 Spezielle Funktionen und Filter Wie bereits bei den Restriktionen angedeutet, gibt es weitere Möglichkeiten, den Ergebnisraum einzuschränken. Dies geschieht durch spezielle Funktionen und Filter, welche im Select” Bereich definiert werden. Dabei gibt es zum ” Beispiel Funktionen, die häufige Abfragen zu einem Aufruf zusammenfassen. So liefert TOPCOUNT(Thüringen.CHILDREN, 3, Measures.Umsätze) zum Beispiel nur die drei umsatzstärksten Landkreise Thüringens. Somit vereint dieser 12 Operator eine Sortieroperation mit einer Teilauswahl des Ergebnisses. Weitere Beispiele wären der TOPPERCENT oder der TOPSUM Operator (weiterführende Informationen dazu befinden sich in der Funktionsreferenz-MDX von Micrososft [MS03]). Es ist allerdings auch möglich, Bedingungen bzw. Filter für die Auswahl zu definieren. So liefert FILTER(Thüringen,([2010],Umsätze)>([2011],Umsätze))) alle Landkreise Thüringens, deren Umsätze 2010 höher waren als 2011. Auffallend ist jedoch, dass diese Einschränkungen, für eher SQL-untypisch, im Select”-Abschnitt untergebracht sind. Eine mögliche Begründung hierfür wäre ” eine einfach gehaltene Schnittstelle zu den einzelnen Datenquellen. Wenn zum Beispiel die Datenquelle nicht in der Lage ist, die zu übertragenden Daten vorab zu filtern, dann müsste bei jeder Abfrage erst überprüft werden, welche Filtermöglichkeiten bestehen. Falls bei dieser Überprüfung ein Konflikt zwischen der Abfrage und den Filteroptionen der Datenquelle festgestellt wird, müsste die Abfrage entsprechend angepasst werden. Wenn nun aber die eigentliche Auswertung der Daten erst bei der Generierung des Ergebnisraumes stattfindet und nicht schon bei der Beschaffung der Daten, muss die entsprechende Analysefunktion nicht von jeder einzelnen Datenquelle umgesetzt werden können. Des Weiteren reicht es aus, die multidimensionalen Filter zentral in der MDX-Abfrage zu definieren und zum Beispiel die relationalen Datenbanken davon unberührt zu lassen, da auch diese nun nicht mehr in der Lage sein müssen, jeden Filter umzusetzen. 3.4 Zeitreihen Ein besonderes Augenmerk richtet MDX auf die Auswertung von Zeitreihen. Es wäre natürlich möglich, Zeitreihen als einfache Mengenausdrücke mit den oben beschriebenen Funktionen zu definieren. Da im OLAP-Betrieb eine Analyse über die Zeit eine häufige Anwendung ist, stellt MDX eine Reihe von Spezialfunktionen zur Verfügung. Diese Funktionen sollen die Navigation durch die Zeit erleichtern, indem sie durch Parameterübergabe Zeitmengen erzeugen können. Als Beispiel können folgende Funktionen angegeben werden: • PERIODSTODATE(Jahr, [10-02-2011]) • LASTPERIODS(3, [Dez-2011]) • PARALLEPERIOD(Jahre, 2, [Feb-2011]) So liefert PERIODSTODATE(Jahr, [10-02-2011])” einen zeitlichen Intervall, ” auch Periode genannt, im Zeitraum vom 01.01.2011 bis 10.02.2011. LASTPE” RIODS(3, [Dez-2011])” wiederum präsentiert die drei Vorgängermonate des Dezembers 2011. Mit Hilfe von PARALLEPERIOD(Jahre, 2, [Feb-2011])” kann ” der Februar des Jahres 2009 betrachtet werden. Dabei sind die Funktionen soweit optimiert, dass sie anhand der Parameterstruktur selbstständig die Hierarchieebene für die Ausgabe erkennen. Da in PERIODSTODATE ein Tag als Zeitangabe gewählt wurde, besteht die Ergebnismenge auch aus Tagen. Bei LASTPERIODS wurde lediglich ein Monat angegeben, sodass hier die Monate als Hierarchieebene für die Ausgabe gewählt wurden. 13 Zusammenfassend kann man sagen, dass Microsoft mit MDX eine sehr mächtige multidimensionale Abfragesprache geschaffen hat, die auf Grund ihrer Ähnlichkeit zu SQL einen einfachen Einsatz ermöglicht. Dabei sind die meisten interaktiven OLAP-Funktionen direkt mit den MDX-Befehlen umzusetzen, sodass die Kombination des interaktiven Analysetools mit der nötigen Abfragesprache kein Problem ist und somit Zeit und Entwicklungsaufwand spart. 4 MDX Alternativen In diesem Kapitel soll ein kurzer Überblick über zwei weitere mögliche Anfragesprachen gegeben werden. Bei der ersten Möglichkeit handelt es sich um einen Ansatz, XML als Abfragesprache zu benutzen, während die zweite Möglichkeit eine Erweiterung von SQL beschreibt. 4.1 XML Analysis Bei XML Analysis handelt es sich um den Versuch den Austausch multidimensionaler Daten auf Basis von XML zu realisieren. Entstanden ist dieser Versuch beim XML for Analysis (XML/A) Council, welches 2001 von Microsoft und Hyperion gegründet wurde[MS04]. Ziel dieses Konzeptes ist es, die Nutzung von XML für die Datenübertragung in den aktuellen Tools weiter auszubauen, sodass in naher Zukunft auf herstellerspezifische Datenbankanbindungen verzichtet werden kann. Somit würde sowohl die Entwicklung, als auch die Kommunikation zwischen den Tools wesentlich vereinfacht werden. Das eigentliche Konzept beruht auf der Interaktion von Anwendungsprogramm und OLAP-Server auf Basis von SOAP (Simple Object Access Protocol) durch die zwei Dienstprimitiven Discover” und Execute”[MS01,Le04]]. ” ” Bei Discover” handelt es sich um eine Abfrage, welche sich im Wesentlichen ” auf die Metadaten bezieht. Mit Hilfe dieser Abfrage können Informationen über das Datenschema, die verfügbaren Datenquellen und die allgemeinen Servereigenschaften eingeholt werden. Das Ergebnis dieser Anfrage stellt ein XMLkodiertes ROWSET-Object dar, welches die angeforderten Daten enthält. Mit Execute” wird die Anfrage nach den eigentlichen Nutzdaten bezeichnet. Sie ” liefert das Anfrageergebnis in Form eines XML MDDataSet, welches einen XMLkodierten Datenwürfel darstellt. Zu beachten ist hierbei jedoch, dass momentan nur MDX Ausdrücke in der Execute” Anfrage verwendet werden dürfen. Somit ” sind es im wesentlichen nur die Produkte von Microsoft und deren Partnerfirmen, die von diesem Konzept profitieren. Da aber allein der Marktanteil der OLAP Produkte von Microsoft ohne seine Partnerfirmen im Jahr 2006 bei über 30% lag [BA01], bestehen gute Möglichkeiten, dass sich dieses Konzept in den kommenden Jahren weiter verbreiten wird. 4.2 Red Brick Bei Red Brick handelt es sich um ein Data-Warehouse von IBM. Es baut dabei auf dem relationalen Datenbankmodell auf und erweitert das Standard-SQL um einige Spezialbefehle. So werden zum Beispiel SQL-OLAP-Funktionen” ” eingeführt. Hierbei handelt es sich um Befehle, die auf einer Teilmenge des Ergebnisraumes der SQL-Anfrage arbeiten. Diese Teilmengen werden auch win” 14 dow partition” genannt. Sie ermöglichen zum Beispiel die Auswertung des SQLAnfrage Resultates auf ausgewählten Zeilen. So können zum Beispiel die Umsätze verschiedener Tage nach ihrem Rang sortiert werden, wobei verschiedene Tage einzeln sortiert werden. Es finden sozusagen viele kleine Sortiervorgänge anstelle eines großen Vorganges statt. Als Anfragetypen stehen folgende Formen zur Verfügung [IBM01]: • Ranking, • Numbering, • Inverse distribution und • Aggregation. Die zweite Erweiterung stellen die RISQL Anzeige-Funktionen” dar. Diese im” plementieren häufig benutzte Strukturen bei der Manipulation der Anzeige der Daten und erleichtern somit den Umgang mit den multidimensionalen Daten. Des Weiteren arbeiten auch diese Funktionen nur auf einem Teilergebnis der SQL-Anfrage. So berechnet MOVINGAVG” zum Beispiel den Mittelwert der ” ersten n Elemente. Dies könnte zum Beispiel bei der vereinfachten Abfrage der Umsätze der letzten Wochen von Vorteil sein. Auch hier gibt es wieder eine Menge von möglichen Ausdrücken, welche zum Beispiel wären [IBM02]: • MOVINGAVG, • MOVINGSUM, • NTILE und • RANK. 5 Zusammenfassung Wie man anhand dieser Ausarbeitung erkennen kann, gibt es eine Vielzahl von Möglichkeiten, mit multidimensionalen Daten zu arbeiten. Es besteht die Option der grafischen Interaktion wie auch der Manipulation mittels Datenbanksprachen. Dieses Dokument präsentiert nur einige der Möglichkeiten, die man bei der Arbeit mit OLAP-Produkten hat. Und hierbei liegt auch das Problem. Auf Grund der Vielzahl der Optionen besteht fast immer die Chance, eine gewünschte OLAP-Funktion zu realisieren. Erschwert wird dies jedoch durch die unzähligen Insellösungen der jeweiligen Hersteller. Ohne spezielle Schnittstellen ist es momentan nicht möglich, die einzelnen Produkte miteinander zu verbinden, auch wenn es bereits Ansätze in Form von XML Analysis gibt. Ohne einen Standard wird es schwer werden, alle Produkte miteinander kompatibel zu machen. Da sich in den letzten Jahren vermehrt IT-Riesen wie Microsoft, SAP oder IBM auf dem Markt betätigt haben, steigt allerdings die Chance, dass sich zumindest einige Pseudo-Standards der einzelnen Firmen durchsetzen werden, wenn deren Marktanteil weiter steigt. 15 Literatur [BA01] Business Application Research Center, 1995 - 2011, OLAP market share analysis, http://www.bi-verdict.com/fileadmin/dl temp/79d12c645bbc1a796068fc 622c21bfd9/market.htm Stand: 12.01.2012 [BG01] Bauer, A., Günzel H. (Hrsg.): Data Warehouse Systeme: Architektur,Entwicklung, Anwendung, dpunkt.Verlag, 2. Auflage, Heidelberg, 2004, S. 106 [BG02] Bauer, A., Günzel H. (Hrsg.): Data Warehouse Systeme: Architektur,Entwicklung, Anwendung, dpunkt.Verlag, 2. Auflage, Heidelberg, 2004, S. 106 - 108 [FT01] Whitehorn, M. and Zare, R. and Pasumansky, M., Fast track to MDX, Springer, 2006, S.XII [IBM01] IBM Software Information Center http://publib.boulder.ibm.com/infocenter/rbhelp/v6r3/index.jsp?topic =%2Fcom.ibm.redbrick.doc6.3%2Fsqlrg%2Fsqlrg36.htm Stand: 12.01.2012 [IBM02] IBM Software Information Center http://publib.boulder.ibm.com/infocenter/rbhelp/v6r3/index.jsp?topic =%2Fcom.ibm.redbrick.doc6.3%2Fsqlrg%2Fsqlrg36.htm Stand: 12.01.2012 [Le01] Lehner, W..:Datenbanktechnologien für Datawarehouse-Systeme, dpunkt.Verlag, 1. Auflage, Heidelberg, 2003, S. 74 - 75 [Le02] Lehner, W..:Datenbanktechnologien für Datawarehouse-Systeme, dpunkt.Verlag, 1. Auflage, Heidelberg, 2003, S. 75 [Le03] Lehner, W..:Datenbanktechnologien für Datawarehouse-Systeme, dpunkt.Verlag, 1. Auflage, Heidelberg, 2003, S. 76 - 81 [Le04] Lehner, W..:Datenbanktechnologien für Datawarehouse-Systeme, dpunkt.Verlag, 1. Auflage, Heidelberg, 2003, S. 81 - 82 [MS01] Microsoft Developer Network http://www.microsoft.com/germany/msdn/library/data/xml/Spezifikat ionenFuerXMLForAnalysis.mspx?mfr=true Stand: 12.01.2012 [MS02] Microsoft Developer Network http://technet.microsoft.com/de-de/library/ms146052.aspx Stand: 23.02.2012 [MS03] Microsoft Developer Network http://msdn.microsoft.com/de-de/library/ms145970.aspx Stand: 23.02.2012 16 [MS04] Microsoft News Center http://www.microsoft.com/presspass/press/2002/Apr02/0408SASpr.mspx Stand: 23.02.2012 [MZ01] Mahnert, K., Zimmerman M.: Basiswissen Soa Bi Crm Ecm Grundlagen, Methoden, Praxis, IDG Business Media GmbH, München, S. 298 17 Abbildungsverzeichnis 1 2 3 4 5 6 7 Dimensionswürfel . . . . . Slice auf Zeit . . . . . . . Dice . . . . . . . . . . . . Drill-down & Roll-up . . . Drill-across . . . . . . . . Drill-through . . . . . . . Schachtelung von Mengen . . . . . . . . . . . . . . . . . . . . . 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 6 7 8 9 12