Anfragen gegen das Data-Warehouse

Werbung
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
Herunterladen