28
A SQL Server Developer’s Guide to MDX Basics Shabnam Watson

A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

A SQL Server Developer’s Guide to

MDX Basics

Shabnam Watson

Page 2: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Presentation Goal and Audience

What will you learn? Basic concepts of a multidimensional SSAS cube from a

querying perspective.

Write basic MDX queries to run from SSMS, SSRS, etc.

Who is this for? Application Developers, BI Developers, QA team.

Requirements Understanding of basic dimensional modeling concepts

An above novice-level of SQL authoring skills

Cursory experience with SSAS and MDX

5/6/2016 | ABI Cube2 |

Page 3: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

About Me

15 years of experience working with Microsoft

SQL Server

Independent consultant working as a BI architect

and developer.

Focus on SSAS and MDX

Email: [email protected]

Blog: https://shabnamwatson.wordpress.com

Twitter: @shbWatson

5/6/2016 | ABI cube3 |

Page 4: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Agenda

Data Warehouse Concepts

SSAS Multidimensional Data Model

Measures/Dimensions

MDX

Capturing MDX Queries

5/6/2016 | ABI Cube4 |

Page 5: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Multi Dimensional EXpressions (MDX)

5/6/2016 | ABI Cube5 |

• SQL Server 2012: SSAS Multi-Dimensional

(MD) and Tabular.

• MDX: Language of SSAS in MD.

• MDX queries.

• MDX script.

Page 6: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Data Warehouse Concepts

5/6/2016 |ABI cube

6 |

• Fact tables

• Dimension tables

• Star Schema

• Joins

Page 7: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

SQL Server

5/6/2016 | ABI Cube7 |

Server

Database

Tables

Page 8: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

SSAS Data Model

5/6/2016 |ABI cube

8 |

Fact Tables

Dimension

Tables

Measure

Groups

Dimensions

Cube

A multi-dimensional data structure: Detail Data and Aggregations.

Relationships between tables/objects already defined.

Page 9: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

SSAS Data Model

5/6/2016 | ABI Cube9 |

[Sales Amount]

Product

Customer

Date 2005 Sales Amount

2006 Sales Amount

2007 Sales Amount

2008 Sales Amount

All Products & Customers

Sum of Sales Amount

Slices

Page 10: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

SSAS Server

5/6/2016 | ABI Cube10 |

Server

Database

Cube•Measure Groups

•Dimensions

AdevntureWorksDW2012Multidimensional

Page 11: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Measures

5/6/2016 | ABI Cube11 |

Numerical Values

Predefined aggregations

Sum, Min, Max, Avg, …

Measures return aggregated results unless

broken down by dimensions.

[Measures].[Internet Sales Amount]

Page 12: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Dimensions

5/6/2016 | ABI Cube12 |

DimDate

[Date].[Calendar Quarter]

Page 13: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Hierarchies

5/6/2016 | ABI Cube13 |

Navigational Paths or Data Rollups

Day Month Quarter Year

Page 14: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

User Defined Hierarchies

5/6/2016 | ABI Cube14 |

Attributes Levels. All level: All Periods.

[Dimension].[Hierarchy].[Level].[Member]

[Date].[Calendar].[Calendar Quarter].[CY Q1]

Page 15: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Attribute Hierarchies

5/6/2016 | ABI Cube15 |

[Dimension].[Hierarchy].[Level].[Member]

Each attribute has a built in hierarchy with

the same name.

Two levels: All Level Attribute Level

[Date].[Calendar Quarter of Year].[Calendar Quarter of Year].[CY Q1]

[Date].[Calendar Quarter of Year].Members

[Date].[Calendar Quarter of Year].[Calendar Quarter of Year].Members

Page 16: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Axis

5/6/2016 | ABI Cube16 |

Columns

Rows

Columns 0

Rows 1

Pages 2

Chapters 3

Sections 4

Page 17: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Parts of Query and Execution Stages

5/6/2016 | ABI Cube17 |

From

Where (Slicer)

With Set

Axis

Cells

With Set/Cal

Member…

SELECT

… ON COLUMNS

… ON ROWS

FROM

WHERE

Independently

Page 18: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Columns Only Query

5/6/2016 | ABI Cube18 |

SELECT {[Measures].[Internet Sales Amount]}ON COLUMNSFROM [Adventure Works]

SELECT SUM([SalesAmount]) AS SalesAmountFROM [dbo].[FactInternetSales]

SQL MDX

SELECT, FROM SELECT, FROM

SUM() Aggregation predefined.

From table. From Cube.

Page 19: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Rows and Columns

5/6/2016 | ABI Cube19 |

SELECT dc.EnglishOccupation,SUM([SalesAmount]) ASSalesAmountFROM [dbo].[FactInternetSales] fISJOIN DimCustomer dcON fIS.CustomerKey = dc.CustomerKeyGROUP BY dc.EnglishOccupation

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,[Customer].[Occupation].[Occupation].MEMBERS ON ROWSFROM [Adventure Works]

Page 20: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

More Basic Functions/Concepts

5/6/2016 | ABI Cube20 |

{…,…,...}

NON EMPTY

WHERE

MEMBERS

TUPLE

CALCULATED MEMBERS, CURRENTMEMBER

CROSSJOIN

Page 21: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

5/6/2016 | ABI Cube21 |

Demo …

SQLMDX

Page 22: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Functions to Learn Next

5/6/2016 | ABI Cube22 |

NONEMPTY (not the same as NON EMPTY)

FILTER

ORDER

CHILDREN

DESCENDANTS

Page 23: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Looking at MDX Queries

5/6/2016 | ABI Cube23 |

Excel

Free Pivot Table Extensions add in from CodePlex:

https://olappivottableextend.codeplex.com/

MDX tab --> Format with Web Service.

SQL Server Profiler

Trace

Event: Query End.

Page 24: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Demo …

5/6/2016 | ABI Cube24 |

MDX

Page 25: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Pivot Table Extensions

5/6/2016 | ABI cube25 |

Page 26: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Profiler

5/6/2016 | ABI Cube26 |

Page 27: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Review

5/6/2016 | ABI cube27 |

Numeric Columns Measures in Measure Groups

Descriptive Columns Attributes /Hierarchies in

Dimensions

Grid:

Axis: Rows and Columns

Cells: Middle

SELECT .. ON .. FROM … WHERE ….

Page 28: A SQL Server Developer’s Guide to MDX Basics · A SQL Server Developer’s Guide to MDX Basics Shabnam Watson. Presentation Goal and Audience What will you learn? Basic concepts

Resources

5/6/2016 | ABI cube28 |

Books

MDX Solutions: With Microsoft SQL Server Analysis

Services 2005 and Hyperion Essbase 2nd Edition.

Microsoft SQL Server 2008 Analysis Services Unleashed

Online

MDX Language Reference

https://msdn.microsoft.com/en-us/library/ms145595.aspx