Analysis Services Choosing between Multidimensional and Tabular Helena Cabral - BI4ALL

Slides:



Advertisements
Similar presentations
Presentation held by Tomislav Piasevoli at the local WinDays 11 conference, Rovinj, Croatia. Monday, 16:10-17:00, Room 6.
Advertisements

Chris Webb Crossjoin Consulting Ltd
SSAS 2012 Tabular Mode Best Practices
OLAP Services Business Intelligence Solutions. Agenda Definition of OLAP Types of OLAP Definition of Cube Definition of DMR Differences between Cube and.
SQL Server Analysis Services
Albert van Dok SQL Zaterdag 12 november Background Life Before BISM What is BISM BISM Positioning Questions.
SQL Analysis Services Microsoft® SQL Server 2005 Analysis Services provides unified, fully integrated views of your business data to support online.
SharePoint 2010 Business Intelligence Module 6: Analysis Services.
SPONSORS. Microsoft PowerPivot for SQL Server, Excel 2010, and SharePoint 2010 Michael Herman Syntergy, Inc.
IST722 Data Warehousing Business Intelligence Development with SQL Server Analysis Services and Excel 2013 Michael A. Fudge, Jr.
Analysis Services 101 Dave Fackler, MCDBA, MCSE, MCT Director, Business Intelligence Practice Intellinet Corporation.
Performance Tuning Cubes and Queries in Analysis Services 2008 Chris Webb
Chris Testa-O’Neill QA. Who am I Chris Testa-O’Neill Business Intelligence Specialist at QA Technical Author for Microsoft E-Learning Author of the SQL.
MSBI online training. MSBI Online Training Course Content : What Is Microsoft BI? Core concept – BI is the cube or UDM Example cube as seen using Excel.
The 20-Minute Tabular Model Bill Anton Prime Data Intelligence.
BI Terminologies.
The 20-Minute Tabular Model Bill Anton Prime Data Intelligence.
SQL Server Analysis Services 2012 BI Semantic Model BISM.
What is OLAP?.
SQL Server Analysis Services Understanding Unified Dimension Model (UDM)
Intro to Power BI Azhagappan Arunachalam.  Senior Database Architect   PowerBICentral.com  (blog on getting started.
BISM Introduction Marco Russo
A highway through the mountains of data with the SQL Server Tabular Model This presentation is a walk through in-memory database and reporting features.
OM. Platinum Level Sponsors Gold Level Sponsors Pre Conference Sponsor Venue Sponsor Key Note Sponsor.
Or How I Learned to Love the Cube…. Alexander P. Nykolaiszyn BLOG:
Getting Started with Tabular July 11, Phillip Labry  Sr. BI Engineer  IT development for over 25 years  Developer, DBA, Business Intelligence.
Extending and Creating Dynamics AX OLAP Cubes
Review DirectQuery in SSAS 2016, best practices and use cases
SQL Server Analysis Services Tabular Model
SQL Server Analysis Services Fundamentals
45 Minutes to Your First Tabular Model
Building Tabular Models
45 Minutes to Your First Tabular Model
Let’s Build a Tabular Model in Azure
What’s new in SQL Server 2017 for BI?
Introduction to Tabular Data Models
Relationship modeling patterns in SSAS and Power bi
Introduction to SQL Server Analysis Services
- for the SSASMD Developer
6/12/2018 2:19 PM BRK3245 DirectQuery in Analysis Services: best practices, performance, and use cases Marco Russo SQLBI © Microsoft Corporation. All rights.
6/19/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Data Platform and Analytics Foundational Training
Chapter 13 The Data Warehouse
What's new with SQL Server 2016 and SQL Server vNext?
Summit Nashville /23/ :38 PM
Julie Strauss Senior Program Manager Microsoft
The New Possibilities in Microsoft Business Intelligence
9/17/2018 9:30 AM DBI206 What's New in Microsoft SQL Server Code-Named "Denali" for SQL Server Analysis Services and PowerPivot T.K. Anand, Ashvini Sharma.
Modeling and Analytics Features Coming in Analysis Services vNext
Introduction to SQL Server Analysis Services
Analysis Services for the Absolute Beginner
Introduction to tabular models
Introduction to tabular models
SQL Server Analysis Services Fundamentals
SQL Server Analysis Services Fundamentals
Linda Nguyen, John Swinehart, Yiwen (Cathy) Sun, Nargiza Nosirova
Implementing Data Models & Reports with Microsoft SQL Server
DAX and the tabular model
TechEd /24/2018 6:19 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
Module 12: Implementing an Analysis Services Tabular Data Model
Modeling scenarios for DAX
DataMart (Data Warehouse) Tool:
Ascending Key Problem in SQL Server Large Tables
Processing Analysis Services Tabular Models
Building your First Cube with SSAS
Power BI with Analysis Services
Let’s Build a Tabular Model in Azure
Power BI at Enterprise-Scale
Dashboard in an Hour Using Power BI
Processing Tabular Models
Presentation transcript:

Analysis Services Choosing between Multidimensional and Tabular Helena Cabral - BI4ALL

Our Main Sponsors:

Say Thank you to Volunteers:  They spend their FREE time to give you this event.  Because they are crazy.  Because they want YOU to learn from the BEST IN THE WORLD.

Paulo Matos:

Pedro Simões:

André Batista:

Paulo Borges:

André Melancia:

Murilo Miranda:

Quilson Antunes:

5 Sponsor Sessions at 15:10  Don’t miss them, they might be getting distributing some awesome prizes!  Rumos  BI4ALL  Bold Int  CozyRoc  Pythian

Important Activities: WIT – Women in Technology  15:10 at BizSpark Room (Ground Floor) SQLClinic Challenges  10:00 DEV (Neil Hambly)  11:50 DBA (Uwe Ricken)  17:00 BI (Steph Locke)

Agenda  SSAS Evolution  Tabular: What’s it and how does it work?  Multidimensional vs Tabular  Development experience  Data modeling  Scalability  Query performance  Process performance  Security  Client applications support  Conclusions

SSAS Evolution SQL Server 7.0 First release with OLAP Services MOLAP, ROLAP and HOLAP architectures MDX query language SQL Server 2000 Data Mining services Improved dimension design (changing dimensions, parent-child, virtual dimensions) Improved calculation engine (custom rollups, cell calculations) Dimension security Connectivity over HTTP SQL Server 2005 Unified Dimension Model (UDM) SQL Server 2008 (and R2) Improved Scalability and Performance Attribute and User Hierarchies Business Intelligence Development Studio (BIDS) SQL Server 2012 xVelocity engine Power Pivot and Tabular Model DAX language Business Intelligence Semantic Model (BISM) SQL Server 2014 SSDT-BI Power View for Multidimensional Models (using DAX) v12 v11 v10 v9 v7 v8

SSAS Evolution  Only one data modeling tool for different needs  Similar development experience  Easy migration between Self- Service and Corporate BI  New column-oriented and in- memory storage technology  Multidimensional concepts are still difficult to learn  Why two approaches?

SSAS TABULAR What is it? How does it work? Does it still have dimensions and measure groups?

SSAS Tabular  What is it?  Relational modeling  Uses xVelocity which is an in-memory engine with column-oriented storage  Provides higher compression and faster in-memory operations such as aggregations  Supports for both MDX and DAX query languages  Available in SQL Server 2012/14 Enterprise and Business Intelligence editions  Also supports a DirectQuery mode

Dimensions vs Fact Tables  You can add calculated columns and measures to any table in the model  You can create hierarchies in any table in the model  You can partition any table in the model  Unlike Multidimensional models, there’s no difference between a dimension table and a measure group table.  Sometimes we don’t need a dimensional model!

DEVELOPMENT EXPERIENCE Which development tools can I use? How long is the learning curve?

Development tools  SQL Server Data Tools for Visual Studio  Open an existing Power Pivot model  SQL Server Data Tools for Visual Studio MULTIDIMENSIONALTABULAR

Development process  Easy to wrap a model over raw sources or DW for prototyping purposes  Model can be created from a Self-Service experience  Smaller learning curve (Excel like)  Need to learn DAX  Model should be created over a DW source  Not so easy prototyping  Higher learning curve  IT required  Wide knowledge base  Need to learn MDX MULTIDIMENSIONALTABULAR

Development experience  Workspace database directly related with the project  WYSIWYG experience, but also can make the development experience too slow  Single developer at a time (one model per solution)  Need to be deployed and processed to server to see the results  Support for multiple developers MULTIDIMENSIONALTABULAR

DATA MODELING Does Tabular have the same advanced model options? Do I have to learn DAX?

Data Modeling Relational Modeling:  Tables and more tables  Basic Relationships (…and advanced relationships through DAX calculations)  No role playing dimension (two tables can only have one active relationship)  Support multiple granularity  DAX calculations Dimensional Modeling:  Facts and Dimensions  Advanced Relationships natively supported (parent- child, many-to-many, attribute relationships, …)  Do not support multiple granularity in the same measure group  MDX calculations MULTIDIMENSIONALTABULAR

Other (un)supported features  Some features (as Actions, Translations and Display Folders) are possible by editing the generated XMLA or by using BIDS Helper tool available at CodePlex  Scopes can be defined by using calculated columns  Named-Sets, Scopes, Actions, Translations  Write-back, Data Mining, Custom Assemblies, Custom Rollups  Display Folders, custom format of measures, default values for dimensions attributes  Process behavior configuration MULTIDIMENSIONALTABULAR

DEMO #1  Many to many relationships are not supported by Tabular (natively)  But can be achieved by using some advanced DAX calculations! SalesAmountWithReason := CALCULATE ( SUM ( 'Internet Sales'[Sales Amount] ); FILTER ( FactInternetSalesReason; CALCULATE ( COUNTROWS ( DimSalesReason ) > 0 ) ) ) DAX Calculation Relational model

DEMO #1  Many to many relationships are not supported by Tabular (natively)  But can be achieved by using some advanced DAX calculations! Results

DEMO #2  Calculating balances by using transactions  Need to sum all transactions up to a given day  A common solution is to create a snaphost table with the quantity (calculated in ETL) for each product/day  Calculate balances on the fly using Tabular/DAX! Relational model EVALUATE SUMMARIZE ( CALCULATETABLE ( 'Product Inventory'; 'Product Category'[Product Category Name] = "Clothing" ); 'Product'[Product Name]; 'Date'[Date]; "Total Units Movement", [Total Units Movement] ) ORDER BY 'Product'[Product Name]; 'Date'[Date] DAX Query

SCALABILITY AND DEPLOY Does Tabular support a large volume of data?

Operation modes In-memory/cached:  All data is loaded in memory and all queries are answered from there Direct Query:  Bypass the in-memory model, queries are answered directly from database source (SQL Server only) MOLAP:  Data is pulled from relational store, is aggregated and stored in a multidimensional format ROLAP:  All data stay in the relational store and additiona objetcs are created for calculated aggregations MULTIDIMENSIONALTABULAR

Model scalability  Data volume mostly limited to physical memory  Small/medium size models Processor centric:  Memory is the most critical resource  Disk performance is not an important factor  Data volumes can scale to multiple terabytes  Medium/large size models Disk centric:  Disk performance is important because is used as the primary data storage for pre- aggregated data MULTIDIMENSIONALTABULAR

QUERY PERFORMANCE How fast is Tabular compared to Multidimensional? Is always faster?

Querying scenarios  Always read columnar data from RAM  Aggregate data in memory  Second (warm) run is just as fast the first (cold) one  With no aggregations defined: read atomic data from disk and aggregate data in memory  With predefined aggregations:  Cold Cache: read aggregated data from disk  Warm Cache: read aggregated data from RAM MULTIDIMENSIONALTABULAR

Querying preparation  Use DAX for detailed reports  Use MDX for aggregated data  No special tuning is required Outperforms Multidimensional:  Report on low granularity data  Report on aggregated data with no predefined aggregations  Use MDX or DAX for querying  Need to define aggregations  Benefits from warmup cache mechanisms Outperforms Tabular:  Report on aggregated data with predefined aggregations on Warm Cache MULTIDIMENSIONALTABULAR

DEMO #3  Detailed queries are normally an headache  Most of the times, we opt to query directly the DW relational source  With Tabular, this detailed queries perform better! MDX Query SELECT { [Measures].[Discount Amount],[Measures].[Reseller Freight Cost],[Measures].[Reseller Gross Profit],[Measures].[Reseller Total Product Cost],[Measures].[Reseller Sales Amount],[Measures].[Reseller Tax Amount] } ON COLUMNS, NON EMPTY ( [Geography].[Geography].[City] *[Product].[Product].[Product] *[Sales Territory].[Sales Territory Region].[Sales Territory Region] *[Promotion].[Promotion].[Promotion] ) ON ROWS FROM [Adventure Works]

DEMO #4  Distinct Count (DC) operations are expensive in Multidimensional  Moreover, need to create and maintain multiple measure groups (one for each DC measure)  With Tabular, DC measures performs better without need special modeling! DAX Query NewCustomers := CALCULATE ( DISTINCTCOUNT ( 'Internet Sales'[CustomerKey] ); FILTER ( ALL ( Date ); 'Date'[DateKey] <= MAX ( 'Date'[DateKey] ) ) ) - CALCULATE ( DISTINCTCOUNT ( 'Internet Sales'[CustomerKey] ); FILTER ( ALL ( Date ); 'Date'[DateKey] < MAX ( 'Date'[DateKey] ) ) ) Relational model

PROCESS PERFORMANCE What are the process options? Is there any dependencies?

Processing preparation  Every table can be partitioned  No processing dependencies (one table can be processed without processing related tables)  Don’t support parallel partition processing  Data in other tables/partitions can be queried during processing  Only measure groups can be partitioned  Processing dependencies (need to process dimensions first)  Support for parallel partition processing  Aggregations must be recalculated when dimensions processing occurs MULTIDIMENSIONALTABULAR

Processing options  Full process of a whole DB might consume too much memory  Process Defrag: rebuilds the table dictionary  Process Recalc: recalculates calculated columns, rebuilds relationships, user hierarchies and other internal engine structures Process Index: creates or rebuilds indexes and aggregations for all processed partitions MULTIDIMENSIONALTABULAR

SECURITY Does Tabular have the same security options as Multidimensional?

Security  Don’t support cell security, only table and row level security  Drill through permission is set to all roles  Dynamic Security  Only supports visual totals  Use DAX to restrict access to Row Sets Advanced security features that can go up to cell-level It’s possible to set drill through permission at role level Dynamic Security Supports both visual totals and non-visual totals MULTIDIMENSIONALTABULAR

CLIENT APPLICATIONS SUPPORT Do I have to change my client applications?

Client Applications Support Query languages:  In Cached Mode: MDX and DAX  In DirectQuery mode: only DAX Query languages: MDX and DAX (as of SQL Server 2012 SP1 CU4) MULTIDIMENSIONALTABULAR Client toolLanguage Microsoft Excel PivotTable MDX Power View DAX SQL Server Reporting Services MDX / DAX PerformancePoint MDX Other applications (ADO.NET of OLE DB provider) MDX / DAX

CONCLUSIONS So.. What do I choose?

You should choose Multidimensional!  You have an extremely large cube that exceeds server memory  You need some of the features not supported by Tabular (even with DAX)  You have a complex model (budgeting/forecasting, multiple many-to-many, parent-child…)  You are an MDX expert  You hate workarounds  Your reporting needs are typically aggregated  You have all your models in Multidimensional mode and want to migrate to Tabular just because!

You should choose Tabular!  You have small/medium models that fit in server memory  You need a non-multidimensional model  You have simple models (and not need neither of the unsupported features)  You really never understood MDX (just give a try to DAX, although is not so simple than they say)  You are an enthusiastic about workarounds!  You have detailed and ad-hoc reports that takes to long to run  You have a new model with no special needs and it will be great if you can show it just after lunch (prototyping!)

Our Main Sponsors: