Dimensional Modelling - Basic Concept

Post on 15-Jul-2015

319 views 2 download

Tags:

Transcript of Dimensional Modelling - Basic Concept

DIMENSIONAL

MODELING Structuring Data for Better

Reporting and Analysis

Sajjad Zaheer21 Aug 2014, Folio3

@folio_3 www.folio3.com Copyright 2015

1. Getting into the Context

@folio_3 www.folio3.com Copyright 2015

Online Transaction Processing

• Core database

• Usually ER model

• For transactions and routine tasks

@folio_3 www.folio3.com Copyright 2015

Data about data, i.e information about data tables

in OLTP System.

@folio_3 www.folio3.com Copyright 2015

Extract from source (OLTP)

Transform, according to requirement

Load into Data Warehouse

@folio_3 www.folio3.com Copyright 2015

• For effective querying, analysis and decision-

making

• OLAP (Online Analytical Processing) Design

• Subject-oriented, Integrated, Time-varying, non-

volatile collection of data

@folio_3 www.folio3.com Copyright 2015

• Access layer of data warehouse

• Subset of data ware house

• Oriented to specific business unit or department

E.g. marketing

• Is not another physical entity

@folio_3 www.folio3.com Copyright 2015

To analyze multidimensional data interactively

from multiple perspectives

@folio_3 www.folio3.com Copyright 2015

• Computational process of discovering patterns in

large data sets.

• To extract information and transform it into an

understandable structure for further use.

@folio_3 www.folio3.com Copyright 2015

Creation and study of the visual representation

of data E.g. scatter plot, bar chart.

@folio_3 www.folio3.com Copyright 2015

Retrieve and present a subset of data for a

particular purpose

@folio_3 www.folio3.com Copyright 2015

Dat

a

Informatio

n

Knowledg

e

Dimensional

Modeling (OLTP to

OLAP Structure)

@folio_3 www.folio3.com Copyright 2015

Dimensional Modeling

@folio_3 www.folio3.com Copyright 2015

@folio_3 www.folio3.com Copyright 2015

@folio_3 www.folio3.com Copyright 2015

Terminology

Dimensions

The time independent, textual and descriptive attributes by which users describe objects.

Who, where, what, how, when

Angles/Dimensions with which a data can be viewed.

E.g. Product category, Date-time of a transaction.

Facts

Business Measurements (Quantified). E.g. quantity, amount, cost, taxes,

Things that can be summed or aggregated. E.g. sales of a product.

Built from the lowest level of detail (grain)

Data at consideration

Time dependent@folio_3 www.folio3.com Copyright 2015

Dimensional Modeling Process

Sub-setting

De-normalization

i.e. collapsing hierarchies of dimensions by de-

normalization to 2NF

Summarization

i.e. Summation of Facts

@folio_3 www.folio3.com Copyright 2015

Modeling Design Steps

1. Identify the Business Process Source of “measurements”

2. Identify the Grain What does 1 row in the fact table represent or mean?

3. Identify the Dimensions Descriptive context, true to the grain

4. Identify the Facts Numeric additive measurements, true to the grain

@folio_3 www.folio3.com Copyright 2015

Design Steps - Example

@folio_3 www.folio3.com Copyright 2015

Case Study: Users Points

System

Consider a System simply explained as:

It has users and groups of users.

Every user can perform certain actions like message, comment, meeting etc.

For every action user get some points that are also added to the points of user groups that this user belongs.

The system also has many other features that are not relevant to points.

Let’s assume the system has over 100 tables to store various things.

@folio_3 www.folio3.com Copyright 2015

Step 1: Identify the Business

Process

Question 1: Do we start doing dimensional

modeling to all the 100 tables in the system?

Answer: No

Question 2: So which tables should be

selected?

Answer: The tables that are relevant to the

business requirements.

@folio_3 www.folio3.com Copyright 2015

Business Requirements

Three types of points are required for

reporting:

1. Per month points

2. Average lifetime points at end of each month

For:

1. Individual users

2. User groups

3. Individual users per action

4. User groups per action

@folio_3 www.folio3.com Copyright 2015

Step 2: Identify the Grain

Analyzing the business requirements, following grains are identified.

1. Points per individual per month

2. Points per user group per month

3. Points per user per action per month

4. Average Lifetime Points per individual per month

5. Average Lifetime Points per user group per month

6. Average Lifetime Points per user per action per month

“Grain = What does 1 row in the fact table represent”

@folio_3 www.folio3.com Copyright 2015

Step 3: Identify the Dimensions

Simply speaking, the content after ‘per’ in

grain are the dimensions. They are found to

be:

1. Date (granularity: month)

2. Uses

3. User groups

4. Actions

“Dimension: descriptive context true to grain”

@folio_3 www.folio3.com Copyright 2015

Step 4: Identify the Facts

4 Facts are identified

1. User Points

2. User Lifetime Average Points

3. User Group Points

4. User Group Lifetime Average Points

“Facts: Numeric additive measures true to grain”

@folio_3 www.folio3.com Copyright 2015

Tables Schema

Once Grain, facts and dimensions are identified, table schema is to be formed using these.

Please note:

It is not necessary to keep all facts in differenttables.

They can be part of single table.

Alternatively, there can be multiple fact tables for a single fact as per its relationship with dimensions.

Every dimension will be in different table and each dimension can be connected to many fact tables.

@folio_3 www.folio3.com Copyright 2015

Tables Schema

Tables Schema should be the translation of

the Grain defined in step 2

@folio_3 www.folio3.com Copyright 2015

Star Schema – fact_points_user

Grains covered:

1. Points per individual per month

2. Average lifetime points per individual per month

@folio_3 www.folio3.com Copyright 2015

Star Schema –

fact_points_user_action

Grains covered:

1. Points per individual per action per month

2. Average lifetime points per individual per action per month

@folio_3 www.folio3.com Copyright 2015

Star Schema –

fact_points_group

Grains covered:

1. Points per user group per month

2. Average lifetime points per user group per month

@folio_3 www.folio3.com Copyright 2015

Star Schema for User Points

Grains

Grains covered:

1. Points per user group per action per month

2. Average lifetime points per user group per action per month

@folio_3 www.folio3.com Copyright 2015

Example Query

SELECT fp.*, du.username, da.action_name

FROM fact_points_user_action fp

JOIN dim_user du ON fp.dim_user_id = du.dim_user_id

JOIN dim_date dd ON fp.dim_date_id = dd.dim_date_id

JOIN dim_action da ON fp.dim_action_id = da.dim_action_id

WHERE dd.month = 3 AND dd.year = 2014;

@folio_3 www.folio3.com Copyright 2015

Data Transformation: OLTP to

OLAP

@folio_3 www.folio3.com Copyright 2015

Data Transformation

Once the OLAP Schema has been designed, data is to be moved from the ERD (OLTP) DB to this new OLAP DB.

This can be achieved using dedicated scripts or cron jobs.

One simple example for the elaborated case is to set up a cron that gets executed at every month end and move relevant data from ERD DB to OLAP DB after calculations (if any).

@folio_3 www.folio3.com Copyright 2015

Conclusion

Dimensional Modeling helps to keep data in a

form that is relevant and quickly accessible for

reporting and analysis.

@folio_3 www.folio3.com Copyright 2015