Multidimensional Expressions MDX Microsoft SQL Server OLAP Services
- Slides: 22
Multidimensional Expressions (MDX) Microsoft® SQL Server™ OLAP Services
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. . . 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] 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 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 • 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“ – „Measures“ 27. Januar 2000 Rolf Eichenberger 8
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 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 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“ 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 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 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 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 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 | 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“ 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 | 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 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. 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 sind! 27. Januar 2000 Rolf Eichenberger 22
- Microsoft sql server 2005 analysis services
- Microsoft sql server machine learning services
- Mdx microsoft
- Multidimensional expressions
- Microsoft sql server introduction
- Microsoft sql server security best practices
- Sql server data virtualization
- Sql server management studio express
- Parallel data warehouse sql server 2012
- Xxxdbo
- Kereberos
- Azure sql edge raspberry pi
- Microsoft sql server security best practices
- Microsoft sql server compact edition
- Olap functions
- Oltp and olap in sql
- How many tier data warehouse architecture?
- Sql master data services
- Sql server analysis services 2012
- Sql server reporting services architecture
- Microsoft azure olap
- Proxy server mts
- Library search mdx