Anfragen gegen das DataWarehouse

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