7 BI Solution Requirements Business Requirements:single version of the truthunified dataKPI and CPMDashboardsReports…Technology is just an EnablerMain Technological Requirements:Easy to change and maintainSecurityGood performancesSelf Service BIGood visualization layer
8 Using a New Technology What does it do? When should I use it? And when shouldn’t I use it?What’s it place in the technological road map?Two examplesSimilar TechnologiesWho are the biggest competitors?Which old technology replaced by the new one?
9 SSAS 2012 Tabular Mode Customers ask: Does it replace good old MOLAP or is it just a better PowerPivot?From now on, should I develop in Tabular Mode only?We understand that in-memory column database is faster. How fast is Tabular compared to MOLAP?We understand that development at Tabular Mode is simpler. We are SSAS 2008 R2 experts and know nothing about DAX and Tabular. Would you still say Tabular is simpler option for us?
12 What is SSAS 2012 Tabular Mode New DB EngineTabular ModeColumn StoreIn-MemoryCompression (about 1:3; sometimes much better)All data copied (processed) to the Tabular modelDirect SQLQueries translated to SQL, running directly against the relational SQL Server.Tabular Mode’s version of ROLAP
14 BISM – BI Semantic Model BISM is a concept, not a technical termUsers can easily query the intuitive data modelNo need to understand complex data source structureThe BISM provides:Data ModelBusiness Logic and QueriesData AccessThe implementation of the BISM are these three technologies:MOLAPSSAS Tabular ModePowerPivot
15 Tabular vs. Multi Dimensional Quicker developmentFrom detailed (granular, images) data to aggregate dataGood performancesSome features are missingMulti-DimensionalRich Multi-dimensional functionalityKnown and well documented engineSuitable for very large cubes, beyond server’s memory size
18 Tabular Mode - Main Features Understanding the main features of a technology is the key to understand when and how to use itFeature by Server Mode or Solution Type
19 Developing a ModelUse the Visual Studio SQL Server Data Tools to build a BISMOpen an existing PowerPivot Model using SSDT or Management StudioDeploymentImmediate changes implementationat the SDDTUse small DB for development
20 Workspace Database Created during model authoring using SSDT. Disappeared automatically when closing the projectThe workspace database resides in-memory.Workspace DB
21 Data SourcesThe model can use multiple data sources
22 Tabular Mode Schema vs. Data Source Views Much simpler than a Data Source ViewBuilding the AdventureWorks DB using Tabular Mode is about x4 times faster.
23 Tabular Mode Schema Dimension = One Table No Dimension Wizard to create Hierarchies
24 Tabular Mode SchemaMeasures and KPI are defined here.No cube Wizard.
26 Tabular Mode Schema- Adding a column Adding new calculated columns in the schema is possible.Either add calculated columns to the source DB or to the BISM
27 Adding a new columns Add new columns using DAX At the OLAP Data Source View you write an expression in the source language, TSQL, PLSQL…
28 Schema - Limitations Self Joins are not supported Two tables can have only one active relationshipsNo role playing dimensionMany to Many relationships allowed using DAX
29 Dimensions Active / non active relationships Only ONE relationship can be activeNo Role Playing DimensionsThe Date Dimension can be connected byeither OrderDate or ShipDate or DueDateYou’ll have to build many date dimensions
30 Main Features / Capabilities Import Existing PowerPivot modelLet users to quickly build model using Excel and upload it to the server in a click
32 Category name from Dim Category with a measure works as expected Snowflake DimensionsA dimension is based on one table / view only.A hierarchy can be based on one Table.Create a view on the data source which joins the tables..Category name from Dim Category with a measure works as expected
33 Dimensions - Limitations No member propertiesNo Parent-ChildNo linked dimensionsNo need for Attribute RelationshipsThe dimension is a tableA dimension can be based on one and only one tableDimension names taken directly from theLarge dimensions (million members ) performed better
34 MeasuresSum, min, max, count, distinct count…or complex DAX ExpressionsA table can contain both attributes and measures.
35 Multi Grain Measure Groups Support many “Measure Groups” with different dimensionalityFor ex. Internet Sales (product level), Sales Quota (Category Level)
36 KPI Key performance Indicators are the heart of any BI solution Replaces existing Measures
37 KPI Easy to create using a wizard Value – existing measure Target – measure or a numberStatus – using a GUI
38 Perspectives Same as in SSAS Multidimensional Allows users to see a Database in a simpler wayCan hide:Tables (dimensions)Columns (Attributes)HierarchiesMeasuresKPI
39 Partitions Same logic as in SSAS Multidimensional. Easy to create Can be processed alone (like in Multidimensional)
40 What’s missing? Translations Sync Two Databases Actions Custom Assemblies (SSAS Procedures)Self Join (Parent Child)Role Playing Dimensions
43 DirectQuery ModeDirectQuery mode uses data that is stored in a SQL Server database.Used for Real Time analysisNo processingChanges to the underlying source data reflected immediately.no extra management overhead of having to maintain a separate copy of the data.
44 Direct Query Performances No clear answer, depends on the source DBStill checking the efficiency of the generated SQL Queries.Security - Any security enforced by the back-end database is guaranteed to be enforced, using row-level securityUnlike Multi Dimensional, you Can’t mix Direct Query and Tabular Partitions
45 DirectQuery ModeIt is possible to have a model over data sets that are too large to fit in memory on the Analysis Services server.
46 Direct Query Limitations Can only use one SQL Server DB as a sourceThe entire model is either is either using DirectQuery or not.Limited use of DAX functionsClient restrictions: Can only be queried by using DAXExcel can’t beused because ituses MDX
48 DAX vs. MDX MDX (Multi Dimensional Cube) vs. DAX MDX (Tabular) vs. DAX (Tabular)
49 Querying a Tabular Model using MDX Quick start – just use MDX to query the modelYou don’t have to learn DAXIn general speaking, MDW performs wellFine tuning DAX queries
50 What is DAX Set of Excel-like formulas Enables advanced data modeling inside the PowerPivot for Excel or Tabular ModeTwo types of calculationscalculated columnsmeasures
51 Learn DAX QuickStart: Learn DAX Basics in 30 Minutes Chris Webb’s blog. 6 lessons about DAX start hereConverting MDX to DAX – First Steps
52 DAX vs. MDX DAX and MDX coexists peacefully Tabular Mode can be queried using both DAX and MDXUse MDX for data analysis (group by, hierarchies)Use DAX for detailed reportsMDX uses Crossjoin to join many columns.- Excel uses MDX, PowerView uses DAX, SSRS can use both
53 DAX vs. MDX More Limitations MDX can only query In-Memory Models DAX can query both In-Memory and Direct Query Models.DAX cannot be used to query Multi Dimensional CubesMicrosoft are working on it
54 (Tabular + DAX) vs. (MOLAP + MDX) The fact that VertiPaq is an in-memory database doesn't mean that it will perform much better than a multidimensional cube.Warm Cache MOLAP Cube query will probably perform better or just as good as DAX.Query results caching
55 (Tabular + DAX) vs. (MOLAP + MDX) DAX on Tabular mode usually give you good performance without special tuning.DAX queries are never cachedSecond (warm) run is just as fast the first (cold) one.Distinct Count queries usually performed better using DAX + TabularOverall good performance of DC even with MDX
56 When number of days increased – the runtime of MDX(CUBE) query is better then DAX (Tabular)
57 (and much faster from the warm cache) than in DAX. Complex query that run on list of members (Products and Dates) and make aggregations – will return faster in MDX (Cube)(and much faster from the warm cache) than in DAX.MDX QuerySame Query in DAX
58 DAX in XMLAEasy to manage parametersDAX Editor sample
62 Processing ErrorIt says “processed” but the error message and a closer look on the partitions shows the table has never been processed
63 Processing the dimensions but not the measure tables Process the dimensionsProcess the measuresUnlike MOLAP, It is possible to query tables (dimensions and measures ) while other tables haven’t been processed yet.Processing the dimensions but not the measure tables
68 Process FullProcesses a partition or table and all the objects that it contains.Drops all data, and then processes the object.Any affected calculated columns, relationships, user hierarchies, or internal engine structures (except table dictionaries) are recalculated.This kind of processing is required when a structural change has been made to an object.
69 Processing OptionsProcess Clear - Drops all the data in a database, table, or partition.Process Data - Loads data into a partition or table.Process Defrag - Optimizes the table dictionary (an internal engine structure)For ex. After deleting old partition, the dictionary still contains references to these deleted rows.The best practice is to run it frequently, based on your sliding window design
70 Processing OptionsProcess Recalc - recalculates calculated columns, rebuilds relationships, rebuilds user hierarchies and rebuilds other internal engine structures.Must be issued after Process Clear or Process Data.
71 Processing Options Defrag Recalc Add Data Clear Full Default V DB TablePartition
72 Handling Unknown Values A dimension key in the Fact table might be missing in the dimension table.For ex. A sale of $ for a non-existing productIt is not possible to configure the processing behaviour.All unknown rows merged into one “unknown’ member
73 Using Views in the Tabular Model Use views to filter small amount of data at the development phase, later change the view definition to return all data.Using views let you do changes in the underlying DB without affecting the Tabular Model Schema.
74 ProcessAddThe simplest solution – add a new partition + Full processingIt is possible to run process add to load new data.It is under the responsibility of the DBA to avoid duplication.You can change the query binding using the UI.Use views as much simpler query binding.
75 Parallel Processing It is possible to process many tables on parallel. However, only one partition of a table at a time.
81 PoC – Lessons LearnedForget what you know about SSAS 2008, new design is neededNo Migration WizardConsider de-normalization.Server ConfigurationServer Properties (SSAS - Tabular)Memory paging allows models to be larger than the physical memory of the server
82 Project Properties - Query Mode Defualt: In-memoryDirect queryDirect Query with In-MemoryIn-Memory with Direct QueryConfiguration
83 PoC – Lessons LearnedFull process of a whole DB might consume too much memory. Consider running queries one by one.
85 PowerView A feature of SQL Server 2012 Reporting Services Add-in Requires Microsoft SharePoint Server 2010 Enterprise EditionInteractive data exploration and visualizationIntuitive ad-hoc reporting for business usersA browser-based Silverlight application
86 Clients - PowerView For only SSAS 2012 Tabular Mode or PowerPivot. SSAS 2012 Multi-dimensional as data source is planned for the near future.Watch demo hereMore info at MSDN
88 Clients – Pyramid Analytics The Pyramid Analytics Suite is a highly scalable, enterprise data analytics application that brings sophistication with simplicity in a synergistic web-based interface for consuming Microsoft Analysis Services OLAP cubes.BioPoint DashboardsBioXL - A complete browser-based cube viewing solution
94 Conclusion Multi Dimensional OLAP: Tabular Mode Familiar, Huge Install base, wide knowledgebase, stable, large scale implementations, monitoring tools, many OLAP ViewersTabular ModeNew TechnologySimple, easier development, sometimes fasterMicrosoft now focusing on this technology
95 Tabular vs. Multi Multi: Optimized disk system Prallel processin gof partBuilding aggsUnary operatorsBlock ComputationTuning IO Thread Pool – how many threads can query the partitionsMulti User settingsCoordinator query blanacing factorCoordinator query boost priority level
96 Tabular Memory, memory, memory Don’t let the system memory page out DAX query performances, writing patternsNo prallel processing of partitionsQuery performances vs processingAdjusting compression levles lets you favour processins time versus query timeNo NUMA issues
97 Links My Blog: http://blogs.microsoft.co.il/blogs/itaybraun Cathy dumas’ blog:DAX Editor -Paul Te Braak’s blogAdventureWorks tutorial for tabular modelsDAX quick start guide