atlanta.mdf mdx overview. what is mdx? mdx is multi dimensional expressions mdx is the syntax for...

31
Atlanta.MDF MDX Overview

Upload: ben-arendale

Post on 14-Dec-2015

232 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Atlanta.MDF

MDX Overview

Page 2: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

What Is MDX?

• MDX is Multi Dimensional EXpressions• MDX is the syntax for querying an Analysis

Services database• MDX is part of the OLE DB for

OLAP spec• MDX is the key for all advanced analytical

capabilities ofAnalysis Services

Page 3: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Comparison To SQL

SQL Construct OLAP construct

SELECT… SELECT… (MDX)

CREATE… DSO object model

DROP…

INSERT…

DELETE…

Page 4: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

MDX Basics

• MDX allows easy navigation in the multi dimensional space

• It “understands” the MD concepts of cube, dimension, level, memberand cell

• It is used for – Queries – full statements (SELECT…

FROM)– Business modeling – defining

calculated members using MDX Expressions – not a full statement

Page 5: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

MDX Queries vs. MDX Expressions

• MDX Queries– Full statements (SELECT…FROM)– Usually generated by a query tools and

applications such as Excel– MDX Sample App deals in queries

• MDX Expressions – Partial MDX statements – Define a calculated member, or a set, or

member properties, etc.– Returns a single value (which may

be a set)

Page 6: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

MDX Myth

Fact: MDX is used everywhere:Fact: MDX is used everywhere: Calculated membersCalculated members Security settingsSecurity settings Custom member rollupCustom member rollup Custom level rollupCustom level rollup ActionsActions Define named “Sets”Define named “Sets” Calculated cellsCalculated cells

““Only developers need to know MDX”Only developers need to know MDX”

Page 7: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

MDX Constructs• Members: an item in a hierarchy

– [John Doe]– [2001]– [2001].[Q1].[Jan]

• Tuple: an intersection of 2 or more members– ([Product].[Drink].[Beverages], [Customers].[USA])– ([Product].[Non-Consumable], [2001])

• Sets: a group of tuples or members– {[John Doe], [Jane Doe]}– { ( [Non-Consumable], USA ), ( Beverages, Mexico ) }– [2001].Children– TopCount(Store.[Store Name].

Members, 10, Sales)

Page 8: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

GroceriesGroceries

ClothingClothingAppliancesAppliances

SalesSales CostCostUnitsUnits

Every Cell Has A Name...

19991999

20002000

20012001

19981998

19971997

MeasuresMeasures

Time

Time

Products

Products

Page 9: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

GroceriesGroceries

ClothingClothingAppliancesAppliances

SalesSales CostCostUnitsUnits

(Products.Clothing, Measures.Units, Time.[2000])(Products.Clothing, Measures.Units, Time.[2000])Every Cell Has A Name...

19991999

20002000

20012001

19981998

19971997

MeasuresMeasures

Time

Time

Products

Products

Page 10: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

GroceriesGroceries

ClothingClothingAppliancesAppliances

SalesSales CostCostUnitsUnits

(Products.Clothing, Measures.Units, Time.[2000])(Products.Clothing, Measures.Units, Time.[2000])

(Products.Clothing, Measures.Sales, Time.[1999])(Products.Clothing, Measures.Sales, Time.[1999])

Every Cell Has A Name...

19991999

20002000

20012001

19981998

19971997

MeasuresMeasures

Time

Time

Products

Products

Page 11: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

GroceriesGroceries

ClothingClothingAppliancesAppliances

SalesSales CostCostUnitsUnits

(Products.Clothing, Measures.Units, Time.[2000])(Products.Clothing, Measures.Units, Time.[2000])

(Products.Clothing, Measures.Sales, Time.[1999])(Products.Clothing, Measures.Sales, Time.[1999])

(Products.Groceries, Measures.Cost, Time.Year.[1997])(Products.Groceries, Measures.Cost, Time.Year.[1997])

Every Cell Has A Name...

19991999

20002000

20012001

19981998

19971997

MeasuresMeasures

Time

Time

Products

Products

Page 12: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

19991999

20002000

20012001

GroceriesGroceries

ClothingClothingAppliancesAppliances

SalesSales CostCost UnitsUnits

(Products.Clothing, Measures.Units, Time.[2000]) =(Products.Clothing, Measures.Units, Time.[2000]) =(Products.CurrentMember, (Products.CurrentMember,

Measures.CurrentMember, Measures.CurrentMember, Time.CurrentMember)Time.CurrentMember)

19981998

19971997

The Current Cell: Currentmember

Page 13: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

20002000

ClothingClothing

SalesSales

??

Naming Cells With Relative References...

Page 14: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

20002000

ClothingClothing

SalesSales

??

??

Naming Cells With Relative References...

(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)

Page 15: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

20002000

ClothingClothing

SalesSales

??

??

??

Naming Cells With Relative References...

(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)

(Products.Clothing, Measures.Sales, Time.[2000].NextMember)(Products.Clothing, Measures.Sales, Time.[2000].NextMember)

Page 16: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

(Products.Clothing, Measures.Sales.PrevMember, Time.[2000].Lag(3))(Products.Clothing, Measures.Sales.PrevMember, Time.[2000].Lag(3))

20002000

ClothingClothing

SalesSales

??

??

??

Naming Cells With Relative References...(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)(Products.Clothing, Measures.Sales, Time.[2000].PrevMember)

(Products.Clothing, Measures.Sales, Time.[2000].NextMember)(Products.Clothing, Measures.Sales, Time.[2000].NextMember)

OROR

(Products.Clothing, (Products.Clothing, Measures.Sales.PrevMember,Measures.Sales.PrevMember,Time.[2000].Time.[2000].Lead(-3)Lead(-3)))

