Presentation is loading. Please wait.

Presentation is loading. Please wait.

Analysis Services Choosing between Multidimensional and Tabular Helena Cabral - BI4ALL

Similar presentations


Presentation on theme: "Analysis Services Choosing between Multidimensional and Tabular Helena Cabral - BI4ALL"— Presentation transcript:

1 Analysis Services Choosing between Multidimensional and Tabular Helena Cabral - BI4ALL hcabral@bi4all.pt

2 Our Main Sponsors:

3 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.

4 Paulo Matos:

5 Pedro Simões:

6 André Batista:

7 Paulo Borges:

8 André Melancia:

9 Murilo Miranda:

10 Quilson Antunes:

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

12 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)

13 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

14 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

15 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?

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

17 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

18 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!

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

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

21 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

22 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

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

24 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

25 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

26 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

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

28 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

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

30 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

31 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

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

33 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

34 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

35 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]

36 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

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

38 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

39 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

40 SECURITY Does Tabular have the same security options as Multidimensional?

41 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

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

43 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

44 CONCLUSIONS So.. What do I choose?

45 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!

46 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!)

47 Our Main Sponsors:


Download ppt "Analysis Services Choosing between Multidimensional and Tabular Helena Cabral - BI4ALL"

Similar presentations


Ads by Google