Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Anfragen an multidimensonale Daten

Ähnliche Präsentationen


Präsentation zum Thema: "Anfragen an multidimensonale Daten"—  Präsentation transkript:

1 Anfragen an multidimensonale Daten
Alexander Heidrich - BID8 - nach Architektur, Speichermodellen etc. bekannt wie Daten ins Data Warehous kommen, nun weiter mit Anfragen an die gespeicherten Daten

2 Anfragen an multidimensionale Daten
Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! Anfragen an multidimensionale Daten

3 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? Betriebswirtschaftliche Kennzahlen stehen im Mittelpunkt (Erlöse, Umsätze, Verkäufe, etc.) Anfragen an multidimensionale Daten

4 Anfragen an multidimensionale Daten
Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! Anfragen an multidimensionale Daten

5 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) beschäftigt sich mit der Auswertung von Daten, die über einen längeren Zeitraum gesammelt wurden Anfragen an multidimensionale Daten

6 OLAP-Operationen: Ausgangssituation
Ausgangssituation: multidimensionaler Datenwürfel (einfacher Fall  Würfel) Dimensionsgrößen (Geographie, Zeit, Produkt) Granularität (Jahr, Quartal, Monat, Tag) usw. einzelne elemente beinhalten Daten Anfragen an multidimensionale Daten

7 Anfragen an multidimensionale Daten
OLAP-Operationen Roll-Up – Wechsel auf eine übergeordnete Betrachtungsebene Drill-Down – Wechsel auf eine untergeordnete Betrachtungsbene Roll-up – Aggregation (weniger Detail) Drill-down (mehr Detail), Bewegung entlang der Granularitäten Anfragen an multidimensionale Daten

8 Anfragen an multidimensionale Daten
OLAP-Operationen Drill-Across – Wechseln des betrachteten Fakts unter Beibehaltung der Betrachtungsebene Anfragen an multidimensionale Daten

9 Anfragen an multidimensionale Daten
OLAP-Operationen Slice – Zugriff auf Daten einer extrahierten Schicht Selektion, Beschränkung einer Dimension SELECT * FROM VERKÄUFE WHERE Produkt = „VW“ SELECT * FROM VERKÄUFE WHERE GEOGRAPHIE = „FILIALE1“ Anfragen an multidimensionale Daten

10 Anfragen an multidimensionale Daten
OLAP-Operationen Dice – Zugriff auf Teilwürfel Beschränkung aller Dimensionen auf Menge von Werten SELECT * FROM Verkäufe WHERE ARTIKEL = „GOLF“ AND TAG = „1“ AND FILIALE=„JENA“ Anfragen an multidimensionale Daten

11 Anfragen an multidimensionale Daten
OLAP-Operationen Pivotierung – Drehen des Würfels durch Vertauschen der Dimensionen davon ausgehend, daß der Nutzer den Würfel immer von vorn sieht Eine Art Slicing Zur Analyse betriebswirtschaftlicher Daten meist Summenbildung entlang weggelassener Dimensionen (Verkäufe nach Zeit und Ort, Verkäufe nach Produkt und Zeit, Verkäufe nach Produkt und Ort), dabei noch nach Granularität Anfragen an multidimensionale Daten

12 Anfragen an multidimensionale Daten
Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! Anfragen an multidimensionale Daten

13 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) Pivotierung nicht in SQL  Aufgabe der Darstellungsschicht DB2: 7.2, Oracle: 9 neben Informix (von IBM aufgekauft) und Compaq (mit HP fusioniert) Microsoft und IBM und CUBE-Operator Syntax in Beispielen Anfragen an multidimensionale Daten

14 Anfragen an multidimensionale Daten
SQL: Beispieldaten Firma X mit Filialen in Frankreich und Deutschland, verkauft Autos und Computer Firma an allen Gruppierungen interessiert, Verkaufszahlen usw. usf. (vollständig wie möglich) Anfragen an multidimensionale Daten

15 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 Summen, Mittelwerte, etc. sind interessant, manche DBMS bieten auch weitere und benutzerdefinierte Funktionen um eine Anfrageergebnis mit Aussage, unterteilt nach Dimensionen zu bekommen (Summe nach Jahr, Summe nach Kategorie) im folgenden das Kernkonstrukt für die verschiedenen Gruppierungsmöglichkeiten Anfragen an multidimensionale Daten