Page 17: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Calculated Members

• Calculated members add significant power to Analysis cubes

Pre-define complex Pre-define complex business logicbusiness logic

Usually create Usually create calculated calculated measuresmeasures

Computed at run-Computed at run-timetime

Page 18: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

1. How Did Sales This Period Compare With Sales In The Previous Period?

Year Qtr Mon Sales2000 790

Q1 120Jan 30Feb 40Mar 50

Q2 200Apr 65May 45Jun 90

Q3 185Jul 55Aug 60Sep 70

Q4 285Oct 80Nov 100Dec 105

Page 19: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Qtr Mon Sales DeltaQ2 200 80

Apr 65 15

May 45 -20

Jun 90 45

1. How Did Sales This Period Compare With Sales In The Previous Period?

(Time.CurrentMember, Measures.CurrentMember) =(Time.CurrentMember, Measures.CurrentMember) =

Page 20: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Qtr Mon Sales DeltaQ2 200 80

Apr 65 15

May 45 -20

Jun 90 45

1. How Did Sales This Period Compare With Sales In The Previous Period?

(Time.CurrentMember, Measures.CurrentMember) =(Time.CurrentMember, Measures.CurrentMember) =

(Time.CurrentMember, Measures.Sales) -(Time.CurrentMember, Measures.Sales) -

Page 21: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Qtr Mon Sales DeltaQ2 200 80

Apr 65 15

May 45 -20

Jun 90 45

(Time.CurrentMember.PrevMember, Measures.Sales)(Time.CurrentMember.PrevMember, Measures.Sales)

1. How Did Sales This Period Compare With Sales In The Previous Period?

(Time.CurrentMember, Measures.CurrentMember) =(Time.CurrentMember, Measures.CurrentMember) =

(Time.CurrentMember, Measures.Sales) (Time.CurrentMember, Measures.Sales)

--

Page 22: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Year Qtr Mon Sales Delta2000 790

Q1 120Jan 30Feb 40 10Mar 50 10

Q2 200 80Apr 65 15May 45 -20Jun 90 45

Q3 185 -15Jul 55 -35Aug 60 15Sep 70 10

Q4 285 100Oct 80 10Nov 100 20Dec 105 5

Results For Question 1:

Page 23: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

2. How Did Sales In The Current Period Compare With Sales In The Same Period Last Year?

Year Qtr Mon Sales2000 790

Q1 120Jan 30Feb 40Mar 50

Q4 285Oct 80Nov 100Dec 105

2001 850 Q1 170

Jan 50Feb 55Mar 65

Q4 275Oct 90Nov 100Dec 85

Page 24: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Year Qtr Mon Sales Annual Delta2000 790

Q1 120Jan 30Feb 40Mar 50

2001 850

Q1 170Jan 50 20

Feb 55Mar 65

2. How Did Sales In The Current Period Compare With Sales In The Same Period Last Year?

(Time.CurrentMember, Measures.Sales)-

(Time.CurrentMember.Lag(12), Measures.Sales)

Page 25: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Year Qtr Mon Sales Annual Delta2000 790

Q1 120Jan 30Feb 40Mar 50

2001 850 Q1 170

Jan 50 20Feb 55Mar 65

2. How Did Sales In The Current Period Compare With Sales In The Same Period Last Year?

(ParallelPeriod(Year,1,Time.CurrentMember), Measures.Sales)

(Time.CurrentMember,Lag(12), Measures.Sales)

(Time.CurrentMember, Measures.Sales)-

Page 26: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Year Qtr Mon Sales Ann. Delta2000 790

Q1 120Jan 30Feb 40Mar 50

Q4 285Oct 80Nov 100Dec 105

2001 850 60 Q1 170 50

Jan 50 20Feb 55 15Mar 65 15

Q4 275 -10Oct 90 10Nov 100 0Dec 85 -20

Results For Question 2:

Page 27: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

3. What Have My Sales Been Since The Beginning Of The Year?

Year Qtr Mon Sales2000 790

Q1 120Jan 30Feb 40Mar 50

Q2 200Apr 65May 45Jun 90

Q3 185Jul 55Aug 60Sep 70

Q4 285Oct 80Nov 100Dec 105

Page 28: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Time.Mar,Measures.Sales ...Time.Mar,Measures.Sales ...

Time.Jan,Measures.SalesTime.Jan,Measures.Sales ++Time.Feb,Measures.SalesTime.Feb,Measures.Sales ++

3. What Have Sales Been Since The Beginning Of The Year?

Year Qtr Mon Sales YTD2000 790

Q1 120 120

Jan 30 30

Feb 40 70

Mar 50 120

Page 29: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Time.Mar,Measures.SalesTime.Mar,Measures.Sales

Time.Jan,Measures.SalesTime.Jan,Measures.Sales ++Time.Feb,Measures.SalesTime.Feb,Measures.Sales ++

3. What Have Sales Been Since The Beginning Of The Year?

==Sum(YTD(Time.CurrentMember), Sales)Sum(YTD(Time.CurrentMember), Sales)

Year Qtr Mon Sales YTD2000 790

Q1 120 120

Jan 30 30

Feb 40 70

Mar 50 120

Page 30: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Year Qtr Mon Sales YTD2000 790

Q1 120 120Jan 30 30Feb 40 70Mar 50 120

Q2 200 320Apr 65 185May 45 230Jun 90 320

Q3 185 505Jul 55 375Aug 60 435Sep 70 505

Q4 285 790Oct 80 585Nov 100 685Dec 105 790

Results For Question 3:

Page 31: Atlanta.MDF MDX Overview. What Is MDX? MDX is Multi Dimensional EXpressions MDX is the syntax for querying an Analysis Services database MDX is part of

Questions