SQL OLAP 8 ra MDX nyelv Multidimensional Expressions





![MDX • Members(tag) : a dimenzió hierarchia egyik eleme –[John Doe] –[2001]. [Q 1]. MDX • Members(tag) : a dimenzió hierarchia egyik eleme –[John Doe] –[2001]. [Q 1].](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-6.jpg)
![MDX (Products. Clothing, Measures. Units, Time. [2000]) (Products. Clothing, Measures. Sales, Time. [1999]) (Products. MDX (Products. Clothing, Measures. Units, Time. [2000]) (Products. Clothing, Measures. Sales, Time. [1999]) (Products.](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-7.jpg)












![MDX-query SELECT [<axis_specification> [, <axis_specification>. . . ]] FROM [<cube_specification>] [WHERE [<slicer_specification>]] <axis_specification> : MDX-query SELECT [<axis_specification> [, <axis_specification>. . . ]] FROM [<cube_specification>] [WHERE [<slicer_specification>]] <axis_specification> :](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-20.jpg)
![Minta MDX lekérdezések select {[measures]. [darab]} on columns from forgalom; darab 337 select {[measures]. Minta MDX lekérdezések select {[measures]. [darab]} on columns from forgalom; darab 337 select {[measures].](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-21.jpg)
![Minta MDX lekérdezések select {[measures]. [darab]} on columns, {[kod]. [varos]. members} on rows from Minta MDX lekérdezések select {[measures]. [darab]} on columns, {[kod]. [varos]. members} on rows from](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-22.jpg)

![Minta MDX lekérdezések SET mechanizmus WITH SET [Chardonnay. Chablis] AS '{[Product]. [All Products]. [Drink]. Minta MDX lekérdezések SET mechanizmus WITH SET [Chardonnay. Chablis] AS '{[Product]. [All Products]. [Drink].](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-24.jpg)
![Minta MDX lekérdezések számított mezők WITH MEMBER [Measures]. [Profit. Pct] AS 'Val((Measures. [Store Sales] Minta MDX lekérdezések számított mezők WITH MEMBER [Measures]. [Profit. Pct] AS 'Val((Measures. [Store Sales]](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-25.jpg)






- Slides: 31

SQL – OLAP 8. óra

MDX nyelv (Multidimensional Expressions) A Microsoft által kifejlesztett nyelv az MD modell támogatására - az MS OLAP API felületek része (OLE DB, 1998 -): - hasonló az SQL nyelvhez, de annak nem kiterjesztése - objektum szemléletű - korlátozott MDX-DDL/DML - MDX-DQL - SELECT. . FROM. . WHERE - gazdag függvénykészlet az OLAP funkciókhoz - bővíthető saját függvényekkel

MS OLAP rendszer struktúra Building Using Operational Data (OLE-DB) DB Schema Data Transformations (DTS) Transformation Data Marts (SQL Server & OLAP Server) OLE-DB Managing Data Warehouse Design Data Mart Design (Logical/physical schema/Data flow) (Schema) Scheduling End-User Tools 3 rd Party (Excel, Access, English Query) OLAP Microsoft Repository Data Warehouse Management (Console, Scheduling, Events, Topology) Data Flow Meta-Data Flow

MS OLAP rendszer struktúra OLAP Manager App Rep. App OLAP Server ADO MD MOLAP Store Rep. OLE DB Tensor RDBMS Datasource & ROLAP Store Services DSO

MDX elemek cube cell slice dimension axis dim. slice dim. level measure, calculated member tuple, set
![MDX Memberstag a dimenzió hierarchia egyik eleme John Doe 2001 Q 1 MDX • Members(tag) : a dimenzió hierarchia egyik eleme –[John Doe] –[2001]. [Q 1].](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-6.jpg)
MDX • Members(tag) : a dimenzió hierarchia egyik eleme –[John Doe] –[2001]. [Q 1]. [Jan] • Tuple(tagkészlet): több tag együttese –([Product]. [Drink]. [Beverages], [Customers]. [USA]) –([Product]. [Non-Consumable], [2001]) • Sets(halmaz): tagkészletek halmaza –{[John Doe], [Jane Doe]} –{ ( [Non-Consumable], USA ), ( Beverages, Mexico ) } –[2001]. Children –Top. Count(Store. [Store Name]. Members, 10, Sales)
![MDX Products Clothing Measures Units Time 2000 Products Clothing Measures Sales Time 1999 Products MDX (Products. Clothing, Measures. Units, Time. [2000]) (Products. Clothing, Measures. Sales, Time. [1999]) (Products.](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-7.jpg)
MDX (Products. Clothing, Measures. Units, Time. [2000]) (Products. Clothing, Measures. Sales, Time. [1999]) (Products. Groceries, Measures. Cost, Time. Year. [1997]) Groceries Appliances Clothing 1997 a hivatkozás lehet relatív is: Next. Member Lead(-3) Current. Member Time 1998 1999 2000 2001 t s s Sale Cos Unit Measures

SQL/Server – Analysis Service/Manager adatbázis adatforrások adatkockák dimenziók OLAP/DM modellek védelmi adatok

SQL/Server – Analysis Service/Manager Adatkocka létrehozás 1. forrás adatok ellenőrzése (csak külső forrásból) create table vevo(kod integer primary key, nev char(30), varos char(20)); create table varreg (varos char(20), regio char(20)); create table kategoria (kod integer primary key, nev char(20)); create table termek(kod integer primary key, nev char(20), kat integer references kategoria); create table forgalom (aru integer references termek, vevo integer references vevo, datum datetime, darab integer); 2. forrás adatok létrehozása, elérésének ellenőrzése delete from vevo; insert into vevo values (1, 'peter', 'miskolc'); insert into vevo values (2, 'gabi', 'miskolc'); . . delete from termek; insert into termek values (1, 'kes', 1); insert into termek values (2, 'ollo', 1);

SQL/Server – Analysis Service/Manager 3. Data Source elemek kijelölése több forrás elérési mód is támogatott (pl. ODBC, …)

SQL/Server – Analysis Service/Manager 4. Adatkocka felépítés a forrás adatokból 4. 1 : a tény tábla (fact) kijelölése 4. 2: a változó (measure) mezők kijelölése

SQL/Server – Analysis Service/Manager 5. Dimenziók felvitele azonosítási adatok: NAME: MEMBER KEY COLUMN: MEMBER NAME COLUMN:

SQL/Server – Analysis Service/Manager legrészletezőbb szint legösszegzőbb szint

SQL/Server – Analysis Service/Manager 6. Tárolási formátum megtervezése 6. 1 : MOLAP ROLAP HOLAP 6. 2 Aggregációs mód

SQL/Server – Analysis Service/Manager 7. Kocka feldolgozása 8. Védelmi adatok megadása

SQL/Server – Analysis Service/Manager 9. Interaktív lekérdezés aggregáció szűrések változók

SQL/Server – Analysis Service/Manager Parancssoros lekérdezés

MDX – DDL (limitált használat) CREATE CUBE <cube name> ( <dimensions def> <measures def> [<command expression>] ) create cube proba ( dimension [aru], level [osszaru] type all, level [kategoria], dimension [bolt], level [osszbolt] type all, level [regio], dimension [datum] type time, level [osszido] type all, level [ev] type year, level [nap] type date, measure [ertek] function sum format ‘#. #’, measure [darab] function sum format ‘#. #’) kb. 100 soros teljes szintaxis

MDX – DML (limitált használat) INSERT INTO <cube name> (<dim 1><dim 2>…<dimn> <measure 1>. . <measuren>) SELECT d 1, …. , dn, m 1, . . , mn FROM … insert into proba ([aru]. [kategora], [bolt]. [regio], [measures]. [ertek], [measures]. [darab]) select k. katnev, b. regio, forg f where f. bolt = b. kod and f. aru = t. kod … nincs közvetlen parancsfelület ADO minták
![MDXquery SELECT axisspecification axisspecification FROM cubespecification WHERE slicerspecification axisspecification MDX-query SELECT [<axis_specification> [, <axis_specification>. . . ]] FROM [<cube_specification>] [WHERE [<slicer_specification>]] <axis_specification> :](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-20.jpg)
MDX-query SELECT [<axis_specification> [, <axis_specification>. . . ]] FROM [<cube_specification>] [WHERE [<slicer_specification>]] <axis_specification> : : = <set> ON <axis_name> : : = COLUMNS | ROWS | PAGES | SECTIONS | CHAPTERS | AXIS(<index>) teljes összesítés: SELECT FROM forgalom
![Minta MDX lekérdezések select measures darab on columns from forgalom darab 337 select measures Minta MDX lekérdezések select {[measures]. [darab]} on columns from forgalom; darab 337 select {[measures].](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-21.jpg)
Minta MDX lekérdezések select {[measures]. [darab]} on columns from forgalom; darab 337 select {[measures]. [darab]} on columns, {[aru]. [kod]. members} on rows from forgalom darab kés villa 62. . …
![Minta MDX lekérdezések select measures darab on columns kod varos members on rows from Minta MDX lekérdezések select {[measures]. [darab]} on columns, {[kod]. [varos]. members} on rows from](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-22.jpg)
Minta MDX lekérdezések select {[measures]. [darab]} on columns, {[kod]. [varos]. members} on rows from forg 1 where [aru]. [szerszam] darab varos eger 1 1 dorog pecs 3

Minta MDX lekérdezések gi ó Q: Az eladott termékek éves bontásban Termék Ré USA Asia Europe Juice Cola Milk Cream Toothpaste Soap Pivot Tábla SLICE Dimension Level Row Termék Column Idő Slice Régió Változó név hónap USA Forgalom SELECT {([Time]. [1997]), ([Time]. [1998]. [Q 1]: [Q 3]), [Time]. [1998]. [Q 4]. Children} ON COLUMNS, {([Product]. Members)} ON ROWS FROM Office 2000 WHERE ([Measures]. [Sales Store] , [Region]. [USA])
![Minta MDX lekérdezések SET mechanizmus WITH SET Chardonnay Chablis AS Product All Products Drink Minta MDX lekérdezések SET mechanizmus WITH SET [Chardonnay. Chablis] AS '{[Product]. [All Products]. [Drink].](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-24.jpg)
Minta MDX lekérdezések SET mechanizmus WITH SET [Chardonnay. Chablis] AS '{[Product]. [All Products]. [Drink]. [Alcoholic Beverages]. [Beer and Wine]. [Good]. [Good Chardonnay], …. [Product]. [All Products]. [Drink]. [Alcoholic Beverages]. [Beer and Wine]. [Pearl]. [Pearl Chablis Wine]}' SELECT [Chardonnay. Chablis] ON COLUMNS, {Measures. [Unit Sales]} ON ROWS FROM Sales
![Minta MDX lekérdezések számított mezők WITH MEMBER Measures Profit Pct AS ValMeasures Store Sales Minta MDX lekérdezések számított mezők WITH MEMBER [Measures]. [Profit. Pct] AS 'Val((Measures. [Store Sales]](https://slidetodoc.com/presentation_image_h/20234e3d88de007fefd36de8cda66c80/image-25.jpg)
Minta MDX lekérdezések számított mezők WITH MEMBER [Measures]. [Profit. Pct] AS 'Val((Measures. [Store Sales] - Measures. [Store Cost]) / Measures. [Store Sales])', FORMAT_STRING = 'Percent‘ SELECT { [Store]. [Store Name]. Members} ON COLUMNS, [Measures]. [Profit. Pct] } ON ROWS FROM Sales

Minta MDX lekérdezések Segédfüggvények string kezelő, tömb kezelő, … matematikai aggregate, avg, count, sum, min, max, variance, stddev, correlation, linear regression, median struktúra kezelő ancestor, cousin, first child, parent, next member, members, . . drilldownmember, … drillupmember, …

ADO struktúra Business Application Active Data Objects (with ADO/MD) OLE DB for OLAP OLE DB ADs RDBMS MD STORE Mail Server Active Directory

ADO-MD osztályok Cube. Defs Metadata Dimensions Connection Hierarchies Levels Cellset Members Axes Positions Members Cells

ADO-MD API Set ado. Connection = New ADODB. Connection ado. Connection. Open “Provider=MSOLAP; Data Source=local; Initial Catalog=Foods Set adomd. Catalog = New ADOMD. Catalog Set adomd. Catalog. Active. Connection = ado. Connection Dim Cube. Def As ADOMD. Cube. Def Set Cube. Def = adomd. Catalog. Cube. Defs(…. ) Dimension As ADOMD. Dimension For Each Dimension In Cube. Def. Dimensions Debug. print Dimension. Name Next Set cellset = New ADOMD. Cellset cellset. Open MDX, ado. Connection Column. Count = cellset. Axes(0). Positions. Count Row. Count = cellset. Axes(1). Positions. Count

DSO osztálymodell adatkocka leírása (Decision Support Object) MDStore: • Database • Cube/Virtual Cube • Partition • Aggregation MDStore Dimensions Levels Measures

MDX-Q client MS Pivot. Table Service OLAP metadata proc. DW executor