16 SQL: GROUP BY – Beispiel
-Ergebnis: Tabelle, unterteilt nach gewählten Attributmengen -Jede Gruppe wird mit der gewählten Funktion und gewähltem Attribut aggregiert -reicht eingentlich schon aus, würde sich bei großen Tabellen aber ungünstig machen, viel Schreibarbeit, Performance! Anfragen an multidimensionale Daten

17 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 - () = Superaggregat Anfragen an multidimensionale Daten

18 SQL: GROUPING SETS – Beispiel
- Null-Werte unschön Anfragen an multidimensionale Daten

19 Anfragen an multidimensionale Daten
SQL: ROLLUP-Operator Implizit drill-down, Rollup zeigen GROUPING()-Funktion, um NULL-Werte, die von der Aggregation erschaffen werden von benutzerseitig eingefügten NULL-Werten zu unterscheiden, seit SQL1999 Zurückführen auf GROUPING SETS  Group-By  es fehlen Zeilen (Aggregation nach Land)  Hinzufügen per SQL-Statement fehlende Kombinationen  Wunderwaffe CUBE-Operator Erweiterung der GROUP-BY-Syntax um ROLLUP-Operator erzeugt hierarchisch multidimensionale Gruppierung GROUPING()-Funktion zur Indentifizierung von NULL-Werten Anfragen an multidimensionale Daten

20 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 Referenz zum Paper (Microsoft, IBM)  Rechen- und Schreibaufwand verringern, Einführung vorgeschlagen 0D data cube = Punkt 1D data cube = Linie mit Punkt 2D data cube = Kreuztabelle 3D data cube = Würfel mit drei sich überschneidenden Kreuztabellen Anfragen an multidimensionale Daten

21 Anfragen an multidimensionale Daten
CUBE erzeugt eine Tabelle, die sämtliche Aggregationen enthält GROUP-BYs für alle möglichen Kombinationen der Attribute, bei n Attributen müssen 2^n GROUP-BYs berechnet werden potenzmenge (stichwort) wenn mich diese ganzen Kombinationen nicht interessieren, Rückgriff auf ROLLUP entsprechend GROUPING SETS( (),(Jahr),(Land),(Kategorie), (Jahr,Land),(Jahr, Kategorie),(Land,Kategorie), (Jahr,Land, Kategorie)) Anfragen an multidimensionale Daten

22 Anfragen an multidimensionale Daten
SQL: Cube ineinander verschachtelte Kreuztabellen Anfragen an multidimensionale Daten

23 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

24 Anfragen an multidimensionale Daten
SQL: Over-Klausel Funktion: z.B. AVG, SUM, später auch RANK(), DENSERANK() Anfragen an multidimensionale Daten

25 Anfragen an multidimensionale Daten
SQL: Over() – Beispiel Over()  Aggregation über alle Tupel Aggregatbildung, keine weitere Verdichtung Anfragen an multidimensionale Daten

26 SQL: Over() mit Partionierung - Beispiel
Partitionierung ähnlich Gruppierung PARTION BY JAHR = Partionierungsschema PARTITON BY <attribute list> Anfragen an multidimensionale Daten

27 SQL: Over() Bildung dynamischer Fenster
OVER(ORDER BY <attribute list> [<window-spec>]) ROWS: explizite Angabe der Tupel RANGE: Angabe über between (UNBOUNDED PRECEDING = alle vorhergehenden, CURRENT ROW = aktuelle Zeile, n PRECEDING, n FOLLOWING = n vohergehende, n folgenden) and oder nur folgende TUPEL ab AKTUELLER ZEILE Anfragen an multidimensionale Daten

28 SQL: Over() Bildung dynamischer Fenster - Beispiel
- erfordert explizite Sortierung der Tupel Anfragen an multidimensionale Daten

29 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) also bzgl. angegebener Sortierung innerhalb der Partition Anfragen an multidimensionale Daten

30 SQL: Ranking - Beispiel
Order By Angabe als Grundlage fürs Ranking notwendige Angabe! 1. Spalte Dense_Rank 2. Spalte Rank Anfragen an multidimensionale Daten

31 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 Standardisierungsvorschlag stammt ja von beiden, Over Ranking usw. gibt’s auch in beiden Anfragen an multidimensionale Daten

32 Anfragen an multidimensionale Daten
MDX MDX = MultiDimensional eXpressions orientiert sich stark an SQL-Syntax und MDDM Entwicklung/Vorschlag von Microsoft kein relationaler „Aufsatz“ dementsprechend integriert in MS SQLServer Anfragen an multidimensionale Daten

33 Anfragen an multidimensionale Daten
MDX Dimensions (Select) max. 64 on COLUMNS, ROWS, … Cube (From) Slicer (Where) Auswahl der darzustellenden Werte Fakten Slice Anfragen an multidimensionale Daten

34 Anfragen an multidimensionale Daten
MDX: Elemente Measures  Fakten als Dimension modelliert Dimensions  Dimensionen Level: Klassifikationsstufe (Jahr) Member: Klassifikationsknoten (2003) Syntax {} Sets [] Einschluß von Strings implizite Summierung Measures  Fakten  in MDX auch Dimension Measures vorher festgelegt Anfragen an multidimensionale Daten

35 MDX: 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

36 Anfragen an multidimensionale Daten
MDX: Beispiele Drill-Down Roll-Up Crossjoin Cross-Join  Projektion zweier Dimensionen in die Ebene, Erzeugung aller möglichen Kombinationen Anfragen an multidimensionale Daten

37 Anfragen an multidimensionale Daten
MDX: Beispiel CROSSJOIN Drill-Down Roll-Up Anfragen an multidimensionale Daten

38 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

39 Anfragen an multidimensionale Daten
Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! Anfragen an multidimensionale Daten

40 Anfragen an multidimensionale Daten
Anfragetypen bereichsanfrage (in allen dimensionen beschränkt)  häufigste anfragetypen (wieviel waschmaschinen wurden im januar verkauft) teilbereichsanfrage (nicht in allen dimensionen beschränkt)  häufigste anfragetypen (wieviel artikel wurden im januar verkauft) partialmatch-anfrage (eine dimension streng begrenzt) punktanfrage (alle dimensionen streng begrenzt) zusammengesetzte anfragen unregelmäßige anfrageformen Anfragen an multidimensionale Daten

41 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 häufigstes Anfragemuster (Anfragen an Fakten- und dimensionstabelle) charakteristika der typischen DW-Anfrage: es wird meist nur ein bestimmter in fast allen dimensionen beschränkter datenbereich abgefragt Dimensionstabelle  enthält Details (Produktbeschreibung, etc.), Fremdschlüsselbeziehung zur Faktentabelle Faktentabelle  enthält die eigentlich zu verwaltenden Kennzahlen Anfragen an multidimensionale Daten

42 Anfragen an multidimensionale Daten
Star Join: Aufbau SELECT-Klausel Kenngrößen Granularitäten FROM-Klausel Fakten- und Dimensionstabellen WHERE-Klausel Verbundbedingungen Restriktionen weitestgehend SFW-Schema (ganz klassisch) SUM(irgendwas), ZEIT.Tag, ZEIT.Jahr Land = „Deutschland“ AND Zeit = „2003 Anfragen an multidimensionale Daten

43 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 - wieviel waschgeräte im jahr 2000 in deutschland verkauft Anfragen an multidimensionale Daten

44 Anfragen an multidimensionale Daten
Star Join: Beispiel Mögliche Abarbeitungsstragie Performance-Probleme  Datensätze in der Tabelle Verkauf, 1/10 Geschäfte in Deutschland (10 von 100 Geschäften), 1/50 aller gespeicherten Verkaufstage im Januar (20 von 1000 Tagen), 1/20 aller Produkte Waschmaschinen (50 von 1000 Produkten) 1. Join  Tupel als Ergebnis 2. Join  Tupel 3. Join  1000 Tupel  Optimierung in weiteren Vorträgen vorgestellt Anfragen an multidimensionale Daten

45 Anfragen an multidimensionale Daten
Inhaltsübersicht Motivation OLAP-Operationen Umsetzung in Standards SQL MDX Anfragetypen und -verarbeitung Fragen? / Diskussion! Anfragen an multidimensionale Daten

46 Fragen? Diskussion!


Herunterladen ppt "Anfragen an multidimensonale Daten"

Ähnliche Präsentationen


Google-Anzeigen