Download presentation
Presentation is loading. Please wait.
Published bySabrina Parks Modified over 8 years ago
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:
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.