460 likes | 570 Views
Anfragen an multidimensonale Daten. Alexander Heidrich - BID8 09.06.2005. Inhaltsübersicht. Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion!. Motivation.
E N D
Anfragen an multidimensonale Daten Alexander Heidrich - BID8 09.06.2005
Inhaltsübersicht • Motivation • OLAP-Operationen • Umsetzung in Standards • SQL • MDX • Anfragetypen und -verarbeitung • Fragen? / Diskussion! Anfragen an multidimensionale Daten
Motivation • 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? Anfragen an multidimensionale Daten
Inhaltsübersicht • Motivation • OLAP-Operationen • Umsetzung in Standards • SQL • MDX • Anfragetypen und -verarbeitung • Fragen? / Diskussion! Anfragen an multidimensionale Daten
OLAP-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) Anfragen an multidimensionale Daten
OLAP-Operationen: Ausgangssituation Anfragen an multidimensionale Daten
OLAP-Operationen • Roll-Up – Wechsel auf eine übergeordnete Betrachtungsebene • Drill-Down – Wechsel auf eine untergeordnete Betrachtungsbene Anfragen an multidimensionale Daten
OLAP-Operationen • Drill-Across – Wechseln des betrachteten Fakts unter Beibehaltung der Betrachtungsebene Anfragen an multidimensionale Daten
OLAP-Operationen • Slice – Zugriff auf Daten einer extrahierten Schicht Anfragen an multidimensionale Daten
OLAP-Operationen • Dice – Zugriff auf Teilwürfel Anfragen an multidimensionale Daten
OLAP-Operationen • Pivotierung – Drehen des Würfels durch Vertauschen der Dimensionen Anfragen an multidimensionale Daten
Inhaltsübersicht • Motivation • OLAP-Operationen • Umsetzung in Standards • SQL • MDX • Anfragetypen und -verarbeitung • Fragen? / Diskussion! Anfragen an multidimensionale Daten
Umsetzung in Standards - SQL • SQL-OLAP-Erweiterungen (seit SQL:1999) • (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) Anfragen an multidimensionale Daten
SQL: Beispieldaten Anfragen an multidimensionale Daten
SQL: Aggregate • Aggregatfunktionen COUNT(), SUM(), MIN(), MAX(), AVG() • Funktionen liefern in dieser Anwendung nur einen einzelnen Wert • Verwendung von GROUP BY Anfragen an multidimensionale Daten
SQL: GROUP BY – Beispiel Anfragen an multidimensionale Daten
SQL: 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 Anfragen an multidimensionale Daten
SQL: GROUPING SETS – Beispiel Anfragen an multidimensionale Daten
SQL: ROLLUP-Operator • Erweiterung der GROUP-BY-Syntax um ROLLUP-Operator • erzeugt hierarchisch multidimensionale Gruppierung • GROUPING()-Funktion zur Indentifizierung von NULL-Werten Anfragen an multidimensionale Daten
SQL: CUBE-Operator • Vorschlag von Microsoft und IBM • Erweiterung der GROUP-BY-Syntax um den CUBE-Operator • N-Dimensionale Generalisierung der einfachen Aggregatfunktionen Anfragen an multidimensionale Daten
CUBE entsprechend GROUPING SETS( (),(Jahr),(Land),(Kategorie), (Jahr,Land),(Jahr, Kategorie),(Land,Kategorie), (Jahr,Land, Kategorie)) Anfragen an multidimensionale Daten
SQL: Cube Anfragen an multidimensionale Daten
SQL: OLAP-Funktionen • mit SQL:1999 eingeführt • umfassen: • Aggregate • Partionierung • Window (Bildung dynamischer Fenster) • Ranking • Kernkonstrukt: Over-Klausel Anfragen an multidimensionale Daten
SQL: Over-Klausel Anfragen an multidimensionale Daten
SQL: Over() – Beispiel • Over() Aggregation über alle Tupel • Aggregatbildung, keine weitere Verdichtung Anfragen an multidimensionale Daten
Partitionierung ähnlich Gruppierung SQL: Over() mit Partionierung - Beispiel PARTITON BY <attribute list> Anfragen an multidimensionale Daten
SQL: Over() Bildung dynamischer Fenster OVER(ORDER BY <attribute list> [<window-spec>]) Anfragen an multidimensionale Daten
SQL: Over() Bildung dynamischer Fenster - Beispiel Anfragen an multidimensionale Daten
SQL: Ranking • Bestimmung der Postion eines Tupels in der Ergebnismenge • Duplikate erhalten den gleichen Rang • RANK() (mit Lücken) DENSE_RANK() (ohne Lücken) Anfragen an multidimensionale Daten
SQL: Ranking - Beispiel Anfragen an multidimensionale Daten
SQL: Umsetzung in DB2 und Oracle • Behauptung: DB2 und Oracle hinsichtlich den in SQL:1999 definierten OLAP-Erweiterungen/-funktionen gleich • SQL:2003 bringt weitere analytische Funktionen bislang nur von/in Oracle implementiert Anfragen an multidimensionale Daten
MDX • MDX = MultiDimensional eXpressions • orientiert sich stark an SQL-Syntax und MDDM • Entwicklung/Vorschlag von Microsoft Anfragen an multidimensionale Daten
MDX • Dimensions (Select) • max. 64 • on COLUMNS, ROWS, … • Cube (From) • Slicer (Where) • Auswahl der darzustellenden Werte Anfragen an multidimensionale Daten
MDX: Elemente • Measures Fakten • als Dimension modelliert • Dimensions Dimensionen • Level: Klassifikationsstufe (Jahr) • Member: Klassifikationsknoten (2003) • Syntax • {} Sets • [] Einschluß von Strings Anfragen an multidimensionale Daten
MDX: Navigationsfunktionen • Navigationsfunktionen • Members: Knoten einer Klassifikationsstufe • Children: Kinderknoten eines Klassifikationsknotens • Parent: Elternknoten eines Klassifikationsknotens SELECT {[Kategorie].MEMBERS} Autos, Computer SELECT {[ATHLONXP].PARENT} CPU SELECT {[CPU].CHILDREN} ATHLON64, ATHLONXP, PENTIUM4 Anfragen an multidimensionale Daten
MDX: Beispiele • Drill-Down • Roll-Up • Crossjoin Anfragen an multidimensionale Daten
MDX: Beispiel CROSSJOIN Drill-Down Roll-Up Anfragen an multidimensionale Daten
MDX: 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 Anfragen an multidimensionale Daten
Inhaltsübersicht • Motivation • OLAP-Operationen • Umsetzung in Standards • SQL • MDX • Anfragetypen und -verarbeitung • Fragen? / Diskussion! Anfragen an multidimensionale Daten
Anfragetypen Anfragen an multidimensionale Daten
Methoden 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 Anfragen an multidimensionale Daten
Star Join: Aufbau • SELECT-Klausel • Kenngrößen • Granularitäten • FROM-Klausel • Fakten- und Dimensionstabellen • WHERE-Klausel • Verbundbedingungen • Restriktionen Anfragen an multidimensionale Daten
Star 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 Anfragen an multidimensionale Daten
Star Join: Beispiel Anfragen an multidimensionale Daten
Inhaltsübersicht • Motivation • OLAP-Operationen • Umsetzung in Standards • SQL • MDX • Anfragetypen und -verarbeitung • Fragen? / Diskussion! Anfragen an multidimensionale Daten