Multidimensional Expressions MDX Microsoft SQL Server OLAP Services

  • Slides: 22
Download presentation
Multidimensional Expressions (MDX) Microsoft® SQL Server™ OLAP Services

Multidimensional Expressions (MDX) Microsoft® SQL Server™ OLAP Services

Einleitung Was ist MDX? n Microsoft® Terminologie im OLAP Bereich n MDX – Basisabfragen

Einleitung Was ist MDX? n Microsoft® Terminologie im OLAP Bereich n MDX – Basisabfragen Beispiele am „Food. Mart Sales Cube“ n MDX – DDL- und DML-Konstrukte n Fazit n 27. Januar 2000 Rolf Eichenberger 2

Multi. Dimensional EXpressions Ist SQL für OLAP genügend? ü JA. . . aber. .

Multi. Dimensional 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 3

Multi. Dimensional EXpressions DDL und DML für multidimensionale Daten [ Definieren, Ändern und Abfragen]

Multi. Dimensional EXpressions DDL und DML für multidimensionale Daten [ Definieren, Ändern und Abfragen] n Standard im OLAP Bereich? n ü 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, . . . [ http: //www. microsoft. com/data/oledb/olap/indsupp. htm] 27. Januar 2000 Rolf Eichenberger 4

Konzepte - Microsoft® Terminologie n „Cubes“ • Grundkonzept in OLAP • multidimensionale Strukturen [maximal

Konzepte - Microsoft® Terminologie n „Cubes“ • Grundkonzept in OLAP • multidimensionale Strukturen [maximal 64 Dimensionen] n „Dimensions“ • Beschreibung der Kategorien in (multiplen) Hierarchiestufen • „private“ oder „shared“ n „Measures“ • ist eine spezielle „Dimension“ • Werte für die Analyse 27. Januar 2000 Rolf Eichenberger 5

MDX – Basisabfragen n Achsen_Spezifizierung = Selektieren der „Members“ für die entsprechende Achse •

MDX – Basisabfragen n Achsen_Spezifizierung = Selektieren der „Members“ für die entsprechende Achse • ON COLUMNS ¦ ROWS ¦ PAGES ¦ CHAPTERS ¦ SECTIONS AXIS(0). . . AXIS(63) 27. Januar 2000 Rolf Eichenberger 6

„Food. Mart Sales Cube“ – „Dimensions“ 27. Januar 2000 Rolf Eichenberger 7

„Food. Mart Sales Cube“ – „Dimensions“ 27. Januar 2000 Rolf Eichenberger 7

„Food. Mart Sales Cube“ – „Measures“ 27. Januar 2000 Rolf Eichenberger 8

„Food. Mart Sales Cube“ – „Measures“ 27. Januar 2000 Rolf Eichenberger 8

Beispiel [alle Messwerte der Städte in „CA“ und „WA“] n n „MEMBERS“ = alle

Beispiel [alle Messwerte der Städte in „CA“ und „WA“] n n „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 9

Beispiel [alle Messwerte der Geschäfte in „CA“] n „DESCENDANTS“: DESCENDANTS (member, level[, flag]) „drill

Beispiel [alle Messwerte der Geschäfte in „CA“] n „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 10

Beispiel - Spezifizierung der Messwerte [„Sales Average“ für alle Geschäftstypen in allen Staaten] n

Beispiel - Spezifizierung der Messwerte [„Sales Average“ für alle Geschäftstypen in allen Staaten] n n 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 11

MDX – DDL- und DML-Konstrukte „eine mächtige Abfragesprache“ n n n n „Calculated Members“

MDX – DDL- und DML-Konstrukte „eine mächtige Abfragesprache“ n n n n „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 12

„Calculated Members“ und „Named Sets“ n „Calculated Members“ = mit MDX berechnete Elemente WITH

„Calculated Members“ und „Named Sets“ n „Calculated Members“ = mit MDX berechnete Elemente WITH MEMBER parent. name AS 'expression' § WITH MEMBER Measures. Profit. Percent AS '(Measures. [Store Sales] – Measures. [Store Cost]) / (Measures. [Store Cost])', FORMAT_STRING = '#. 00%' SELECT. . . FORMAT_STRING = Anzeigeformat n „Named Sets“ = mit MDX berechnete Sammlungen WITH SET set. name AS 'expression' 27. Januar 2000 Rolf Eichenberger 13

Hierarchisches Navigieren 1. PREVMEMBER | CURRENTMEMBER | NEXTMEMBER | PARENT | FIRSTCHILD | LASTCHILD

Hierarchisches Navigieren 1. PREVMEMBER | CURRENTMEMBER | NEXTMEMBER | PARENT | FIRSTCHILD | LASTCHILD 1. WITH MEMBER Measures. Percent. Sale AS '([Product]. CURRENTMEMBER, Measures. [Unit Sales]) / ([Product]. CURRENTMEMBER. PARENT, Measures. [Unit Sales])', FORMAT_STRING = '#. 00%' 2. SELECT. . . 2. LEAD(-1) | LEAD(0) | LEAD(1) |. . . LAG(1) | LAG(0) | LAG(-1) |. . . 1. MEMBER. LEAD(number) 27. Januar 2000 Rolf Eichenberger 14

Zeitserien n PARALLELPERIOD = Element an gleicher Stelle in vorheriger Periode (bspw. gleiches Quartal

Zeitserien n PARALLELPERIOD = Element an gleicher Stelle in vorheriger Periode (bspw. gleiches Quartal im vorherigen Jahr) n OPENINGPERIOD = Element an erster Stelle in der Periode (bspw. erstes Quartal im Jahr) n CLOSINGPERIOD = Element an letzter Stelle in der Periode (bspw. letztes Quartal im Jahr) n PERIODSTODATE = alle Elemente bis an eine spezifierte Stelle (bspw. alle Quartale bis heute) n YTD | QTD | MTD | WTD 27. Januar 2000 Rolf Eichenberger 15

„Tuples“ und „CROSSJOIN“ n „Tuples“ = (in Klammern) kombinierte Elemente verschiedener „Dimensions“ Darstellung in

„Tuples“ und „CROSSJOIN“ n „Tuples“ = (in Klammern) kombinierte Elemente verschiedener „Dimensions“ Darstellung in der gleichen Achse (bspw. in einem 2 D-Diagramm) 1. (member_of_dim_1, member_of_dim_2, . . . ) n „CROSSJOIN“ = Kreuzprodukt zweier Elementmengen 1. CROSSJOIN([Customers]. [City]. MEMBERS, [Time]. [Quarter]. MEMBERS) 27. Januar 2000 Rolf Eichenberger 16

Filtern und Sortieren n Filtern „Slicing“ Selektieren der Elemente in einer Achse NON EMPTY

Filtern und Sortieren n 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) n Sortieren ORDER(set, expression[, ASC | DESC |. . . ]) 27. Januar 2000 Rolf Eichenberger 17

„Top“ und „Bottom“ Analysen n HEAD = die ersten n Elemente in einem „Set“

„Top“ und „Bottom“ Analysen n 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“ n BOTTOMCOUNT | BOTTOMPERCENT | BOTTOMSUM = die n „schlechtesten“ Elemente in einem „Set“ 27. Januar 2000 Rolf Eichenberger 18

Numerische und bedingte Abfragen n SUM AVG IIF | | = COUNT MEDIAN |

Numerische und bedingte Abfragen n SUM AVG IIF | | = COUNT MEDIAN | MAX | MIN | VAR | STDDEV Immediate IF . . . weitere MDX-Konstrukte sind in der abgegebenen Liste zu finden! 27. Januar 2000 Rolf Eichenberger 19

Fazit MDX ist für „IT-Entwickler“ ein sehr angenehmes und leistungsfähiges Werkzeug. n MDX ist

Fazit MDX ist für „IT-Entwickler“ ein sehr angenehmes und leistungsfähiges Werkzeug. n 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! n 27. Januar 2000 Rolf Eichenberger 20

Literaturempfehlungen n Brosius, Gerhard. Microsoft OLAP Services: Multidimensionale Datenverwaltung im Microsoft SQL Server 7.

Literaturempfehlungen n Brosius, Gerhard. Microsoft OLAP Services: Multidimensionale Datenverwaltung im Microsoft SQL Server 7. Addison-Wesley-Longman, Bonn 1999. n Nolan, Carl. Introduction to Multidimensional Expressions (MDX). Microsoft Corporation, 1999. http: //msdn. microsoft. com/library/techart/intromdx. htm 27. Januar 2000 Rolf Eichenberger 21

Besten Dank und viel Vergnügen beim Suchen der Schätze, die in den „Cubes“ verborgen

Besten Dank und viel Vergnügen beim Suchen der Schätze, die in den „Cubes“ verborgen sind! 27. Januar 2000 Rolf Eichenberger 22