OLAP Systems and Multidimensional Expressions II

Similar documents
OLAP Systems and Multidimensional Queries II

OLAP Systems and Multidimensional Expressions I

Learning Objectives. Definition of OLAP Data cubes OLAP operations MDX OLAP servers

TUTORIAL: Introduction to Multidimensional Expressions (MDX)

Data Warehousing OLAP

DATA WAREHOUSING - OLAP

1. OLAP is an acronym for a. Online Analytical Processing b. Online Analysis Process c. Online Arithmetic Processing d. Object Linking and Processing

Course 6234A: Implementing and Maintaining Microsoft SQL Server 2008 Analysis Services

Bussiness Intelligence and Data Warehouse. Tomas Bartos CIS 764, Kansas State University

Implementing Data Models and Reports with Microsoft SQL Server

Implementing Data Models and Reports with Microsoft SQL Server 2012 MOC 10778

Data Integration and ETL Process

Data W a Ware r house house and and OLAP II Week 6 1

Building Data Cubes and Mining Them. Jelena Jovanovic

Cognos 8 Best Practices

Data Warehousing and Decision Support. Introduction. Three Complementary Trends. Chapter 23, Part A

Decision Support. Chapter 23. Database Management Systems, 2 nd Edition. R. Ramakrishnan and J. Gehrke 1

University of Gaziantep, Department of Business Administration

Data Warehouse: Introduction

Week 3 lecture slides

Implementing Data Models and Reports with Microsoft SQL Server 20466C; 5 Days

IST722 Data Warehousing

Monitoring Genebanks using Datamarts based in an Open Source Tool

Analytics with Excel and ARQUERY for Oracle OLAP

2074 : Designing and Implementing OLAP Solutions Using Microsoft SQL Server 2000

DATA CUBES E Jayant Haritsa Computer Science and Automation Indian Institute of Science. JAN 2014 Slide 1 DATA CUBES

Microsoft Implementing Data Models and Reports with Microsoft SQL Server

<Insert Picture Here> Enhancing the Performance and Analytic Content of the Data Warehouse Using Oracle OLAP Option

Multi-dimensional index structures Part I: motivation

Anwendersoftware Anwendungssoftwares a. Data-Warehouse-, Data-Mining- and OLAP-Technologies. Online Analytic Processing

Hybrid OLAP, An Introduction

70-467: Designing Business Intelligence Solutions with Microsoft SQL Server

M Designing and Implementing OLAP Solutions Using Microsoft SQL Server Day Course

Implementing Data Models and Reports with Microsoft SQL Server

The Art of Designing HOLAP Databases Mark Moorman, SAS Institute Inc., Cary NC

PREFACE INTRODUCTION MULTI-DIMENSIONAL MODEL. Chris Claterbos, Vlamis Software Solutions, Inc.

Web Log Data Sparsity Analysis and Performance Evaluation for OLAP

SQL Server 2012 Business Intelligence Boot Camp

Data Warehouse design

MS 50511A The Microsoft Business Intelligence 2010 Stack

OLAP & DATA MINING CS561-SPRING 2012 WPI, MOHAMED ELTABAKH

Part 22. Data Warehousing

With BIGDATA comes BIG responsibility: Practical exploiting of MDX injections. Dmitry Chastuhin Alexander Bolshev

LEARNING SOLUTIONS website milner.com/learning phone

Data Warehouse Design

Data Integration and ETL Process

Upon successful completion of this course, a student will meet the following outcomes:

Microsoft SQL Server OLAP Solution A Survey

Distance Learning and Examining Systems

Using ORACLE tools to generate Multidimensional Model in Warehouse.

Analysis Services Step by Step

SQL Server 2012 End-to-End Business Intelligence Workshop

MS 20467: Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Business Benefits From Microsoft SQL Server Business Intelligence Solutions How Can Business Intelligence Help You? PTR Associates Limited

Delivering Business Intelligence With Microsoft SQL Server 2005 or 2008 HDT922 Five Days

Data Warehousing & Data Mining

Review. Data Warehousing. Today. Star schema. Star join indexes. Dimension hierarchies

Business Intelligence in SharePoint 2013

SAS BI Course Content; Introduction to DWH / BI Concepts

