SlideShare a Scribd company logo
PRESENTED BY
Name Here
Designing dashboards for performance
Mrunal Shridhar
Product Consulting, EMEA
©2012 Tableau Software Inc. All rights reserved.
Basic principles
• Everything in moderation
• If it isn‟t fast in database, it won‟t be fast in Tableau
• If it isn‟t fast in desktop, it won‟t be fast in server
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Extracts
• Aggregated extracts
• Optimizing extracts
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Aggregated extracts
• Helps improve performance
• Aggregate to summary level
• Filter unnecessary values
• Hide all unused fields
• Multiple level of detail across extracts
• Querying from higher aggregation to detail
©2012 Tableau Software Inc. All rights reserved.
Optimizing extracts
• Optimize deterministic calculations
• String manipulations and concatenations
• Groups and sets
• Non-deterministic calculations not stored
• Cheaper to store data than recalculate
©2012 Tableau Software Inc. All rights reserved.
Filtering
• Filtering categorical dimensions
• Filtering dates
• Context filters
• Quick filters
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Filtering categorical dimensions
• Discrete filters can be slower
• Keep only and exclude perform poor
• Complex WHERE clause
• Join on a temp table
• Ranged filters can be faster
• Faster than large itemised list of discrete values
• Faster when increasing dimensions cardinality
• Indexes impact efficiency of filters
©2012 Tableau Software Inc. All rights reserved.
Filtering dates
• Discrete dates or date levels
• Can result in poor query execution
• Tables not partitioned on DATEPART
• Data extract can optimise performance
• DATEPART materialised in extract
• Range of contiguous dates
• Very efficient for query optimisers
• Leverage indexes and partitions
• Relative to a specific date
• Uses ranged date filter
©2012 Tableau Software Inc. All rights reserved.
Context filters
• All filters are computed independently
• Set one or more filters as context filters
• Any other filters are defined as dependent
filters
• Writes filter result set to temp table
• Subsequent filters and queries on smaller
dataset
• Creation of temp table expensive activity
• Context filters not frequently changed by user
• Custom SQL statements can be optimised
©2012 Tableau Software Inc. All rights reserved.
Quick filters
• Too many quick filters will slow you down
• „Only Relevant Values‟
• Lots of discrete lists
• Try guided analytics over many quick filters
• Multiple dashboards with different levels
• Action filters within a dashboard
©2012 Tableau Software Inc. All rights reserved.
Quick filter alternatives
• Create a parameter and filter based on users‟
selection
• PROS
• Do not require a query before rendering
• Parameters + calculated fields = complex logic
• Can be used to filter across data sources
• CONS
• Single-value selection only
• Selection list cannot be dynamic
©2012 Tableau Software Inc. All rights reserved.
Quick filter alternatives
• Use filter actions between views
• PROS
• Supports multi-value selection
• Evaluated at run-time to show a dynamic list
• Can be used to filter across data sources
• CONS
• Filter actions are more complex to set up
• Not the same UI as parameters or quick filters
• Source sheet still needs to query the data source
©2012 Tableau Software Inc. All rights reserved.
Calculations
• Basic and aggregate vs. table calculations
• Calculations vs. native features
• Performance techniques
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Basic and aggregate calculations
• Basic and aggregate calculations
• Expressed as part of the query sent to data
source
• Calculated by the database
• Basic calculations scale very well
• Tuning techniques can improve performance
• Table calculations
• Calculated locally on query results returned
• Generally done over a smaller set of records
• If performance is slow…
• Then push calculations to data source layer
• Consider aggregated data extracts
©2012 Tableau Software Inc. All rights reserved.
Calculations vs. native features
• Native features often more efficient than a
manual calculation
• Grouping dimension members together
• Consider using groups
• Grouping measure values together into „bins‟
• Consider using bins
• Changing displayed values for dimension
members
• Consider using aliases
©2012 Tableau Software Inc. All rights reserved.
Performance techniques
• Data type used has a significant impact on
performance
• Integers are faster than Booleans
• Both are faster than Strings
• Use Booleans for basic logic calculations
• Bad
• IF [DATE]= TODAY() THEN “TODAY” ELSE “NOT TODAY” END
• Good
• [DATE]=TODAY()
• String searches
• FIND() slower than CONTAINS()
• CONTAINS() slower than wildcard match quick
filter
©2012 Tableau Software Inc. All rights reserved.
Performance techniques
• Parameters for conditional calculations
• Take advantage of „display as‟
• Integer values for calculation logic
VALUE DISPLAY AS
YEAR YEAR
QUARTER QUARTER
MONTH MONTH
WEEK WEEK
DAY DAY
VALUE DISPLAY AS
1 YEAR
2 QUARTER
3 MONTH
4 WEEK
5 DAY
©2012 Tableau Software Inc. All rights reserved.
Dashboard
• Desktop design considerations
• Server optimizations
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Desktop considerations
• Less views, less quick filters
• Each view requires at least one query
• Each quick filter requires at least one query
• Can result into a lot of I/O before rendering
• Dashboards process views from same data
source in a serial fashion
• “Exclude all values”
• Avoids expensive query of asking for all data
©2012 Tableau Software Inc. All rights reserved.
Server optimizations
• Turn off tabs
• Must process every view in every tab
• Need to understand structure of tabs for actions
or filters
• Reducing tabs improves performance
• Try „:tabs=no‟
• Fixed size dashboards
• Different window sizes mean views are drawn
differently
• VizQL server must render view separately for
each user
• “Automatic (Fit To Window)” has low cache hit
rate
©2012 Tableau Software Inc. All rights reserved.
Analyze performance
• Tableau desktop messages
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Tableau desktop messages
• Executing query
• Process
• Execute a query to return records for the view
• Investigate
• Review log file to see queries taking long time
• Possible solution
• Consider calculation, query and filter techniques
©2012 Tableau Software Inc. All rights reserved.
Tableau desktop messages
• Computing View Layout
• Process
• Tableau rendering display on all data received
• Investigate
• Slow-running table calculations
• Very large crosstab
• Lots of marks rendered
• Possible solution
• Review techniques for calculation optimisation
and view design
©2012 Tableau Software Inc. All rights reserved.
Tableau desktop messages
• Computing quick filters
• Process
• Tableau is processing quick filters for view(s)
• Investigate
• Long time rendering and refreshing quick filters
• Possible solution
• Consider not using „show relevant values‟
• Consider not using enumerated quick filters
• Review techniques for filter performance and
view design
©2012 Tableau Software Inc. All rights reserved.
FIN
©2012 Tableau Software Inc. All rights reserved.
Additional Topics
©2012 Tableau Software Inc. All rights reserved.
Data sources
• File-based data sources
• Relational data sources
• OLAP data sources
• Web-based data sources
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
File-based data sources
• Import into Tableau‟s fast data engine
• Microsoft JET driver
• 255 columns, 255 characters
• No COUNT DISTINCT or MEDIAN
• Files greater than 4GB in size
• Tableau text parser
• Used when no data modeled
©2012 Tableau Software Inc. All rights reserved.
Relational data sources
• Indexes
• On all columns part of table JOINs
• On any column used in FILTER
• Referential integrity
• Primary and foreign key explicitly defined
• Helps bypass integrity checks
• Join culling
• Partitioning
• Split larger table into smaller, individual tables
• Partition across dimension
©2012 Tableau Software Inc. All rights reserved.
Relational data sources
• NULLs
• Define dimension as NOT NULL
• Increase effectiveness of indexes
• Calculations
• Very complex calculations in a view or function
within DB
• Create a custom SQL
• Summary tables
• Summarize data to higher level of aggregation
©2012 Tableau Software Inc. All rights reserved.
Other data sources
• OLAP data sources
• Underlying language differences
• Metadata definition
• Filtering
• Totals and aggregations
• Data blending
• Web-based data sources
• “Connect live” not an option
• Extracts can be refreshed
• Automated and scheduled
©2012 Tableau Software Inc. All rights reserved.
Queries
• Understanding the query
• Multiple tables vs. custom SQL
• Blending vs. joining
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Understanding the query
• Slow-running visualisation
• Time it takes to query
• Time to stream records back
• Number of records
• Large number vs. smaller number of
aggregated records
• Desktop log files
©2012 Tableau Software Inc. All rights reserved.
Multiple tables vs. custom SQL
• Multiple tables
• Dynamically create SQL based on fields
• Join culling to drop unused dimension tables
• Referential integrity
• Custom SQL
• Never deconstructed, and executed atomically
• Use in conjunction with Tableau‟s data engine
• Context filters materialise results in a temp
table
• Include parameters in SQL statements
©2012 Tableau Software Inc. All rights reserved.
Blending vs. joining
• More than one data source
• Blend data or federated database system
• Join is better on same data source
• Improve performance
• Improve filtering control
• Blend is better across data sources
• Too many records for a join to be practical
• Display summary and details at the same time
©2012 Tableau Software Inc. All rights reserved.
Extracts
• Creating extracts
• Extracts vs. live connections
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Creating extracts
• Factors
• Database technology
• Network speed
• Data volumes
• Workstation specs
• Fast CPU with multiple cores
• Lots of RAM
• Fast I/O
• Creation requires temp disk space
• Up to square of the size of resulting extract file
• Create extract on workstation, populate on
server
©2012 Tableau Software Inc. All rights reserved.
Filtering
• Quick filters
• User filters
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Quick filters
• Enumerated quick filters can be slow
• Requires a query for all potential field values
• Multiple value list
• Single value list
• Compact list
• Slider
• Measure filters
• Ranged date filters
• Non-enumerated quick filters can be helpful
• Do not require field values
• Custom value list
• Wildcard match
• Relative date filters
• Browse period date filters
• Performance at the expense of visual context for end user
©2012 Tableau Software Inc. All rights reserved.
Quick filters
• Show potential values in 3 different ways
• All values in database
• No need to re-query when other filters changed
• All values in context
• Temp table regardless of other filters
• Only relevant values
• Other filters are considered
©2012 Tableau Software Inc. All rights reserved.
User filters
• More data source I/O
• Need to ask exact same query again
• More cache space required
• Each user session creates own query results
and model cache
• Caches being cleared can result in more I/O
©2012 Tableau Software Inc. All rights reserved.
Calculations
• Performance techniques
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Performance techniques
• Date conversion
• Numeric field to a string to a date is inefficient
• Bad
• DATE(LEFT(STR([YYYYMMDD]),4) + “-“ + MID(STR([YYYYMMDD]),4,2) + “-“ +
RIGHT(STR([YYYYMMDD]),2))
• Keep numeric field and use DATEADD()
• Good
• DATEADD(„DAY‟, [YYYYMMDD]%100-1, DATEADD(„MONTH‟,
INT(([YYYYMMDD]%10000)/100)-1, DATEADD(„YEAR‟, INT([YYYYMMDD]/10000)-1900,
#1900-01-01#)))
• Date functions
• NOW() on for time stamp
• TODAY() for date level
©2012 Tableau Software Inc. All rights reserved.
Performance techniques
• Logic statements
• ELSEIF != ELSE IF
IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] = "CONSUMER"
THEN "EAST-CONSUMER"
ELSE IF [REGION] = "EAST" AND CUSTOMER SEGMENT] <>"CONSUMER"
THEN "EAST-ALL OTHERS"
END
END
• would run much faster as:
IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] = "CONSUMER"
THEN "EAST-CONSUMER"
ELSEIF [REGION] = "EAST" AND [CUSTOMER SEGMENT] <>"CONSUMER"
THEN "EAST-ALL OTHERS"
END
• but this is faster still:
IF [REGION] = "EAST" THEN
IF [CUSTOMER SEGMENT] = "CONSUMER" THEN
"EAST-CONSUMER"
ELSE "EAST-ALL OTHERS"
END
END
©2012 Tableau Software Inc. All rights reserved.
Performance techniques
• Separate basic and aggregate calculations
• When using extracts and custom aggregations
• Divide calculations into multiple parts
• Row level calculations on one calculated field
• Aggregated calculations on second calculated
field
©2012 Tableau Software Inc. All rights reserved.
Dashboards and views
• Views
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Views
• Only fetch and draw what you need
• Remove unnecessary fields from level of detail
• Charts vs. crosstabs
• Marks display faster than a tabular report
• Rendering a text table consumes more memory
• Tableau is not a back door data extract process
• Leverage aggregate to detail action filters
• Removing unnecessary geographic roles
• Save time to lookup generated latitudes &
longitudes
©2012 Tableau Software Inc. All rights reserved.
Views
• Blending vs. custom geographic roles
• Custom geocoding embeds entire
GEOCODING.FDB
• Significant increase in TWBX file size
• Joining or blending geographic data is smaller
size
• Save only relevant custom geographic data
©2012 Tableau Software Inc. All rights reserved.
Tools to analyze performance
• Tableau 8 performance metrics
• Log files
• Database performance monitors
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
Performance metrics V8
• Interpret performance recording
• Timeline
• Workbook, dashboard, worksheet
• Events
• Event nature and duration
• Query
• Executing query in either timeline or events
©2012 Tableau Software Inc. All rights reserved.
Performance metrics events
• Computing layouts
• If layouts are taking too long, consider simplifying your workbook.
• Connecting to data source
• Slow connections could be due to network issues or issues with the
database server.
• Executing query
• If queries are taking too long, consult your database server‟s
documentation.
• Generating extract
• To speed up extract generation, consider only importing some data from
the original data source.
• Geocoding
• To speed up geocoding performance, try using less data or filtering out
data.
• Blending data
• To speed up data blending, try using less data or filtering out data.
• Server rendering
• You can speed up server rendering by running additional VizQL Server
processes on additional machines.
©2012 Tableau Software Inc. All rights reserved.
Log files
• Understand where bottlenecks are occurring
• Information on what Tableau is doing
• Tableau communication with the data source
• Time taken by each Tableau step
• For Tableau Desktop
• C:UsersusernameDocumentsMy Tableau RepositoryLogs
• For Tableau Server, the VizQL log file:
• C:ProgramDataTableauTableau ServerdatatabsvcvizqlserverLogs
©2012 Tableau Software Inc. All rights reserved.
Database performance monitors
• Database performance monitors
• Insight on queries hitting your DB
• Understand how database processes them
• Advice on additional tuning
• Tableau 8 performance metrics
• Turn on to record metrics
©2012 Tableau Software Inc. All rights reserved.
Tableau server
• General performance guidelines
• Caching
©2012 Tableau Software Inc. All rights reserved.
©2012 Tableau Software Inc. All rights reserved.
General guidelines
• General guidelines
• Use a 64-bit operating system
• Ensures 64-bit version of Tableau data engine
• 32-bit processes have access to more memory
• Add more cores and memory
• Configuration
• Schedule extract refreshes for off-peak hours
• Check the VizQL session timeout limit
• Default is 30 minutes
• Idle session still consumes memory
• Change using tabadmin
• vizqlserver.session.expiry.timeout.setting
• Assess your process configuration
©2012 Tableau Software Inc. All rights reserved.
Caching
• Maximise cache use
• Reuse image tile and model caches
• Set dashboard size rule to „exact size‟
• Tuning caches
• Tableau server configuration utility
• Minimise queries
• Balanced
• Most up-to-date
• “:refresh=yes” to view URL
• Tabadmin
• Model cache
• vizqlserver.modelcachesize:30
• Query cache
• vizqlserver.querycachesize:64

More Related Content

PPTX
Embedding with Tableau Server
PPT
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
PDF
Tableau Customer Presentation
PDF
Understanding Tableau's Visual Pipeline
PPTX
Tableau overview presentation
PPTX
Tableau
PPTX
Five Things I Wish I Knew the First Day I Used Tableau
Embedding with Tableau Server
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau Customer Presentation
Understanding Tableau's Visual Pipeline
Tableau overview presentation
Tableau
Five Things I Wish I Knew the First Day I Used Tableau

What's hot (20)

PDF
Austin Tableau User Group Presentation
PDF
Online data sources for analaysis
PDF
Tableau product overview 10.3
PPTX
Tableau Basic Questions
PPTX
Visualization using Tableau
PPT
Tableau PPT Intro, Features, Advantages, Disadvantages
PDF
TABLEAU for Beginners
PDF
Tableau Best Practices for OBIEE
PDF
Tableau Suite Analysis
PDF
How to Improve Data Analysis Through Visualization in Tableau
PDF
Empowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
PPT
Tableau desktop & server
PPTX
Tableau online training
PPTX
Relational data modeling trends for transactional applications
PDF
SAS/Tableau integration
PPTX
HOW TO SAVE PILEs of $$$ BY CREATING THE BEST DATA MODEL THE FIRST TIME (Ksc...
PPTX
Tableau Server Basics
PDF
Data Visualization and Discovery
PPTX
Migrate a successful transactional database to azure
PPTX
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
Austin Tableau User Group Presentation
Online data sources for analaysis
Tableau product overview 10.3
Tableau Basic Questions
Visualization using Tableau
Tableau PPT Intro, Features, Advantages, Disadvantages
TABLEAU for Beginners
Tableau Best Practices for OBIEE
Tableau Suite Analysis
How to Improve Data Analysis Through Visualization in Tableau
Empowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
Tableau desktop & server
Tableau online training
Relational data modeling trends for transactional applications
SAS/Tableau integration
HOW TO SAVE PILEs of $$$ BY CREATING THE BEST DATA MODEL THE FIRST TIME (Ksc...
Tableau Server Basics
Data Visualization and Discovery
Migrate a successful transactional database to azure
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
Ad

Viewers also liked (19)

PPTX
Tableau presentation
PPTX
Tableau Software - Business Analytics and Data Visualization
PPT
Learning Tableau - Data, Graphs, Filters, Dashboards and Advanced features
PDF
Tableau Drive, A new methodology for scaling your analytic culture
PDF
Tableau Developer
DOCX
Ankit Patel - Tableau Developer
PPTX
Tableau free tutorial
PDF
whitepapertableauforenterprise_0
PDF
ISATUG meetup Feb 9, 2016
PDF
NetApp Tableau Presentation Final
PPTX
Data first with Tableau [FutureStack16]
PDF
Enterprise TUG Webinar 9.2 Upgrade 2-15-16
PDF
Whitepaper tableau for-the-enterprise-0
PDF
whitepaper_advanced_analytics_with_tableau_eng
PPTX
Webマーケターを支援するtableau(タブロー)のケイパビリティ
PPTX
March 2016 PHXTUG Meeting
PDF
Tableau @ Facebook - Summer 2014
PPTX
Ashley Ohmann--Data Governance Final 011315
PPTX
How Concur uses Big Data to get you to Tableau Conference On Time
Tableau presentation
Tableau Software - Business Analytics and Data Visualization
Learning Tableau - Data, Graphs, Filters, Dashboards and Advanced features
Tableau Drive, A new methodology for scaling your analytic culture
Tableau Developer
Ankit Patel - Tableau Developer
Tableau free tutorial
whitepapertableauforenterprise_0
ISATUG meetup Feb 9, 2016
NetApp Tableau Presentation Final
Data first with Tableau [FutureStack16]
Enterprise TUG Webinar 9.2 Upgrade 2-15-16
Whitepaper tableau for-the-enterprise-0
whitepaper_advanced_analytics_with_tableau_eng
Webマーケターを支援するtableau(タブロー)のケイパビリティ
March 2016 PHXTUG Meeting
Tableau @ Facebook - Summer 2014
Ashley Ohmann--Data Governance Final 011315
How Concur uses Big Data to get you to Tableau Conference On Time
Ad

Similar to Designing dashboards for performance shridhar wip 040613 (20)

PPT
TCC14 tour hague optimising workbooks
PPTX
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
PDF
Meta scale kognitio hadoop webinar
PDF
Pr dc 2015 sql server is cheaper than open source
PPTX
SQL Explore 2012: P&T Part 1
PPT
ORACLE 12C-New-Features
PDF
Data Warehouse Design Considerations
PPTX
Jethro for tableau webinar (11 15)
PDF
Breaking data
PDF
Remote DBA Experts SQL Server 2008 New Features
PPT
Datastage Introduction To Data Warehousing
PPTX
Optimizing Access with SQL Server
PDF
Ds03 data analysis
PPTX
1. SQL Server forSharePoint geeksA gentle introductionThomas Vochten • Septem...
PPTX
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
PDF
Test Automation for Data Warehouses
PDF
Introduction to datomic
PDF
SQLSaturday 664 - Troubleshoot SQL Server performance problems like a Microso...
PPTX
SharePoint Saturday St. Louis 2014: What SharePoint Admins need to know about...
PPTX
DevOps+Data: Working with Source Control
TCC14 tour hague optimising workbooks
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
Meta scale kognitio hadoop webinar
Pr dc 2015 sql server is cheaper than open source
SQL Explore 2012: P&T Part 1
ORACLE 12C-New-Features
Data Warehouse Design Considerations
Jethro for tableau webinar (11 15)
Breaking data
Remote DBA Experts SQL Server 2008 New Features
Datastage Introduction To Data Warehousing
Optimizing Access with SQL Server
Ds03 data analysis
1. SQL Server forSharePoint geeksA gentle introductionThomas Vochten • Septem...
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
Test Automation for Data Warehouses
Introduction to datomic
SQLSaturday 664 - Troubleshoot SQL Server performance problems like a Microso...
SharePoint Saturday St. Louis 2014: What SharePoint Admins need to know about...
DevOps+Data: Working with Source Control

Recently uploaded (20)

PPTX
Machine Learning_overview_presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Mushroom cultivation and it's methods.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPT
Teaching material agriculture food technology
PDF
Empathic Computing: Creating Shared Understanding
PPTX
A Presentation on Artificial Intelligence
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Approach and Philosophy of On baking technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Encapsulation theory and applications.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
Machine Learning_overview_presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
Building Integrated photovoltaic BIPV_UPV.pdf
Mushroom cultivation and it's methods.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Spectroscopy.pptx food analysis technology
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document
Teaching material agriculture food technology
Empathic Computing: Creating Shared Understanding
A Presentation on Artificial Intelligence
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Approach and Philosophy of On baking technology
Spectral efficient network and resource selection model in 5G networks
Encapsulation theory and applications.pdf
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Group 1 Presentation -Planning and Decision Making .pptx

Designing dashboards for performance shridhar wip 040613

  • 1. PRESENTED BY Name Here Designing dashboards for performance Mrunal Shridhar Product Consulting, EMEA
  • 2. ©2012 Tableau Software Inc. All rights reserved. Basic principles • Everything in moderation • If it isn‟t fast in database, it won‟t be fast in Tableau • If it isn‟t fast in desktop, it won‟t be fast in server ©2012 Tableau Software Inc. All rights reserved.
  • 3. ©2012 Tableau Software Inc. All rights reserved. Extracts • Aggregated extracts • Optimizing extracts ©2012 Tableau Software Inc. All rights reserved.
  • 4. ©2012 Tableau Software Inc. All rights reserved. Aggregated extracts • Helps improve performance • Aggregate to summary level • Filter unnecessary values • Hide all unused fields • Multiple level of detail across extracts • Querying from higher aggregation to detail
  • 5. ©2012 Tableau Software Inc. All rights reserved. Optimizing extracts • Optimize deterministic calculations • String manipulations and concatenations • Groups and sets • Non-deterministic calculations not stored • Cheaper to store data than recalculate
  • 6. ©2012 Tableau Software Inc. All rights reserved. Filtering • Filtering categorical dimensions • Filtering dates • Context filters • Quick filters ©2012 Tableau Software Inc. All rights reserved.
  • 7. ©2012 Tableau Software Inc. All rights reserved. Filtering categorical dimensions • Discrete filters can be slower • Keep only and exclude perform poor • Complex WHERE clause • Join on a temp table • Ranged filters can be faster • Faster than large itemised list of discrete values • Faster when increasing dimensions cardinality • Indexes impact efficiency of filters
  • 8. ©2012 Tableau Software Inc. All rights reserved. Filtering dates • Discrete dates or date levels • Can result in poor query execution • Tables not partitioned on DATEPART • Data extract can optimise performance • DATEPART materialised in extract • Range of contiguous dates • Very efficient for query optimisers • Leverage indexes and partitions • Relative to a specific date • Uses ranged date filter
  • 9. ©2012 Tableau Software Inc. All rights reserved. Context filters • All filters are computed independently • Set one or more filters as context filters • Any other filters are defined as dependent filters • Writes filter result set to temp table • Subsequent filters and queries on smaller dataset • Creation of temp table expensive activity • Context filters not frequently changed by user • Custom SQL statements can be optimised
  • 10. ©2012 Tableau Software Inc. All rights reserved. Quick filters • Too many quick filters will slow you down • „Only Relevant Values‟ • Lots of discrete lists • Try guided analytics over many quick filters • Multiple dashboards with different levels • Action filters within a dashboard
  • 11. ©2012 Tableau Software Inc. All rights reserved. Quick filter alternatives • Create a parameter and filter based on users‟ selection • PROS • Do not require a query before rendering • Parameters + calculated fields = complex logic • Can be used to filter across data sources • CONS • Single-value selection only • Selection list cannot be dynamic
  • 12. ©2012 Tableau Software Inc. All rights reserved. Quick filter alternatives • Use filter actions between views • PROS • Supports multi-value selection • Evaluated at run-time to show a dynamic list • Can be used to filter across data sources • CONS • Filter actions are more complex to set up • Not the same UI as parameters or quick filters • Source sheet still needs to query the data source
  • 13. ©2012 Tableau Software Inc. All rights reserved. Calculations • Basic and aggregate vs. table calculations • Calculations vs. native features • Performance techniques ©2012 Tableau Software Inc. All rights reserved.
  • 14. ©2012 Tableau Software Inc. All rights reserved. Basic and aggregate calculations • Basic and aggregate calculations • Expressed as part of the query sent to data source • Calculated by the database • Basic calculations scale very well • Tuning techniques can improve performance • Table calculations • Calculated locally on query results returned • Generally done over a smaller set of records • If performance is slow… • Then push calculations to data source layer • Consider aggregated data extracts
  • 15. ©2012 Tableau Software Inc. All rights reserved. Calculations vs. native features • Native features often more efficient than a manual calculation • Grouping dimension members together • Consider using groups • Grouping measure values together into „bins‟ • Consider using bins • Changing displayed values for dimension members • Consider using aliases
  • 16. ©2012 Tableau Software Inc. All rights reserved. Performance techniques • Data type used has a significant impact on performance • Integers are faster than Booleans • Both are faster than Strings • Use Booleans for basic logic calculations • Bad • IF [DATE]= TODAY() THEN “TODAY” ELSE “NOT TODAY” END • Good • [DATE]=TODAY() • String searches • FIND() slower than CONTAINS() • CONTAINS() slower than wildcard match quick filter
  • 17. ©2012 Tableau Software Inc. All rights reserved. Performance techniques • Parameters for conditional calculations • Take advantage of „display as‟ • Integer values for calculation logic VALUE DISPLAY AS YEAR YEAR QUARTER QUARTER MONTH MONTH WEEK WEEK DAY DAY VALUE DISPLAY AS 1 YEAR 2 QUARTER 3 MONTH 4 WEEK 5 DAY
  • 18. ©2012 Tableau Software Inc. All rights reserved. Dashboard • Desktop design considerations • Server optimizations ©2012 Tableau Software Inc. All rights reserved.
  • 19. ©2012 Tableau Software Inc. All rights reserved. Desktop considerations • Less views, less quick filters • Each view requires at least one query • Each quick filter requires at least one query • Can result into a lot of I/O before rendering • Dashboards process views from same data source in a serial fashion • “Exclude all values” • Avoids expensive query of asking for all data
  • 20. ©2012 Tableau Software Inc. All rights reserved. Server optimizations • Turn off tabs • Must process every view in every tab • Need to understand structure of tabs for actions or filters • Reducing tabs improves performance • Try „:tabs=no‟ • Fixed size dashboards • Different window sizes mean views are drawn differently • VizQL server must render view separately for each user • “Automatic (Fit To Window)” has low cache hit rate
  • 21. ©2012 Tableau Software Inc. All rights reserved. Analyze performance • Tableau desktop messages ©2012 Tableau Software Inc. All rights reserved.
  • 22. ©2012 Tableau Software Inc. All rights reserved. Tableau desktop messages • Executing query • Process • Execute a query to return records for the view • Investigate • Review log file to see queries taking long time • Possible solution • Consider calculation, query and filter techniques
  • 23. ©2012 Tableau Software Inc. All rights reserved. Tableau desktop messages • Computing View Layout • Process • Tableau rendering display on all data received • Investigate • Slow-running table calculations • Very large crosstab • Lots of marks rendered • Possible solution • Review techniques for calculation optimisation and view design
  • 24. ©2012 Tableau Software Inc. All rights reserved. Tableau desktop messages • Computing quick filters • Process • Tableau is processing quick filters for view(s) • Investigate • Long time rendering and refreshing quick filters • Possible solution • Consider not using „show relevant values‟ • Consider not using enumerated quick filters • Review techniques for filter performance and view design
  • 25. ©2012 Tableau Software Inc. All rights reserved. FIN
  • 26. ©2012 Tableau Software Inc. All rights reserved. Additional Topics
  • 27. ©2012 Tableau Software Inc. All rights reserved. Data sources • File-based data sources • Relational data sources • OLAP data sources • Web-based data sources ©2012 Tableau Software Inc. All rights reserved.
  • 28. ©2012 Tableau Software Inc. All rights reserved. File-based data sources • Import into Tableau‟s fast data engine • Microsoft JET driver • 255 columns, 255 characters • No COUNT DISTINCT or MEDIAN • Files greater than 4GB in size • Tableau text parser • Used when no data modeled
  • 29. ©2012 Tableau Software Inc. All rights reserved. Relational data sources • Indexes • On all columns part of table JOINs • On any column used in FILTER • Referential integrity • Primary and foreign key explicitly defined • Helps bypass integrity checks • Join culling • Partitioning • Split larger table into smaller, individual tables • Partition across dimension
  • 30. ©2012 Tableau Software Inc. All rights reserved. Relational data sources • NULLs • Define dimension as NOT NULL • Increase effectiveness of indexes • Calculations • Very complex calculations in a view or function within DB • Create a custom SQL • Summary tables • Summarize data to higher level of aggregation
  • 31. ©2012 Tableau Software Inc. All rights reserved. Other data sources • OLAP data sources • Underlying language differences • Metadata definition • Filtering • Totals and aggregations • Data blending • Web-based data sources • “Connect live” not an option • Extracts can be refreshed • Automated and scheduled
  • 32. ©2012 Tableau Software Inc. All rights reserved. Queries • Understanding the query • Multiple tables vs. custom SQL • Blending vs. joining ©2012 Tableau Software Inc. All rights reserved.
  • 33. ©2012 Tableau Software Inc. All rights reserved. Understanding the query • Slow-running visualisation • Time it takes to query • Time to stream records back • Number of records • Large number vs. smaller number of aggregated records • Desktop log files
  • 34. ©2012 Tableau Software Inc. All rights reserved. Multiple tables vs. custom SQL • Multiple tables • Dynamically create SQL based on fields • Join culling to drop unused dimension tables • Referential integrity • Custom SQL • Never deconstructed, and executed atomically • Use in conjunction with Tableau‟s data engine • Context filters materialise results in a temp table • Include parameters in SQL statements
  • 35. ©2012 Tableau Software Inc. All rights reserved. Blending vs. joining • More than one data source • Blend data or federated database system • Join is better on same data source • Improve performance • Improve filtering control • Blend is better across data sources • Too many records for a join to be practical • Display summary and details at the same time
  • 36. ©2012 Tableau Software Inc. All rights reserved. Extracts • Creating extracts • Extracts vs. live connections ©2012 Tableau Software Inc. All rights reserved.
  • 37. ©2012 Tableau Software Inc. All rights reserved. Creating extracts • Factors • Database technology • Network speed • Data volumes • Workstation specs • Fast CPU with multiple cores • Lots of RAM • Fast I/O • Creation requires temp disk space • Up to square of the size of resulting extract file • Create extract on workstation, populate on server
  • 38. ©2012 Tableau Software Inc. All rights reserved. Filtering • Quick filters • User filters ©2012 Tableau Software Inc. All rights reserved.
  • 39. ©2012 Tableau Software Inc. All rights reserved. Quick filters • Enumerated quick filters can be slow • Requires a query for all potential field values • Multiple value list • Single value list • Compact list • Slider • Measure filters • Ranged date filters • Non-enumerated quick filters can be helpful • Do not require field values • Custom value list • Wildcard match • Relative date filters • Browse period date filters • Performance at the expense of visual context for end user
  • 40. ©2012 Tableau Software Inc. All rights reserved. Quick filters • Show potential values in 3 different ways • All values in database • No need to re-query when other filters changed • All values in context • Temp table regardless of other filters • Only relevant values • Other filters are considered
  • 41. ©2012 Tableau Software Inc. All rights reserved. User filters • More data source I/O • Need to ask exact same query again • More cache space required • Each user session creates own query results and model cache • Caches being cleared can result in more I/O
  • 42. ©2012 Tableau Software Inc. All rights reserved. Calculations • Performance techniques ©2012 Tableau Software Inc. All rights reserved.
  • 43. ©2012 Tableau Software Inc. All rights reserved. Performance techniques • Date conversion • Numeric field to a string to a date is inefficient • Bad • DATE(LEFT(STR([YYYYMMDD]),4) + “-“ + MID(STR([YYYYMMDD]),4,2) + “-“ + RIGHT(STR([YYYYMMDD]),2)) • Keep numeric field and use DATEADD() • Good • DATEADD(„DAY‟, [YYYYMMDD]%100-1, DATEADD(„MONTH‟, INT(([YYYYMMDD]%10000)/100)-1, DATEADD(„YEAR‟, INT([YYYYMMDD]/10000)-1900, #1900-01-01#))) • Date functions • NOW() on for time stamp • TODAY() for date level
  • 44. ©2012 Tableau Software Inc. All rights reserved. Performance techniques • Logic statements • ELSEIF != ELSE IF IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] = "CONSUMER" THEN "EAST-CONSUMER" ELSE IF [REGION] = "EAST" AND CUSTOMER SEGMENT] <>"CONSUMER" THEN "EAST-ALL OTHERS" END END • would run much faster as: IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] = "CONSUMER" THEN "EAST-CONSUMER" ELSEIF [REGION] = "EAST" AND [CUSTOMER SEGMENT] <>"CONSUMER" THEN "EAST-ALL OTHERS" END • but this is faster still: IF [REGION] = "EAST" THEN IF [CUSTOMER SEGMENT] = "CONSUMER" THEN "EAST-CONSUMER" ELSE "EAST-ALL OTHERS" END END
  • 45. ©2012 Tableau Software Inc. All rights reserved. Performance techniques • Separate basic and aggregate calculations • When using extracts and custom aggregations • Divide calculations into multiple parts • Row level calculations on one calculated field • Aggregated calculations on second calculated field
  • 46. ©2012 Tableau Software Inc. All rights reserved. Dashboards and views • Views ©2012 Tableau Software Inc. All rights reserved.
  • 47. ©2012 Tableau Software Inc. All rights reserved. Views • Only fetch and draw what you need • Remove unnecessary fields from level of detail • Charts vs. crosstabs • Marks display faster than a tabular report • Rendering a text table consumes more memory • Tableau is not a back door data extract process • Leverage aggregate to detail action filters • Removing unnecessary geographic roles • Save time to lookup generated latitudes & longitudes
  • 48. ©2012 Tableau Software Inc. All rights reserved. Views • Blending vs. custom geographic roles • Custom geocoding embeds entire GEOCODING.FDB • Significant increase in TWBX file size • Joining or blending geographic data is smaller size • Save only relevant custom geographic data
  • 49. ©2012 Tableau Software Inc. All rights reserved. Tools to analyze performance • Tableau 8 performance metrics • Log files • Database performance monitors ©2012 Tableau Software Inc. All rights reserved.
  • 50. ©2012 Tableau Software Inc. All rights reserved. Performance metrics V8 • Interpret performance recording • Timeline • Workbook, dashboard, worksheet • Events • Event nature and duration • Query • Executing query in either timeline or events
  • 51. ©2012 Tableau Software Inc. All rights reserved. Performance metrics events • Computing layouts • If layouts are taking too long, consider simplifying your workbook. • Connecting to data source • Slow connections could be due to network issues or issues with the database server. • Executing query • If queries are taking too long, consult your database server‟s documentation. • Generating extract • To speed up extract generation, consider only importing some data from the original data source. • Geocoding • To speed up geocoding performance, try using less data or filtering out data. • Blending data • To speed up data blending, try using less data or filtering out data. • Server rendering • You can speed up server rendering by running additional VizQL Server processes on additional machines.
  • 52. ©2012 Tableau Software Inc. All rights reserved. Log files • Understand where bottlenecks are occurring • Information on what Tableau is doing • Tableau communication with the data source • Time taken by each Tableau step • For Tableau Desktop • C:UsersusernameDocumentsMy Tableau RepositoryLogs • For Tableau Server, the VizQL log file: • C:ProgramDataTableauTableau ServerdatatabsvcvizqlserverLogs
  • 53. ©2012 Tableau Software Inc. All rights reserved. Database performance monitors • Database performance monitors • Insight on queries hitting your DB • Understand how database processes them • Advice on additional tuning • Tableau 8 performance metrics • Turn on to record metrics
  • 54. ©2012 Tableau Software Inc. All rights reserved. Tableau server • General performance guidelines • Caching ©2012 Tableau Software Inc. All rights reserved.
  • 55. ©2012 Tableau Software Inc. All rights reserved. General guidelines • General guidelines • Use a 64-bit operating system • Ensures 64-bit version of Tableau data engine • 32-bit processes have access to more memory • Add more cores and memory • Configuration • Schedule extract refreshes for off-peak hours • Check the VizQL session timeout limit • Default is 30 minutes • Idle session still consumes memory • Change using tabadmin • vizqlserver.session.expiry.timeout.setting • Assess your process configuration
  • 56. ©2012 Tableau Software Inc. All rights reserved. Caching • Maximise cache use • Reuse image tile and model caches • Set dashboard size rule to „exact size‟ • Tuning caches • Tableau server configuration utility • Minimise queries • Balanced • Most up-to-date • “:refresh=yes” to view URL • Tabadmin • Model cache • vizqlserver.modelcachesize:30 • Query cache • vizqlserver.querycachesize:64