Logo

Navigation
  • Home
  • Services
    • ERP Solutions
    • Implementation Solutions
    • Support and Maintenance Solutions
    • Custom Solutions
    • Upgrade Solutions
    • Training and Mentoring
    • Web Solutions
    • Production Support
    • Architecture Designing
    • Independent Validation and Testing Services
    • Infrastructure Management
  • Expertise
    • Microsoft Development Expertise
    • Mobile Development
    • SQL Server Database and BI
    • SAP BI, SAP Hana, SAP BO
    • Oracle and BI
    • Oracle RAC
  • Technical Training
    • Learn Data Management
      • Business Intelligence
      • Data Mining
      • Data Modeling
      • Data Warehousing
      • Disaster Recovery
    • Learn Concepts
      • Application Development
      • Client Server
      • Cloud Computing Tutorials
      • Cluster Computing
      • CRM Tutorial
      • EDI Tutorials
      • ERP Tutorials
      • NLP
      • OOPS
      • Concepts
      • SOA Tutorial
      • Supply Chain
      • Technology Trends
      • UML
      • Virtualization
      • Web 2.0
    • Learn Java
      • JavaScript Tutorial
      • JSP Tutorials
      • J2EE
    • Learn Microsoft
      • MSAS
      • ASP.NET
      • ASP.NET 2.0
      • C Sharp
      • MS Project Training
      • Silverlight
      • SQL Server 2005
      • VB.NET 2005
    • Learn Networking
      • Networking
      • Wireless
    • Learn Oracle
      • Oracle 10g
      • PL/SQL
      • Oracle 11g Tutorials
      • Oracle 9i
      • Oracle Apps
    • Learn Programming
      • Ajax Tutorial
      • C Language
      • C++ Tutorials
      • CSS Tutorial
      • CSS3 Tutorial
      • JavaScript Tutorial
      • jQuery Tutorial
      • MainFrame
      • PHP Tutorial
      • VBScript Tutorial
      • XML Tutorial
    • Learn Software Testing
      • Software Testing Types
      • SQA
      • Testing
  • Career Training
    • Career Improvement
      • Career Articles
      • Certification Articles
      • Conflict Management
      • Core Skills
      • Decision Making
      • Entrepreneurship
      • Goal Setting
      • Life Skills
      • Performance Development
      • Personal Excellence
      • Personality Development
      • Problem Solving
      • Relationship Management
      • Self Confidence
      • Self Supervision
      • Social Networking
      • Strategic Planning
      • Time Management
    • Education Help
      • Career Tracks
      • Essay Writing
      • Internship Tips
      • Online Education
      • Scholarships
      • Student Loans
    • Managerial Skills
      • Business Communication
      • Business Networking
      • Facilitator Skills
      • Managing Change
      • Marketing Management
      • Meeting Management
      • Process Management
      • Project Management
      • Project Management Life Cycle
      • Project Management Process
      • Project Risk Management
      • Relationship Management
      • Task Management
      • Team Building
      • Virtual Team Management
    • Essential Life Skills
      • Anger Management
      • Anxiety Management
      • Attitude Development
      • Coaching and Mentoring
      • Emotional Intelligence
      • Stress Management
      • Positive Thinking
    • Communication Skills
      • Conversation Skills
      • Cross Culture Competence
      • English Vocabulary
      • Listening Skills
      • Public Speaking Skills
      • Questioning Skills
    • Soft Skills
      • Assertive Skills
      • Influence Skills
      • Leadership Skills
      • Memory Skills
      • People Skills
      • Presentation Skills
    • Finding a Job
      • Etiquette Tips
      • Group Discussions
      • HR Interviews
      • Interview Notes
      • Job Search Tips
      • Resume Tips
      • Sample Resumes
 

MSAS – Introducing Dimension and Cube Processing

By Exforsys | on April 17, 2005 |
MSAS
The Analysis server is like a black box. Everything that happens in the server is recorded, but the end user sees a multidimensional cube created out of the data in the data warehouse and has very little taste of what really goes on behind the scenes. In this section we will be examining this black box to understand how the Analysis server processes Dimensions and cubes. We will also learn how to optimize cube processing and how to troubleshoot cube processing.