Overview. Data Warehousing and Decision Support. Introduction. Three Complementary Trends. Data Warehousing. An Example: The Store (e.g.

A Technical Review on On-Line Analytical Processing (OLAP)

OLAP and Data Warehousing! Introduction!

CS2032 Data warehousing and Data Mining Unit II Page 1

Business Intelligence, Analytics & Reporting: Glossary of Terms

SQL Server Analysis Services Complete Practical & Real-time Training

CHAPTER 4 Data Warehouse Architecture

Business Intelligence: Effective Decision Making

Turkish Journal of Engineering, Science and Technology

End to End Microsoft BI with SQL 2008 R2 and SharePoint 2010

Tutorials for Project on Building a Business Analytic Model Using Data Mining Tool and Data Warehouse and OLAP Cubes IST 734

GEHC IT Solutions. Centricity Practice Solution. Centricity Analytics 3.0

Turning your Warehouse Data into Business Intelligence: Reporting Trends and Visibility Michael Armanious; Vice President Sales and Marketing Datex,

The Microsoft Business Intelligence 2010 Stack Course 50511A; 5 Days, Instructor-led

ORACLE OLAP. Oracle OLAP is embedded in the Oracle Database kernel and runs in the same database process

Data Warehousing: Data Models and OLAP operations. By Kishore Jaladi

SQL SERVER TRAINING CURRICULUM

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 16 - Data Warehousing

Introduction to Data Warehousing. Ms Swapnil Shrivastava

Data Warehousing. Paper

Database Applications. Advanced Querying. Transaction Processing. Transaction Processing. Data Warehouse. Decision Support. Transaction processing

DATA WAREHOUSING AND OLAP TECHNOLOGY

Designing Business Intelligence Solutions with Microsoft SQL Server 2012 Course 20467A; 5 Days

Report Model (SMDL) Alternatives in SQL Server A Guided Tour of Microsoft Business Intelligence

Microsoft End to End Business Intelligence Boot Camp

Business Intelligence for SUPRA. WHITE PAPER Cincom In-depth Analysis and Review

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 29-1

OLAP Theory-English version

Oracle OLAP 11g and Oracle Essbase

MOC 20467B: Designing Business Intelligence Solutions with Microsoft SQL Server 2012

ROLAP with Column Store Index Deep Dive. Alexei Khalyako SQL CAT Program Manager

8. Business Intelligence Reference Architectures and Patterns

Transcription:

OLAP Systems and Multidimensional Expressions II Krzysztof Dembczyński Intelligent Decision Support Systems Laboratory (IDSS) Poznań University of Technology, Poland Software Development Technologies Master studies, first semester Academic year 2014/15 (winter course) 1 / 31

Review of the previous lectures Mining of massive datasets Evolution of database systems: operational vs. analytical systems. Dimensional modeling. Operational vs. analytical systems. Extraction, transformation and load of data. 2 / 31

Review of the previous lectures Mining of massive datasets Evolution of database systems: operational vs. analytical systems. Dimensional modeling. Operational vs. analytical systems. Extraction, transformation and load of data. OLAP Systems and Multidimensional Expressions III: 2 / 31

Review of the previous lectures Mining of massive datasets Evolution of database systems: operational vs. analytical systems. Dimensional modeling. Operational vs. analytical systems. Extraction, transformation and load of data. OLAP Systems and Multidimensional Expressions III: ROLAP SQL 2 / 31

Review of the previous lectures Mining of massive datasets Evolution of database systems: operational vs. analytical systems. Dimensional modeling. Operational vs. analytical systems. Extraction, transformation and load of data. OLAP Systems and Multidimensional Expressions III: ROLAP SQL MOLAP 2 / 31

Review of the previous lectures Mining of massive datasets Evolution of database systems: operational vs. analytical systems. Dimensional modeling. Operational vs. analytical systems. Extraction, transformation and load of data. OLAP Systems and Multidimensional Expressions III: ROLAP SQL MOLAP... 2 / 31

Outline 1 Motivation 2 MDX 3 Summary 3 / 31

Outline 1 Motivation 2 MDX 3 Summary 4 / 31

Multidimensional reports OLAP servers provide an effective solution for accessing and processing large volumes of high dimensional data. OLAP systems provide tools for multidimensional reporting. 5 / 31

Querying OLAP systems We can use SQL to query OLAP systems: SELECT Name, AVG(Grade) FROM Students grades G, Student S WHERE G.Student = S.ID GROUP BY Name; 6 / 31

Querying OLAP systems We can use SQL to query OLAP systems: SELECT Name, AVG(Grade) FROM Students grades G, Student S WHERE G.Student = S.ID GROUP BY Name; But the query result is a relational table, not a multidimensional report. 6 / 31

Querying OLAP systems We can use SQL to query OLAP systems: SELECT Name, AVG(Grade) FROM Students grades G, Student S WHERE G.Student = S.ID GROUP BY Name; But the query result is a relational table, not a multidimensional report. We need a query language for multidimensional reporting. 6 / 31

Querying OLAP systems We can use SQL to query OLAP systems: SELECT Name, AVG(Grade) FROM Students grades G, Student S WHERE G.Student = S.ID GROUP BY Name; But the query result is a relational table, not a multidimensional report. We need a query language for multidimensional reporting. MDX (Multidimensional Expressions) is a language of this kind. 6 / 31

Outline 1 Motivation 2 MDX 3 Summary 7 / 31

Multidimensional expressions For OLAP queries, MDX is an alternative to SQL. 8 / 31

Multidimensional expressions For OLAP queries, MDX is an alternative to SQL. MDX SELECT {[Time].[1997],[Time].[1998]} ON COLUMNS, {[Measures].[Sales],[Measures].[Cost]} ON ROWS FROM Warehouse WHERE ([Store].[All Stores].[USA]) 8 / 31

An MDX query must contain the following information: The number of axes on which the result is presented. The set of tuples to include on each axis of the MDX query. The name of the cube that sets the context of the MDX query. The set of members or tuples to include on the slicer axis. 9 / 31

The syntax of a basic MDX query that includes the use of the SELECT, FROM, and WHERE clauses: [WITH <SELECT WITH clause> [, <SELECT WITH clause>...]] SELECT [* (<SELECT query axis clause> [, <SELECT query axis clause>...])] FROM <SELECT subcube clause> [<SELECT slicer axis clause>] [<SELECT cell property list clause>] 10 / 31

Main concepts of MDX: Dimension, Hierarchy, Level, Member, Measure, Tuple, Set, Axis. 11 / 31

MDX SELECT {[CARS].[All CARS].[Chevy], [CARS].[All CARS].[Ford]} ON ROWS, {[DATE].[All DATE].[March], [DATE].[All DATE].[April]} ON COLUMNS FROM MDDBCARS; 12 / 31

MDX SELECT {[CARS].[All CARS].[Chevy], [CARS].[All CARS].[Ford]} ON ROWS, {[DATE].[All DATE].[March], [DATE].[All DATE].[April]} ON COLUMNS FROM MDDBCARS; March April Chevy $155 000.00 $ 75 000.00 Ford $ 55 000.00 $175 000.00 12 / 31

MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON ROWS, {[DATE].[ALL DATE].[MARCH], [DATE].[ALL DATE].[APRIL]} ON COLUMNS FROM MDDBCARS WHERE ([MEASURES].[SALES N]) 13 / 31

MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON ROWS, {[DATE].[ALL DATE].[MARCH], [DATE].[ALL DATE].[APRIL]} ON COLUMNS FROM MDDBCARS WHERE ([MEASURES].[SALES N]) Sales N March April Chevy 1 000 700 Ford 600 1 500 13 / 31

SQL vs. MDX Single member SQL: where City = Redmond MDX: [City].[Redmond] Multiple members (a set) SQL: where City IN ( Redmond, Seattle ) MDX: { [City].[Redmond], [City].[Seattle] } 14 / 31

SQL vs. MDX SQL: SELECT Sum(Sales), City FROM Sales_Table WHERE City IN ( Redmond, Seattle ) GROUP BY City MDX 15 / 31

SQL vs. MDX SQL: SELECT Sum(Sales), City FROM Sales_Table WHERE City IN ( Redmond, Seattle ) GROUP BY City MDX SELECT Measures.Sales ON 0, NON EMPTY {[City].[Redmond], [City].[Seattle]} ON 1 FROM Sales_Cube 15 / 31

SQL vs. MDX SQL: SELECT Sum(Sales) FROM Sales_Table WHERE City IN ( Redmond, Seattle ) MDX 16 / 31

SQL vs. MDX SQL: SELECT Sum(Sales) FROM Sales_Table WHERE City IN ( Redmond, Seattle ) MDX SELECT Measures.Sales ON 0 FROM Sales_Cube WHERE {Redmond, Seattle} 16 / 31

MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].[ALL DATE].[JANUARY]:[DATE].[ALL DATE].[APRIL]} ON ROWS FROM MDDBCARS 17 / 31

MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].[ALL DATE].[JANUARY]:[DATE].[ALL DATE].[APRIL]} ON ROWS FROM MDDBCARS Chevy Ford January $66 000.00 $ 79 000.00 February $55 000.00 $ 72 000.00 March $155 000.00 $ 55 000.00 April $ 75 000.00 $175 000.00 17 / 31

MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS 18 / 31

MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS Chevy Ford 1998 $566 000.00 $ 479 000.00 1999 $545 000.00 $ 672 000.00 2000 $745 000.00 $ 527 000.00 2001 $345 000.00 $ 622 000.00 18 / 31

MDX SELECT {[CARS].[ALL CARS].[FORD].CHILDREN} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS 19 / 31

MDX SELECT {[CARS].[ALL CARS].[FORD].CHILDREN} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS Ford Mustang Ford Taurus... 1998 $56 000.00 $ 79 000.00 1999 $54 000.00 $ 72 000.00 2000 $72 000.00 $ 52 000.00 2001 $34 000.00 $ 22 000.00 19 / 31

MDX SELECT {([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES SUM]), ([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES N]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES SUM]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES N]) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS 20 / 31

MDX SELECT {([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES SUM]), ([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES N]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES SUM]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES N]) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS Chevy Ford Sales Sum Sales N Sales Sum Sales N 1998 $566 000.00 450 $ 479 000.00 450 1999 $545 000.00 475 $ 672 000.00 670 2000 $745 000.00 750 $ 527 000.00 490 2001 $345 000.00 325 $ 622 000.00 640 20 / 31

