Title: Anfragen an multidimensonale Daten
1Anfragen an multidimensonale Daten
- Alexander Heidrich - BID8
- 09.06.2005
2Inhaltsübersicht
- Motivation
- OLAP-Operationen
- Umsetzung in Standards
- SQL
- MDX
- Anfragetypen und -verarbeitung
- Fragen? / Diskussion!
3Motivation
- Daten sind im Data Warehouse ? Wie kommt man nun
an seine Informationen? - Theoretische Grundlagen
- Welche Erweiterungen der vorhandenen
(Datenbank-)mittel gibt es? Wie werden sie
benutzt?
4Inhaltsübersicht
- Motivation
- OLAP-Operationen
- Umsetzung in Standards
- SQL
- MDX
- Anfragetypen und -verarbeitung
- Fragen? / Diskussion!
5OLAP-Operationen
- Online Analytic Processing
- Werkzeuge und Technologien, mit denen ein
zugrundeliegendes DW benutzerfreundlich
analysiert und abgefragt werden kann - eingesetzt zur Unterstützung von
Managemententscheidungen (decision support)
6OLAP-Operationen Ausgangssituation
7OLAP-Operationen
- Roll-Up Wechsel auf eine übergeordnete
Betrachtungsebene - Drill-Down Wechsel auf eine untergeordnete
Betrachtungsbene
8OLAP-Operationen
- Drill-Across Wechseln des betrachteten Fakts
unter Beibehaltung der Betrachtungsebene
9OLAP-Operationen
- Slice Zugriff auf Daten einer extrahierten
Schicht
10OLAP-Operationen
- Dice Zugriff auf Teilwürfel
11OLAP-Operationen
- Pivotierung Drehen des Würfels durch
Vertauschen der Dimensionen
12Inhaltsübersicht
- Motivation
- OLAP-Operationen
- Umsetzung in Standards
- SQL
- MDX
- Anfragetypen und -verarbeitung
- Fragen? / Diskussion!
13Umsetzung in Standards - SQL
- SQL-OLAP-Erweiterungen (seit SQL1999)
- (erweiterte) Gruppierungsfunktionalität
- GROUP BY
- GROUPINGSETS
- GROUPING()
- ROLLUP
- CUBE
- SQL-OLAP-Funktionen
- Aggregate, Partitioning, Windows, Ranking
- IBM und Oracle an Standardisierung beteiligt ?
integriert in DB2 und Oracle (DBMS)
14SQL Beispieldaten
15SQL Aggregate
- Aggregatfunktionen COUNT(), SUM(), MIN(), MAX(),
AVG() - Funktionen liefern in dieser Anwendung nur einen
einzelnen Wert - Verwendung von GROUP BY
16SQL GROUP BY Beispiel
17SQL GROUPING SETS
- GROUP BY immer noch umständlich bei der Erzeugung
von verschiedenen Gruppierungen (z.B. (Jahr,
Land), (Jahr), (Jahr, Land, Verkäufe), etc.) - Lösung GROUPING SETS ? Gruppierungskombinationen
18SQL GROUPING SETS Beispiel
19SQL ROLLUP-Operator
- Erweiterung der GROUP-BY-Syntax um
ROLLUP-Operator - erzeugt hierarchisch multidimensionale
Gruppierung - GROUPING()-Funktion zur Indentifizierung von
NULL-Werten
20SQL CUBE-Operator
- Vorschlag von Microsoft und IBM
- Erweiterung der GROUP-BY-Syntax um den
CUBE-Operator - N-Dimensionale Generalisierung der einfachen
Aggregatfunktionen
21CUBE
entsprechend GROUPING SETS( (),(Jahr),(Land),(Kate
gorie), (Jahr,Land),(Jahr, Kategorie),(Land,Katego
rie), (Jahr,Land, Kategorie))
22SQL Cube
23SQL OLAP-Funktionen
- mit SQL1999 eingeführt
- umfassen
- Aggregate
- Partionierung
- Window (Bildung dynamischer Fenster)
- Ranking
- Kernkonstrukt Over-Klausel
24SQL Over-Klausel
25SQL Over() Beispiel
- Over() ? Aggregation über alle Tupel
- Aggregatbildung, keine weitere Verdichtung
26SQL Over() mit Partionierung - Beispiel
- Partitionierung ähnlich Gruppierung
PARTITON BY ltattribute listgt
27SQL Over() Bildung dynamischer Fenster
OVER(ORDER BY ltattribute listgt ltwindow-specgt)
28SQL Over() Bildung dynamischer Fenster - Beispiel
29SQL Ranking
- Bestimmung der Postion eines Tupels in der
Ergebnismenge - Duplikate erhalten den gleichen Rang
- RANK() (mit Lücken) DENSE_RANK() (ohne Lücken)
30SQL Ranking - Beispiel
31SQL Umsetzung in DB2 und Oracle
- Behauptung DB2 und Oracle hinsichtlich den in
SQL1999 definierten OLAP-Erweiterungen/-funktione
n gleich - SQL2003 bringt weitere analytische Funktionen ?
bislang nur von/in Oracle implementiert
32MDX
- MDX MultiDimensional eXpressions
- orientiert sich stark an SQL-Syntax und MDDM
- Entwicklung/Vorschlag von Microsoft
33MDX
- Dimensions (Select)
- max. 64
- on COLUMNS, ROWS,
- Cube (From)
- Slicer (Where)
- Auswahl der darzustellenden Werte
34MDX Elemente
- Measures ? Fakten
- als Dimension modelliert
- Dimensions ? Dimensionen
- Level Klassifikationsstufe (Jahr)
- Member Klassifikationsknoten (2003)
- Syntax
- Sets
- Einschluß von Strings
35MDX Navigationsfunktionen
- Navigationsfunktionen
- Members Knoten einer Klassifikationsstufe
- Children Kinderknoten eines Klassifikationsknoten
s - Parent Elternknoten eines Klassifikationsknotens
- SELECT Kategorie.MEMBERS ? Autos, Computer
- SELECT ATHLONXP.PARENT ? CPU
- SELECT CPU.CHILDREN ? ATHLON64, ATHLONXP,
PENTIUM4
36MDX Beispiele
- Drill-Down
- Roll-Up
- Crossjoin
37MDX Beispiel
CROSSJOIN
Drill-Down
Roll-Up
38MDX weitere Funktionen
- TOPCOUNT ? Ergebnisbereich einer Dimension
einschränken - FILTER ? Einschränkung über beliebige Bedingungen
- viele weitere Funktionen ? sehr mächtige
Sprache mit hoher Komplexität
39Inhaltsübersicht
- Motivation
- OLAP-Operationen
- Umsetzung in Standards
- SQL
- MDX
- Anfragetypen und -verarbeitung
- Fragen? / Diskussion!
40Anfragetypen
41Methoden der Abfrageverarbeitung Star Join
- Star Schema als Grundlage
- sehr große Faktentabelle
- kleine, voneinander unabhängige
Dimensionstabellen - Verbund zwischen n Dimensionstabellen und der
Faktentabelle, Restriktionen über
Dimensionstabellen - typisches Muster für DW-Anfragen
42Star Join Aufbau
- SELECT-Klausel
- Kenngrößen
- Granularitäten
- FROM-Klausel
- Fakten- und Dimensionstabellen
- WHERE-Klausel
- Verbundbedingungen
- Restriktionen
43Star Join Beispiel
- SELECT
- Geographie.Region, Zeit.Monat, SUM(Verkaeufe)
- FROM
- Verkauf, Zeit, Produkte, Geographie
- WHERE
- Verkauf.Produkt_ID Produkt.ProduktID AND
- Verkauf.Zeit_ID Zeit.ZeitID AND
- Verkauf.Geographie_ID Geographie.GeographieID
AND - Produkt.Produktkategorie 'Waschgeräte' AND
- Geographie.Land 'Deutschland' AND Zeit.Jahr
2000
44Star Join Beispiel
45Inhaltsübersicht
- Motivation
- OLAP-Operationen
- Umsetzung in Standards
- SQL
- MDX
- Anfragetypen und -verarbeitung
- Fragen? / Diskussion!
46Fragen? Diskussion!