Anfragen gegen das DataWarehouse Sebastian Kuhs Seminar Data Warehousing und analytische Datenbanken Gliederung 1. Benutzergruppen 2. interaktives OLAP 3. MDX 4. XML-Analysis 5.Produkte 1. Benutzergruppen Endanwender Entscheidungen auf Basis der gelieferten Daten Unterstützung mittels interaktiver Analysetools 1. Benutzergruppen Entwickler Designen & Programmieren Software für Endanwender Benötigen Tools und multidimensionale Anfragesprachen Gliederung 1. Benutzergruppen 2. interaktives OLAP 2.1 3D Datenstruktur 2.2 Pivotisierung/ Rotation 2.3 Slice & Dice 2.4 Drill-down 2.5 Roll-up 2.6 Split & Merge 2.7 Drill-across 2.8 Drill-through 3. MDX 4. XML-Analysis 5.Produkte 2. interaktives OLAP „Die Datenanalyse mit einem OLAP-Werkzeug ist ein dynamischer Prozess, bei dem der Anwender mit Hilfe von multidimensionlen Operatoren durch die multidimensionale Datenstruktur navigiert.“ Bauer - Günzel 2.1 3D Datenstruktur Zeit Produkt Zeitintervall, z.B. in Jahren Region Geografische Eingrenzung, z.B. Bundesland Re g io Zeit n Produkt Produktsparten, z.B. Technik, Haushaltswaren, ... P Zeriotdukt 2.2 Pivotisierung/ Rotation Z Reeigt ion Zere P R iogtdi ounk t Vertauschung der Dimensionen entlang der Achsen 2.3 Slice & Dice Jahre er d n ä l s e d n Bu 2005 2006 2007 2008 2009 2010 2011 Pr od Jah re uk tsp ar te n Bundesländer x Sachsen x Berlin x Thüringen x Bremen x Bayern x Hessen x Technik x Möbel x Kleidung x Haushaltswaren x Schuhe Produktsparten 2.4 Drill-down n ge rin Th ü Technik 2008 Jan u Feb ar 2008 ruar 2 0 08 Mär z 20 08 Okt …obe r 20 08 Nov . 20 08 D ez . 20 08 - Fernseher Radios Uhren Computer …Beamer Monitore - Auflösung der ausgewählten Daten wird erhöht, nicht jedoch ihr Umfang -A - L lte - G and nbu - S era kre rger is - … aal G Lan e re -E H iz d o lzl ise an na d ch K re is 2.5 Roll-up Inverse Operation zu Drill-down Jan u Feb ar 2008 ruar 2 0 08 Mär z 20 08 Okt …obe r 20 08 Nov . 20 08 D ez . 20 08 - Drill-down -A - L lte - G and nbu - S era kre rger is - … aal G Lan e re -E H iz d o lzl ise an na d ch K re is 2008 Th ür in ge n Roll-up Technik Fernseher Radios Uhren Computer …Beamer Monitore - 2.6 Split & Merge Produkt Split = Entfernen einer Dimension Merge = Hinzufügen einer Dimension Split „Region“ Produkte Re g io Zeit n Merge „Region“ Zeit 2.7 Drill-across Inhalt des Datenwürfels wird geändert, nicht jedoch seine Dimensionen Verkaufszahlen Produkt Produkt Verkaufspreis ion Zeit Re g Re g io Zeit n Drill-across 2.8 Drill-through Daten zweier Datenwürfel werden verbunden (OLAP-Join) Verkaufspreis Produkt Produkt Verkaufszahlen ion Zeit Re g Re g io Zeit n + 2.8 Drill-through Daten zweier Datenwürfel werden verbunden (OLAP-Join) Umsatz + Gliederung 1. Benutzergruppen 2. interaktives OLAP 3. MDX 3.1 Beispiel 3.2 Achsendimension 3.3 Würfelspezifikation 3.4 Restriktion 3.5 Mengenausdrücke 3.6 spezielle Funktionen & Filter 3.7 Zeitreihen 4. XML-Analysis 5.Produkte 3. MDX - „MultiDimensional eXpressions“ - verfügbar für C++, ActiceX, Visual Basic & XML - am häufigsten eingesetzt in der OLE DB (Object Linking and Embedding, Database) - von Mosha Pasumansky entwickelt - orientiert sich an SQL, besitzt allerdings keinen einheitlichen Standard 3.1 Beispiel 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]} 3.2 Achsendimension SELECT {Thüringen, Gera, [Saale Holzland Kreis]} ON COLUMNS, {Januar, Februar, Maerz, April.CHILDREN} ON ROWS - beschreibt den Ergebnisraum - weist jeder Dimension seine Rolle im Ergebnisraum zu - z.B.: ON ON ON ON ON COLUMNS ROWS PAGES SECTIONS CHAPTERS 3.3 Würfelspezifikation FROM SalesCube - Menge der für die Erstellung des Ergebnisraums benötigten Datenwürfel - bei mehreren Würfeln muss mindestens eine Dimension untereinander übereinstimmen 3.4 Restriktion WHERE {Measures.Verkäufe, Zeit.[2011], Produkte.[Alle Produkte]} - Einschränkung der verwendeten Datenwürfel - Verwendung der „Slicer“ - Dimensionen 3.5 Mengenausdrücke - Aufzählung Elementausdrücke Funktionale Erzeugung von Mengen Schachtelung von Mengen Relative Auswahl Methoden für dimensionale Schemata 3.5.1 Aufzählung - von { } umschlossen - Elemente werden mit Komma getrennt - Elemente müssen nicht aus der selben Klassifikationsebene stammen {Deutschland, Thüringen, Sachsen, Gera, [Saale Holzland Kreis]} 3.5.2 Elementausdrücke - Methoden, um mit einem Element „verwandte“ Knoten/ Elemente anzusprechen Zeit.Jahr.CHILDREN Januar.PARENT Zeit.Jahre.MEMBERS Produkte.ALL 3.5.3 Funktionale Erzeugung von Mengen - auch Funktionen können Mengen generieren - können ineinander geschachtelt werden DESCENDATS(Deutschland,Städte) // liefert alle Städte in Deutschland GENERATE({Sachsen, Thüringen}, DESCENDATS(Region.CURRENT, Städte)) // liefert alle Städte in Thüringen und Sachsen 3.5.4 Schachtelung von Mengen - können verwendet werden, um einen höherdimensionalen Ergebnisraum auf 2D Tabelle abzubilden 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]} 3.5.4 Schachtelung von Mengen - können verwendet werden, um einen höherdimensionalen Ergebnisraum auf 2D Tabelle abzubilden Thüringen Technik Januar SELECT Februar Maerz 1. April Kleidung Gera Technik Kleidung SHK Technik CROSSJOIN({Thüringen, Gera, [Saale Holzland Kreis]} {Technik, Kleidung}) ON COLUMNS, {Januar, Februar, Maerz, April.CHILDREN} ON ROWS 2.April FROM ... SalesCube WHERE {Measures.Verkäufe, Zeit.[2011], Produkte.[Alle Produkte]} Kleidung 3.5.5 Relative Auswahl - Methoden, die die „Verwandschaft“ innerhalb der dimensionalen Struktur ausnutzen, um zum nächsten Element zu navigieren Zeit.[2010].LastChild Januar.NextMember Zeit.[2010].Dezember.Lead(2) [2010].Janaur:[2010].August // // // // liefert den Dezember 2010 liefert Februar liefert den übernächsten Monat: Februar 2011 schränkt die Zeit auf Januar bis August 2010 ein 3.5.6 Methoden für dimensionale Schemata - Methoden, um Informationen über das Schema zu erhalten Zeit.Level Zeit. Levels(1) Zeit.Levels(2) // liefert „Jahre“ // liefert „Jahre“ // liefert „Monate“ 3.6 spezielle Funktionen & Filter - Möglichkeit, den Ergebnisbereich für bessere Visualisierung einschränken zu können SELECT {Mesures.Verkäufe} ON COLUMNS, {TOPCOUNT(Thüringen.CHILDREN, 3, Measures.Umsätze)} ON ROWS FROM SalesCube WHERE {Measures.Verkäufe, [2011]} TOPCOUNT, TOPPERCENT, TOPSUM FILTER(Thüringen,([2010], Umsätze) > ([2011],Umsätze))) 3.7 Zeitreihen - Funktionen, die die zeitliche Navigation erleichtern - liefern Mengen (Zeitintervalle) zurück PERIODSTODATE(Jahr, [10-02-2011]) // liefert Zeitintervall 01.01.2011 – 10.02.2011 LASTPERIODS(3, [Dez-2011]) // liefert {[Sep-2011], [Okt-2011], [Nov-2011]} PARALLEPERIOD(Jahre, 2, [Feb-2011]) // liefert [Feb-2009] ... Gliederung 1. 2. 3. 4. Benutzergruppen interaktives OLAP MDX XML-Analysis 4.1 Dienstprimitiven 5.Produkte 4. XML Analysis - Austausch multidimensonaler Daten auf Basis von XML - dafür zuständig: XML for Analysis (XML/A) Council - 2001 von Microsoft & Hyperion gegründet - Ziel: Unterstützung von XML in aktuellen OLAP Tools Damit auf herstellerspezifische Datenbankanbindungen verzichtet werden kann 4.1 Dienstprimitiven - Interaktion von Anwendungsprogramm und OLAPServer auf Basis von SOAP durch 2 Dienstprimitiven Discover Abfrage von verfügbaren Datenquellen, Datenschemata & allgemeine Servereigenschaften Ergebnis: XML- kodiertes ROWSET-Object Execute Anfrage an Server Ergebnis: Ergebniswürfel in Form eines XML MDDataSet (Multidimensionale Datenmenge) 5. Produkte Oracle Hyperion Solutions Microsoft SAP Business Objects Cartesis HP Digital Equipment IBM Cognos Applix 5.1 Red Brick - DateWarehouse von IBM entwickelt - baut auf das relationale Datenbankmodell auf - erweitert SQL um Spezialbefehle 5.1.1 SQL OLAP Funktionen - arbeiten auf einer Teilemenge „window partition“ einer einzelnen SQL – Abfrage => betrachten somit nicht mehr alle Zeilen der Ergebnismenge! Anfragetypen: - Ranking Numbering Inverse distribution Aggregation 5.1.1 SQL OLAP Funktionen RISQL> select date, store_name, sum(dollars) as sales_dols, > rank() over (partition by date order by sales_dols desc) as date_rank > from period, store, sales > where period.perkey = sales.perkey > and store.storekey = sales.storekey > and state = 'CA' > group by date, store_name > order by date; DATE 1998-01-02 1998-01-02 1998-01-02 1998-01-02 1998-01-02 1998-01-03 1998-01-03 1998-01-03 1998-01-03 1998-01-03 1998-01-04 1998-01-04 STORE_NAME Beaches Brew Roasters, Los Gatos San Jose Roasting Company Cupertino Coffee Supply Instant Coffee Instant Coffee San Jose Roasting Company Cupertino Coffee Supply Roasters, Los Gatos Beaches Brew Instant Coffee San Jose Roasting Company SALES_DOLS DATE_RANK 785.55 1 762.25 2 636.25 3 634.00 4 457.75 5 713.75 1 633.25 2 470.50 3 433.00 4 367.25 5 1031.50 1 613.95 2 5.1.2 RISQL Anzeige - Funktionen - implementieren häufig benutzte Strukturen für die Manipulation der Art der Anzeige der Daten - arbeiten wiederum nur auf Teilmengen des Ergebnisses - können nicht in Verbindung mit einer OLAP – Funktion verwendet werden Beispiele: - MOVINGAVG MOVINGSUM NTILE RANK Fragen?