Visual
# V i s u a l P i p e l i n e
Scott Sherman Mrunal Shridhar
Principal Software Engineer Sales Consultant, EMEA
What makes a view slow?
Executing Query
Computing View
Layout
Marks Table Calculations
SortingAggregations and Joins
Calculated Fields Filters
Connect to Data
Computing Quick Filters
Capabilities Checking
Native vs Generic ODBC
Cascading Filters
Itemized or Ranged Filters
Query Data Layout Render
Query
• Query database
Data Layout Render
Latency
Time it takes to query
Time to stream records back
Number of records
Large number vs. smaller number of aggregated records
Number and complexity of joins
Number, type and complexity of calculated fields
Number and type of filters
Query
• Query database
• Cache results
Data Layout Render
To ensure interactivity
Latency and predictability
Higher responsiveness
Data extracts
If our queries are fast, why bother with caching?
Reduce load on the database
Reduce network traffic
In literal query
cache?In abstract query
cache?
Query
data sourceMissMiss
Post-process cache
entry
Abstract
query
Literal
query
Query results
Literal
query
Dashboard/workbook
Refresh thumbnails
Story points
Click through the whole story
Load data into memory
Filter to single row
Add all needed fields to LOD
On server no guarantee that all caches are warm
•Quick filters
Add filtering dimension to the view if that doesn’t change LOD
Add to tooltips – won’t affect LOD
Add filtering measure in the view
•Logging
Cache miss – ‘end-query’ event
Cache hit – no query entry
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout Render
Query Data Layout
• Layout views
• Compute legends
• Mark types
Render
Query Data Layout Render
• Marks
• Selection
• Highlighting
• Labels
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
? ? ? ?
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
or
? ? ? ?
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
Extract Filters
Data Source Filters
Context Filters
Dimension Filters (including LOD dimensions)
Measure Filters (including LOD measures)
Local Filters (ATTR, geocoding)
Table Calc Filters
Hide
database
local
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
or
? ? ? ?
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
…unless it impacts
highlighting…
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
or
…or
filtering
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
Query Data
• Geocoding
• Blending
• Calculated fields
• Local filters
• Totals
• Forecasting
• Table calculations
• Table calc filters
• Sort
Layout
• Layout views
• Compute legends
• Mark types
Render
• Marks
• Selection
• Highlighting
• Labels
Limitations
• Quantitative
Limitations
• Quantitative
• Field must be in viz
Limitations
• Quantitative
• Field must be in viz
• No table calcs
Limitations
• Quantitative
• Field must be in viz
• No table calcs
• No dependent totals
Limitations
• Quantitative
• Field must be in viz
• No table calcs
• No dependent totals
• No stacking
Limitations
• Quantitative
• Field must be in viz
• No table calcs
• No dependent totals
• No stacking
• No polygons
Limitations
• Quantitative
• Field must be in viz
• No table calcs
• No dependent totals
• No stacking
• No polygons
Interactivity in the
browser
the best of both worlds
power vs.
responsiveness
Power Responsiveness
Interactive filters
Fast highlighting
Changes when mouse moves
1,000,000+ marks
Forecasting, table calcs
Query databases
BrowserServer
Is viz simple?
Interactive
data
Very
responsive
Bitmaps
Full power of
server
Fast selection
Fast highlighting
Fast tooltips
Live hover actions
Interactive filtering
< ~5000 marks, headers, annotations, etc.
No custom shapes
No polygons
No page trails
Simple filtering
Query databases
Compute calculated fields
Apply forecasting models
Compute reference lines and trend lines
Sort
Layout
Work with 1,000,000+ marks
Far more than Flash or JavaScript apps
Questions?
Please complete
the session survey
from the Session
Details screen in
your TC15 app