Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Multidimensional Expressions (MDX)
Microsoft® SQL Server™ OLAP Services
2
Einleitung Was ist MDX? Microsoft® Terminologie im OLAP Bereich
MDX – Basisabfragen Beispiele am „FoodMart Sales Cube“ MDX – DDL- und DML-Konstrukte Fazit 27. Januar 2000 Rolf Eichenberger
3
MultiDimensional EXpressions
Ist SQL für OLAP genügend? JA ... aber ... nicht bequem und nicht schnell genug! [Übung: MDX-Beispiele in SQL umschreiben] NEIN was gibt es besseres? Microsoft® entwickelte MDX 27. Januar 2000 Rolf Eichenberger
4
MultiDimensional EXpressions
DDL und DML für multidimensionale Daten [ Definieren, Ändern und Abfragen] Standard im OLAP Bereich? OLAP Systeme mit integrierter „OLE DB for OLAP“ Schnittstelle sind in der Lage „MDX“ zu verarbeiten. „OLE DB for OLAP“ und „MDX“ nicht-proprietäre Systemkonzepte Hersteller, die bereits heute diesem Konzept folgen: BAAN, Business Objects, Cognos, MIS AG, SAS Institute, ... [ 27. Januar 2000 Rolf Eichenberger
5
Konzepte - Microsoft® Terminologie
„Cubes“ Grundkonzept in OLAP multidimensionale Strukturen [maximal 64 Dimensionen] „Dimensions“ Beschreibung der Kategorien in (multiplen) Hierarchiestufen „private“ oder „shared“ „Measures“ ist eine spezielle „Dimension“ Werte für die Analyse 27. Januar 2000 Rolf Eichenberger
6
MDX – Basisabfragen Achsen_Spezifizierung = Selektieren der „Members“ für die entsprechende Achse ON COLUMNS ¦ ROWS ¦ PAGES ¦ CHAPTERS ¦ SECTIONS ON AXIS(0) ... AXIS(63) 27. Januar 2000 Rolf Eichenberger
7
„FoodMart Sales Cube“ – „Dimensions“
VERGLEICHE PAPIER! 27. Januar 2000 Rolf Eichenberger
8
„FoodMart Sales Cube“ – „Measures“
VERGLEICHE PAPIER! 27. Januar 2000 Rolf Eichenberger
9
Beispiel [alle Messwerte der Städte in „CA“ und „WA“]
„MEMBERS“ = alle Elemente der „Dimension“ „CHILDREN“ ... mit der entsprechenden Bedeutung [Store].[Store State].[WA] ist kein „fully qualified name“ (nicht alle Stufen der Hierarchie) „unique name“ WHERE Slicer-Spezifizierung weggelassen = Filterung bezüglich des Standardelements 27. Januar 2000 Rolf Eichenberger
10
Beispiel [alle Messwerte der Geschäfte in „CA“]
„DESCENDANTS“: DESCENDANTS (member, level[, flag]) „drill down“ zu einer tieferen Stufe in der Hierarchie flag ::= [SELF] ¦ BEFORE ¦ AFTER ¦ BEFORE_AND_AFTER 27. Januar 2000 Rolf Eichenberger
11
Beispiel - Spezifizierung der Messwerte [„Sales Average“ für alle Geschäftstypen in allen Staaten]
Slicer_Spezifizierung = Selektieren des entsprechenden „Slice“ des „Cube“ ... weiteres Beispiel: WHERE (Measures.[Sales Average], [Time].[Year].[1997]) (entspricht einer AND-Verknüpfung) 27. Januar 2000 Rolf Eichenberger
12
MDX – DDL- und DML-Konstrukte „eine mächtige Abfragesprache“
„Calculated Members“ und „Named Sets“ Hierarchisches Navigieren Zeitserien „Tuples“ und „CROSSJOIN“ Filtern und Sortieren „Top“ und „Bottom“ Analysen Numerische und bedingte Abfragen 27. Januar 2000 Rolf Eichenberger
13
„Calculated Members“ und „Named Sets“
„Calculated Members“ = mit MDX berechnete Elemente WITH MEMBER parent.name AS 'expression' WITH MEMBER Measures.ProfitPercent AS '(Measures.[Store Sales] – Measures.[Store Cost]) / (Measures.[Store Cost])', FORMAT_STRING = '#.00%' SELECT ... FORMAT_STRING = Anzeigeformat „Named Sets“ = mit MDX berechnete Sammlungen WITH SET set.name AS 'expression' 27. Januar 2000 Rolf Eichenberger
14
Hierarchisches Navigieren
PREVMEMBER | CURRENTMEMBER | NEXTMEMBER | PARENT | FIRSTCHILD | LASTCHILD WITH MEMBER Measures.PercentSale AS '([Product].CURRENTMEMBER, Measures.[Unit Sales]) / ([Product].CURRENTMEMBER.PARENT, Measures.[Unit Sales])', FORMAT_STRING = '#.00%' SELECT ... LEAD(-1) | LEAD(0) | LEAD(1) | LAG(1) | LAG(0) | LAG(-1) | ... MEMBER.LEAD(number) 27. Januar 2000 Rolf Eichenberger
15
Zeitserien PARALLELPERIOD = Element an gleicher Stelle in vorheriger Periode (bspw. gleiches Quartal im vorherigen Jahr) OPENINGPERIOD = Element an erster Stelle in der Periode (bspw. erstes Quartal im Jahr) CLOSINGPERIOD = Element an letzter Stelle in der Periode (bspw. letztes Quartal im Jahr) PERIODSTODATE = alle Elemente bis an eine spezifierte Stelle (bspw. alle Quartale bis heute) YTD | QTD | MTD | WTD 27. Januar 2000 Rolf Eichenberger
16
„Tuples“ und „CROSSJOIN“
„Tuples“ = (in Klammern) kombinierte Elemente verschiedener „Dimensions“ Darstellung in der gleichen Achse (bspw. in einem 2D-Diagramm) (member_of_dim_1, member_of_dim_2, ...) „CROSSJOIN“ = Kreuzprodukt zweier Elementmengen CROSSJOIN([Customers].[City].MEMBERS, [Time].[Quarter].MEMBERS) 27. Januar 2000 Rolf Eichenberger
17
Filtern und Sortieren Filtern „Slicing“ Selektieren der Elemente in einer Achse NON EMPTY | FILTER(set, search_condition) FILTER({[Store].[Store City].MEMBERS}, (Measures.[Unit Sales], [Time].[1997])>25000) Sortieren ORDER(set, expression[, ASC | DESC | ...]) 27. Januar 2000 Rolf Eichenberger
18
„Top“ und „Bottom“ Analysen
HEAD = die ersten n Elemente in einem „Set“ TAIL = die letzten n Elemente in einem „Set“ TOPCOUNT | TOPPERCENT | TOPSUM = die n „besten“ Elemente in einem „Set“ BOTTOMCOUNT | BOTTOMPERCENT | BOTTOMSUM = die n „schlechtesten“ Elemente in einem „Set“ 27. Januar 2000 Rolf Eichenberger
19
Numerische und bedingte Abfragen
SUM | COUNT AVG | MEDIAN | MAX | MIN | VAR | STDDEV IIF = Immediate IF ... weitere MDX-Konstrukte sind in der abgegebenen Liste zu finden! 27. Januar 2000 Rolf Eichenberger
20
Fazit MDX ist für „IT-Entwickler“ ein sehr angenehmes und leistungsfähiges Werkzeug. MDX ist für „IT-Anwender“ hingegen kompliziert und schwierig erlernbar. Absicht dieser Sprache ist die Einbettung in Anwendungen, die dem „Business-Entscheider“ vordefinierte Analysen zur Verfügung stellen! 27. Januar 2000 Rolf Eichenberger
21
Literaturempfehlungen
Brosius, Gerhard. Microsoft OLAP Services: Multidimensionale Datenverwaltung im Microsoft SQL Server 7. Addison-Wesley-Longman, Bonn 1999. Nolan, Carl. Introduction to Multidimensional Expressions (MDX). Microsoft Corporation, 27. Januar 2000 Rolf Eichenberger
22
Besten Dank und viel Vergnügen beim Suchen der Schätze, die in den „Cubes“ verborgen sind!
27. Januar 2000 Rolf Eichenberger
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.