Basic BISM Chris Webb Crossjoin Consulting Ltd chris@crossjoin.co.uk Who Am I? • Chris Webb chris@crossjoin.co.uk • Independent Analysis Services consultant and trainer www.crossjoin.co.uk • Author: “MDX Solutions” and “Expert Cube Development with SSAS 2008” • SQL Server MVP • Blogger: http://cwebbbi.wordpress.com Agenda • • • • What is BISM? Tabular vs Multidimensional positioning Building a Tabular Model Demos, demos, demos… What is BISM? • BISM = BI Semantic Model • It’s the new UDM (if you remember that) • The product is still officially called SQL Server Analysis Services • SSAS now has two design experiences: – Multidimensional models, ie cubes – Tabular models, a ‘corporate’ version of what we have with PowerPivot • BISM = Multidimensional + Tabular Tabular vs Multidimensional • It’s an either/or choice at the moment: – An instance can only be one or the other – A project can only be one or the other • Though in the future we may be able to have a single database that can be viewed or designed in both ways Tabular Pros • Represents the future • Concepts easier to understand for those with a relational/SSRS background • Speed of the Vertipaq storage mode • Support for Project Crescent • DirectQuery = ROLAP done right (hopefully) • Ability to import existing PowerPivot models • No more processing-this-unprocesses-that dependencies Tabular Cons • Version 1.0 product, therefore immature – DirectQuery has a lot of limitations – No parallel processing for partitions -> big impact on processing times – No display folders and other ‘nice to have’ stuff • Vertipaq effectively limited by RAM available on the server – Some paging options, but performance suffers • DAX still unable to do the same kind of complex calculations that MDX Scripts can Multidimensional Cons • Regardless of the official line, unlikely ever to get much priority for new features – Very few new features in Denali • No support for Crescent yet (though coming at some point) • No integration with PowerPivot • Cubes are just too confusing for some developers • Old technology Multidimensional Pros • Mature technology, well understood and well resourced in the marketplace • MDX Scripts allow for complex calculations • Disk-based model allows for greater scalability at the very high-end than Vertipaq • Allows for complex modelling, eg many-tomany relationships Creating a New Tabular Project • Tabular projects require Visual Studio 2010 • Projects are built in three ways: – Start from scratch – Import from PowerPivot – Import from an existing Tabular model • Projects consist of a single .bim file, plus some hidden files and folders Importing Data Into Tables • All the data sources that PowerPivot supports are present in the Tabular model – So you get more supported datasources that with Multidimensional, eg Odata • Data can be imported by either – Selecting tables and then filtering in the UI – Writing your own SQL/MDX • Tables can be partitioned • You can create calculated columns with DAX Workspace Databases • Workspace databases are a ‘working copy’ of your database that allow you to see your data while you model it – Probably hosted on a local SSAS instance, not a separate server (even your dev server) – Probably with a subset of your real data • Do not confuse this with your production or even your dev server! • Various options relating to whether it’s retained on the server, detached or deleted after you close BIDS • No cube browser in BIDS – you can open Excel direct from BIDS and browse your workspace database Relationships • Relationships can be added between tables just as in PowerPivot • New relationship designer makes life much easier • Two tables can now have multiple relationships between them – eg Role-playing date dimension tables – Only one relationship is ‘active’ – DAX has a UseRelationship() function to allow you to choose which one to use Hierarchies • Values in a column can be sorted by using the Sort By Column property – eg for day or month names • Hierarchies can be built with drag and drop inside diagram view • No true support for parent/child hierarchies – But can be flattened using calculated columns and several new DAX functions like Path() Measures • Simple measures (sums, counts etc) can be created with a single click • More advanced measures can be created with DAX expressions • Format strings have been replaced by separate properties • Measures are displayed in a grid under the table in BIDS (ugh) DAX Queries • DAX is now a query language as well as a calculation language – Very different from MDX – Tabular models can still be queried with MDX • Much more suitable for detail-level reporting than MDX • Much more ‘relational’ – but not SQL • DAX queries will often perform better than MDX queries against the same model DirectQuery • DirectQuery is essentially ROLAP for Tabular – All queries are translated to SQL – Only works with SQL Server data sources • Several limitations: – Some DAX functions don’t work (eg time intelligence) – No calculated columns – No MDX queries, only DAX • Vertipaq/DirectQuery mixed mode possible – Data exists in both storage modes – One storage mode used by default – Clients can choose which storage they use with a connection string property Security • Tabular models have something similar to Multidimensional dimension security – No cell security • Allow you to use DAX expressions to filter rows in tables for particular roles • Basic administrative security, can either – Read data and/or – Refresh data – Or be an administrator Summary • Tabular is very easy to get up and running • Suitable for 70% of SSAS projects today – Certainly good for all the small-scale or basic projects – Good if you never liked or understood cubes – Outperforms Multidimensional in most cases • Download the CTP3 demo VM! Blogs • Cathy Dumas http://blogs.msdn.com/b/cathyk/ • Kasper de Jonge http://www.powerpivotblog.nl/ • Marco Russo http://sqlblog.com/blogs/marco_russo • Alberto Ferrari http://sqlblog.com/blogs/alberto_ferrari