Processing Dimensions: Introduction

Dimensions are building blocks on which the cubes are constructed. When a dimension is processed the Analysis server creates an SQL statement to extract the necessary information from the data warehouse dimension table. At least one or two columns are extracted for each level in the hierarchy. If the member key column and the Member name column properties are the same, the Analysis service extracts only one of them, else it extracts both. One row is extracted for each distinct level key and the rows are sorted using the Member key Column property for the levels. For instance the user wants to process a region dimension containing the following rows and columns.

Region_id

Sales_region

Sales_city

Sales_country

5

Canada West

Vancouver

Canada

6

Canada West

Victoria

Canada

2

Mexico Central

Mexico City

Mexico

4

Mexico West

Guadalajara

Mexico

1

Central West

San Francisco

USA

3

South West

Los Angeles

USA

7

South West

San Diego

USA

8

South West

Coronado

USA

9

South West

National City

USA

10

South West

Lincoln Acres

USA

The data in the warehouse is organized from a relational database perspective. The user however wants the data from a hierarchical perspective. Analysis Services extracts data from the warehouse by creating a unique path that contains a component number for each level of the hierarchy. The Region dimension contains three levels. The region_id and the Sales_region belong to the same level and the Sales_city and Sales_country have one level each.

When the data is retrieved from the data warehouse, the Analysis services begins by creating the All Level member of the dimension.:-0-> 0-> 0. The server then creates the path for the next row which contains the members for Sales_country, Sales_city and Sales_region. In other words the server creates four members for the first row from the relational dimension.:- An ALL Level member and the members Canada West, Vancouver and Canada. Only three members are created for the rows that follow. At the end of the task the server would have created a unique path for each member of the dimension. The path contains the genealogy of each member. The Region dimension, then contains, the member names and paths shown below.

Complete member name

Member path

Member ID

[North America]

0->0->0

1

[North America].[Canada]

1->0->0

2

[North America].[Canada].[Canada West]

1->1->1

3

[North America].[Canada].[Canada West].[Vancouver]

1->1->1

4

[North America].[Mexico]

2->0->0

5

[North America].[Mexico].[Mexico Central]

2->1->0

6

Note that the path is created after sorting out the children of the member by using the value of the Member Key column property, regardless of the value of the Order By property. Also note that a separate ID for each member is created and the Order By property is taken into consideration while creating the ID. However the sorting is not on alphabetical order. The sequence number of the ID matches the sequence of the path numbers by and large and sorting is done on names by default. But the Analysis server follows the logic of the hierarchy order rather than the alphabetical order. If the region id of a member(whose name is lower on the alphabetical order) is higher than the region id of another member (whose name is higher on the alphabetical order) the former is placed above the latter. For instance if the region id of San Francisco(1) is higher than Coronado(8), then San Francisco will be placed above Coronado in the hierarchical order. The Multidimensional Expressions (MDX) query retrieves data in the hierarchical order.

The Analysis server then combines the paths from all the members and creates a map for the dimension. The dimension map allows the Analysis server to slice and dice hierarchies very quickly.

Processing Cubes: Introduction

The Analysis service is extremely efficient in creating relatively small cubes from massive data tables in the data warehouse. A conceptual understanding of how the process works would be useful in designing the cube and in retrieving data for reporting.

As stated earlier, cubes contain dimensions combined with one or more measures. These dimensions form a structure or organization for the data values in the cube. The dimensions used in the cube must be processed before the cube can be processed.

SQL statement is executed by Analysis services when a cube is processed. This statement retrieves values from the fact table. The columns retrieved completely identify each member and all the measures used. A compound path is then, created for each row. Let us look at the rows of a sample cube:

Year

Quarter

Month

Sales_country

Sales_region

Sales_City

Unit_sales

1998

1

1

Canada

Canada West

Vancouver

320

1998

1

1

Canada

Canada West

Victoria

300

1998

2

2

Mexico

Mexico Central

Mexico City

234

1998

1

3

Mexico

Mexico West

Guadalajara

567

1998

4

2

USA

Central West

San Francisco

876

1998

3

4

USA

South West

Los Angeles

234

1998

2

1

USA

South West

San Diego

213

1998

1

5

USA

South West

Coronado

345

