Professional Documents
Culture Documents
Marco Russo
marco@sqlbi.com
sqlbi.com sqlbi.com
sqlbi.com
Agenda
What is BISM?
What is going to change?
The road to BISM: PowerPivot
BISM vs UDM
Patterns design comparison
Dimensional vs Relational Modeling
What to do today?
sqlbi.com sqlbi.com
sqlbi.com 1
BI Semantic Model
BISM – BI Semantic Model
Third-Party BI Reporting Excel PowerPivot SharePoint
Services Dashboards &
One semantic model for Business Intelligence Applications Reports Workbooks Applications
Scorecards
BI Applications
Internet Explorer
Empowered Aligned
Excel Services
BISM
xlsx
sqlbi.com 2
Road to BISM: Denali Vertipaq: change your mind!
Denali Vertipaq in Denali
New release of SQL Server Not a simple evolutionary step
SSAS / Vertipaq running server side It is a complete new environment
Works standalone (PowerPivot for SP cannot) New calculation paradigms
Vertipaq / SSAS selected at instance level New data modeling techniques
New release of PowerPivot New formula authoring experience
Parent-child hierarchies, perspectives, KPIs Want to learn BISM?
New DAX functions (like Ranking)
Forget MDX
PowerPivot 1.0 today: Forget SQL
Is the road to learn new Denali features Then, Learn DAX. ☺
And control the order of results (EVALUATE / ORDER BY) FAST VERTIPAQ ENGINE AGGREGATIONS
LEAF LEVEL COMPUTATION CALCULATED MEMBERS
The fastest way to query BISM
FILTER / ROW CONTEXT MDX FUNCTIONS, TUPLES ETC
MDX available, but might add some overhead
SELF SERVICE + CORPORATE CORPORATE ONLY
EASY DATA INTEGRATION BI PROFESSIONALS NEEDED
sqlbi.com 3
Semi Additive Measures
A SMALL EXAMPLE OF HOW TO AGGREGATE DATA IN DAX
Additive Measure
SUM over all dimensions
Non Additive Measure
Different function over all dimensions
Example: average of the sale price
Semi Additive Measure
SUM over some dimensions
Different function over other dimensions
Time is the standard exception for aggregations
Examples
Warehouse stocking
sqlbi.com Current account balance
Aggregation function:
LastChild
LastNonEmpty
Performances not very impressive
Aggregations always needed
The aggregation is handled by the data model
In DAX, there is no default aggregation function.
Month level correct
Thus, DAX is needed.
Quarter level wrong
Year level wrong
sqlbi.com 4
Calculated Columns / Measures Calculated Columns / Measures
sqlbi.com 5
The quick and dirty solution Banding: a Data Driven Model
= IF (
BandName FromPrice ToPrice
FactResellerSales[DiscountedPrice] <= 5,
"01 LOW", VERY LOW 0 5
IF ( LOW 5 30
FactResellerSales[DiscountedPrice] <=30, MEDIUM 30 100
"02 MEDIUM", HIGH 100 500
IF ( SELECT VERY HIGH 500 9999
FactResellerSales[DiscountedPrice] <=100, P.BandName,
"03 MEDIUM", SUM (S.ExtendedAmount)
IF ( FROM dbo.FactResellerSales S
FactResellerSales[DiscountedPrice] <= 500, JOIN PriceBands P
"04 HIGH", ON S.UnitPrice BETWEEN P.FromPrice AND
"05 VERY HIGH")))) P.ToPrice
GROUP BY
Even if this works… a better data P.BandName
model would be welcome!
sqlbi.com 6
Aggregations Over Time
SOME INSIGHTS INTO BISM TIME INTELLIGENCE FUNCTIONS
Many interesting aggregations
YTD: Year To Date
QTD: Quarter To Date
MTD: Month To Date
They all need a Calendar Table
And some understanding of CALCULATE ☺
Tool dimension is not affordable
No DateTool dimension!
sqlbi.com
sqlbi.com 7
ABC and Pareto Analysis
CALCULATED COLUMNS AT WORK WITH ABC PARETO ANALYSIS
Pareto principle
80% of effects come from 20% of the causes
sqlbi.com
100%
50%
0%
0 10 20 30 40 50 60 70 80 90100
ABC Analysis
A COMPLEX EXAMPLE INVOLVING MANY TO MANY RELATIONSHIPS
Calculate the class
SortedWeightProduct =
Product[CumulatedProduct]
/ SUM( Product[SalesAmountProduct] )
sqlbi.com
sqlbi.com 8
Audience Audience: background
Taken from a real world analysis Info taken from the remote control
Audience data of TV broadcasts Once a minute
Simple data model Individual watching
Channel watched
Pretty big database
Analysis at a very detailed level Once a day
All the individuals watching
Current solution
Detect the influence of each individual
Ad-hoc software
Individual
Proof of Concept Categories
Analysis with PowerPivot and Vertipaq Targets
CALCULATE (
…,
FILTER (
VALUES (Individuals),
CALCULATE (
COUNTROWS (
TargetsForIndividuals
1,300,000 ) > 0
10,000 …
66,000,000 )
9,000,000 )
140 1
sqlbi.com
sqlbi.com 9
Dimensional vs Relational: BISM Dimensional vs Relational: BISM
sqlbi.com 10
A NEW BOOK FROM SQLBI
sqlbi.com sqlbi.com
Links
SQLBI Website
www.sqlbi.com
PowerPivot Workshop
www.powerpivotworkshop.com
sqlbi.com
sqlbi.com 11