MDX SELECT {CROSSJOIN({[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]}, {[MEASURES].[SALES SUM], [MEASURES].[SALES N]}) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS 21 / 31

MDX SELECT {CROSSJOIN({[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]}, {[MEASURES].[SALES SUM], [MEASURES].[SALES N]}) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS Chevy Ford Sales Sum Sales N Sales Sum Sales N 1998 $566 000.00 450 $ 479 000.00 450 1999 $545 000.00 475 $ 672 000.00 670 2000 $745 000.00 750 $ 527 000.00 490 2001 $345 000.00 325 $ 622 000.00 640 21 / 31

MDX SELECT NON EMPTY [Store Type].[Store Type].MEMBERS ON COLUMNS, FILTER([Store].[Store City].MEMBERS, (Measures.[Profit], [Time].[1997]) > 250000) ON ROWS FROM [Sales] WHERE (Measures.[Profit], [Time].[Year].[1997]) 22 / 31

MDX SELECT NON EMPTY [Store Type].[Store Type].MEMBERS ON COLUMNS, FILTER([Store].[Store City].MEMBERS, (Measures.[Profit], [Time].[1997]) > 250000) ON ROWS FROM [Sales] WHERE (Measures.[Profit], [Time].[Year].[1997]) Profit Normal 24 Hours Toronto $66 000.00 $196 000.00 Vancouver $111 000.00 $156 000.00 New York $59 000.00 $196 000.00 Chicago $75 000.00 $211 000.00 22 / 31

MDX SELECT Measures.MEMBERS ON COLUMNS, ORDER({[Store].[Store City].MEMBERS}, Measures.[Sales Count], DESC) ON ROWS FROM [Sales] 23 / 31

MDX SELECT Measures.MEMBERS ON COLUMNS, ORDER({[Store].[Store City].MEMBERS}, Measures.[Sales Count], DESC) ON ROWS FROM [Sales] Profit Sales Count... New York $747 000.00 2 196 000 Chicago $785 000.00 1 956 000 Toronto $666 000.00 1 916 000 Vancouver $711 000.00 1 596 000 23 / 31

: MDX WITH MEMBER [Time].[Year Difference] AS [Time].[2nd half] - [Time].[1st half] SELECT { [Account].[Income], [Account].[Expenses] } ON COLUMNS, { [Time].[1st half], [Time].[2nd half], [Time].[Year Difference] } ON ROWS FROM [Financials] 24 / 31

: MDX WITH MEMBER [Time].[Year Difference] AS [Time].[2nd half] - [Time].[1st half] SELECT { [Account].[Income], [Account].[Expenses] } ON COLUMNS, { [Time].[1st half], [Time].[2nd half], [Time].[Year Difference] } ON ROWS FROM [Financials] Income Expenses 1st Half 5 000 4 200 2st Half 8 000 7 000 Year Difference 3 000 2 800 24 / 31

MDX WITH MEMBER [Account].[Net Income] AS ([Account].[Income] - [Account].[Expenses]) / [Account].[Income] SELECT { [Account].[Income], [Account].[Expenses], [Account].[Net Income] } ON COLUMNS, { [Time].[1st half], [Time].[2nd half] } ON ROWS FROM [Financials] 25 / 31

MDX WITH MEMBER [Account].[Net Income] AS ([Account].[Income] - [Account].[Expenses]) / [Account].[Income] SELECT { [Account].[Income], [Account].[Expenses], [Account].[Net Income] } ON COLUMNS, { [Time].[1st half], [Time].[2nd half] } ON ROWS FROM [Financials] Income Expenses Net Income 1st Half 5 000 4 200 0.16 2st Half 8 000 7 000 0.125 25 / 31

MDX WITH MEMBER [Time].[Year Difference] AS [Time].[2nd half] - [Time].[1st half], SOLVE ORDER = 1 MEMBER [Account].[Net Income] AS ([Account].[Income] - [Account].[Expenses]) / [Account].[Income], SOLVE ORDER = 2 SELECT { [Account].[Income], [Account].[Expenses], [Account].[Net Income] } ON COLUMNS, { [Time].[1st half], [Time].[2nd half], [Time].[Year Difference] } ON ROWS FROM [Financials] 26 / 31

Income Expenses Net Income 1st Half 5 000 4 200 0.16 2st Half 8 000 7 000 0.125 Year Difference 3 000 2 800 0.066 26 / 31

MDX WITH MEMBER [Time].[Year Difference] AS [Time].[2nd half] - [Time].[1st half], SOLVE ORDER = 2 MEMBER [Account].[Net Income] AS ([Account].[Income] - [Account].[Expenses]) / [Account].[Income], SOLVE ORDER = 1 SELECT { [Account].[Income], [Account].[Expenses], [Account].[Net Income] } ON COLUMNS, { [Time].[1st half], [Time].[2nd half], [Time].[Year Difference] } ON ROWS FROM [Financials] 27 / 31

Income Expenses Net Income 1st Half 5 000 4 200 0.16 2st Half 8 000 7 000 0.125 Year Difference 3 000 2 800-0.035 27 / 31

MDX WITH SET [Quarter1] AS GENERATE([Time].[Year].MEMBERS, {[Time].CURRENTMEMBER.FIRSTCHILD}) SELECT [Quarter1] ON COLUMNS, [Store].[Store Name].MEMBERS ON ROWS FROM [Sales] WHERE (Measures.[Profit]) 28 / 31

MDX WITH SET [Quarter1] AS GENERATE([Time].[Year].MEMBERS, {[Time].CURRENTMEMBER.FIRSTCHILD}) SELECT [Quarter1] ON COLUMNS, [Store].[Store Name].MEMBERS ON ROWS FROM [Sales] WHERE (Measures.[Profit]) 1998Q1 1999Q1... Saturn $147 000.00 $196 000.00 Media Markt $185 000.00 $156 000.00 Avans $166 000.00 $116 000.00 28 / 31

Outline 1 Motivation 2 MDX 3 Summary 29 / 31

Summary Three types of OLAP servers: ROLAP, MOLAP, and HOLAP. Several approaches for querying data warehouses. ROLAP servers: SQL and its OLAP extensions. MOLAP servers: MDX. 30 / 31

Bibliography A. Pelikant, Hurtownie danych. Od przetwarzania analitycznego do raportowania, Helion 2011 SAS 9.1.3 OLAP Server MDX Guide Third Edition, 2006 MSDN: SQL Server Developer Center, 2008 31 / 31