1998

4

1

USA

South West

National City

987

1998

5

2

USA

South West

Lincoln Acres

231

The dimensions in the row are Region and Time. The server finds the leaf level member path for each dimension and combines the paths to create a row. Schematically the path would read something like this 1->1->1-> .1->1->1. This internal path of the cube is a number generated consisting of one sub number for each level of the dimension used in the cube. The dimensions in the above cube contain three levels each. Therefore it has a path containing 6 numbers one for each of the three levels of each dimension. The more dimensions a cube has the more numbers that are generated for the levels in the dimensions. The more the information stored in the cube.

Analysis Service creates a data file to store the cells of a cube. When a single row is processed, a single row is extracted from the fact table and the path for the leaf level cell is calculated. The server then checks to see whether a leaf level cell with that path already exists. If it exists, the server adds a new measure to the one already in the cell. If the cell does not exist, then, the server creates a new leaf level cell storing both the path and the value of the measure. This process is not done for ROLAP and HOLAP storage.

Next the Analysis server creates cells for the aggregations designed by the user. If the cell exists the measures are added to it, if not a new cell is created and the measures are stored in it. This completes the processing for a single row of the cube. This process is repeated until all rows are done.

During this process Analysis Server also creates a number of index files to facilitate rapid retrieval of the values. Once all the values have been accumulated the Process Log window announces the successful completion of the processing.

« « Creating and consuming XML Web Services with C#
MSAS – Processing Dimensions and Cubes » »

Author Description

Avatar

Editorial Team at Exforsys is a team of IT Consulting and Training team led by Chandra Vennapoosa.

Free Training

RSSSubscribe 0 Followers
  • Popular
  • Recent
  • Data Warehouse database and OLTP database

    February 25, 2005 - 0 Comment
  • MSAS: Dimension Storage Modes and Levels

    April 3, 2005 - 0 Comment
  • Tutorial 65: MSAS – Managing Cube Roles

    May 5, 2005 - 0 Comment
  • MSAS : Building the Cube Part #1

    March 9, 2005 - 0 Comment
  • MSAS: Analysis Services Aggregations

    April 13, 2005 - 0 Comment
  • MSAS : Meta data Repository

    March 23, 2005 - 0 Comment
  • MSAS – Introducing Solve Order

    April 21, 2005 - 0 Comment
  • Microsoft Analysis Services Training

    February 25, 2005 - 0 Comment
  • MSAS: Understanding Hierarchies

    April 3, 2005 - 0 Comment
  • MSAS – Applying security to a Dimension

    May 5, 2005 - 0 Comment
  • MSAS – Browsing the Dependency Network

    May 6, 2005 - 0 Comment
  • MSAS – Building a Relational Decision Tree Model

    May 6, 2005 - 0 Comment
  • MSAS – Introduction to Data Mining

    May 6, 2005 - 0 Comment
  • MSAS – Applying security to a Dimension

    May 5, 2005 - 0 Comment
  • Tutorial 65: MSAS – Managing Cube Roles

    May 5, 2005 - 0 Comment
  • MSAS – Understanding Database Roles

    May 5, 2005 - 0 Comment
  • MSAS – Securing User Authentication

    May 2, 2005 - 0 Comment
  • MSAS – Introducing Analysis Services Security

    May 2, 2005 - 0 Comment
  • MSAS – Writebacks

    April 28, 2005 - 0 Comment
  • MSAS – Defining and Creating Drillthrough

    April 26, 2005 - 0 Comment

Exforsys e-Newsletter

ebook
 

Related Articles

  • MSAS – Browsing the Dependency Network
  • MSAS – Building a Relational Decision Tree Model
  • MSAS – Introduction to Data Mining
  • MSAS – Applying security to a Dimension
  • Tutorial 65: MSAS – Managing Cube Roles

Latest Articles

  • Project Management Techniques
  • Product Development Best Practices
  • Importance of Quality Data Management
  • How to Maximize Quality Assurance
  • Utilizing Effective Quality Assurance Strategies
  • Sitemap
  • Privacy Policy
  • DMCA
  • Trademark Information
  • Contact Us
© 2023. All Rights Reserved.IT Training and Consulting
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.AcceptReject Read More
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT