PRESENTED BY Alan Eldridge Sales Consultant Tableau Software Australia.
-
Upload
lillian-mccall -
Category
Documents
-
view
220 -
download
2
Transcript of PRESENTED BY Alan Eldridge Sales Consultant Tableau Software Australia.
PRESENTED BY
Alan EldridgeSales ConsultantTableau Software Australia
What we will cover…
©2011 Tableau Software Inc. All rights reserved.
• Architecture
• Scalability & Availability
• Caching
Overview
©2011 Tableau Software Inc. All rights reserved.
Tableau DesktopSelf-service visual
data analysis
Informationconsumers
(Tableau Reader)connectlive
extract
Web & mobileusers
(Tableau Server interactors)
Presentation
Tableau ServerRapid fire business intelligence
Repository
Security
Management/Automation
Data Server
Cache
connectlive
extract
Architecture
©2011 Tableau Software Inc. All rights reserved.
Terminology
©2011 Tableau Software Inc. All rights reserved.
• Process – an instance of a computer program that is being executed. It has its own set of resources (e.g. memory) that are not shared with other processes.
• Thread – a process may run multiple threads to perform instructions in parallel. Threads within a process share resources (e.g. memory).
• Server – a program running to serve the requests of other programs. The term is also used to refer to a physical computer dedicated to run one or more services.
Tableau Server
Tableau Server
Relational
OLAP
Files
Data
Tableau Server
Relational
OLAP
Files
Data
Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Tableau Server
Relational
OLAP
Files
Data
Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load BalancerReceives incoming client requests and directs them to the appropriate service for action
Acts as a load balancer, routing traffic round-robin to service instances
Returns HTML responses to client
Single-process; multi-threaded
Tableau Server
Relational
OLAP
Files
Data
Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Processes logins, content searches, user/group/permission management, and other tasks not related to visualizing data
Works in conjunction with data stored in the Repository
Multi-server; multi-process; multi-threaded
Tableau Server
Relational
OLAP
Files
Data
Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Active Directory
Stores Tableau Server metadata: users, group assignments, permissions, projects, etc.
Also stores flat files used as data sources
Responds to queries from other services when they need metadata
Has a SQL interface so external applications can connect (read-only)
If used, verifies authentication in conjunction with the App Server and Repository
Repository
Tableau Server
Relational
OLAP
Files
Data
Data Source D
rivers Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Active Directory
VizQL Server
Provides same functionality as Tableau Desktop, processing requests related to data visualisation
Includes built-in caching (more on this later…)
Multi-server; multi-process; multi-threaded
Native drivers need to be installed for each data source (32-bit)
Repository
Tableau Server
Relational
OLAP
Files
Data
Data Source D
rivers Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Active Directory
VizQL Server
Data ExtractHost
Repository
Invoked when a visualisation including a data extract is published
Stores and processes data extracts
Multi-threaded; 64-bit
Tableau Server
Relational
OLAP
Files
Data
Data Source D
rivers Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Active Directory
VizQL Server
Data ExtractHost
Backgrounder
Controls tasks that ensure Tableau Server is running smoothly and efficiently
When the Data Extract Host is used, also handles scheduled data refreshes
Multi-server; multi-process
Repository
Tableau Server
Relational
OLAP
Files
Data
Data Source D
rivers Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Active Directory
VizQL Server
Data ExtractHost
Backgrounder
Data ServerInvoked when a data source is published
via Tableau Desktop
Serves as proxy between requests for data and individual data sources
Enables centralized metadata management for data sources and an additional layer of access control
Allows centralized driver deployment
Allows multiple workbooks to us the same data extract
Multi-server; multi-process; multi-threaded; 32-bit
Repository
Tableau Server
Relational
OLAP
Files
Data
Data Source D
rivers Tableau Desktop
Command LineTools
Browser/Mobile
Clients
Gatew
ay/Load Balancer
AppServer
Repository
Active Directory
VizQL Server
Data ExtractHost
Backgrounder
Data Server
Server Monitoring
What you see running…
©2011 Tableau Software Inc. All rights reserved.
Scalability & Availability
©2011 Tableau Software Inc. All rights reserved.
Terminology
©2011 Tableau Software Inc. All rights reserved.
• Scalability – scalability is about supporting multiple simultaneous actions, not about making a single action faster.
• Availability – the ability of a solution to be resistant to component failures. Increasing the availability of a solution will increase the cost.
Terminology
©2011 Tableau Software Inc. All rights reserved.
• Scale Up – adding more resources (CPU, RAM, etc) to a single server.
• Scale Out – adding more resources (CPU, RAM, etc) by adding more servers in a “cluster”.
• Multi-Process – adding more throughput by running multiple instances of a process or service. These can be on a single server or can be distributed across multiple servers.
• Multi-Threaded – within a process, being able to perform multiple tasks simultaneously across multiple CPUs.
Terminology
©2011 Tableau Software Inc. All rights reserved.
• Single Point of Failure – within a solution, a component that if it fails will cause the solution to fail as a whole.
• Active/Active – when all instances of a multi-process service will process requests.
• Active/Passive – when only some instances of a multi-process service will process requests and the other instances are only activated in the event of a component failure.
Server Scalability
©2011 Tableau Software Inc. All rights reserved.
Service Multi-Process Multi-Threaded High Availability
VizQL Server Yes Yes Active/Active
Data Server Yes Yes Active/Active
Application Server Yes Yes Active/Active
Backgrounder Yes No Active/Active
Data Extract Host No Yes Active/Passive
Repository No No Active/Passive
Gateway No No Manual Failover
Server Scalability
Primary Node
Starting with a single server – everything is installed on one machine…
Server Scalability
Primary Node
Scale up - add more resources and run more service instances if required.
Server Scalability
Server Scalability
Primary Node Worker Node
Scale out – add a worker node running some or all of the services.
Server Scalability
Server Scalability
Primary Node Worker Node
Scale out – add a worker node running some or all of the services.
Server Scalability
Primary Node Worker Node
If the extract host or the repository fail…
Server Scalability
Primary Node Worker Node
… the standby will take over as the active.
Server Scalability
Primary Node Worker Node
When the failure is repaired, it starts up in standby mode.
Server Scalability
Primary Node Worker Node
Worker Node
Worker nodes don’t need all the services – e.g. handling lots of extract refreshes…
Server Scalability
Primary Node Worker NodeWorker Node
Separate the gateway and now our architecture starts to have HA properties…
Server Scalability
ServerDown
Primary Node Worker NodeWorker Node
We can survive a total server failure of any worker node.
Server Scalability
Primary Node Worker NodeWorker Node
For full HA, we require a failover gateway server.
Server Scalability
ServerDown
Worker NodeWorker Node
In the event of a gateway failure…
Server Scalability
ServerDown
Primary Node
Worker NodeWorker Node
… we activate the failover gateway, but this is not automatic.
Caching
©2011 Tableau Software Inc. All rights reserved.
Terminology
©2011 Tableau Software Inc. All rights reserved.
• Performance – the speed with which a single process can be completed, assuming no contention for resources.
• Caching – a transparent store of values that have been calculated so that future requests for the same data can be serviced more quickly.
Caching
©2011 Tableau Software Inc. All rights reserved.Data Source
VizQL Server
GatewayDashboard
1. Image Tile Cache
Image Tile Cache
©2011 Tableau Software Inc. All rights reserved.
• Dashboards are delivered to the client as a series of image “tiles” – these are assembled to show the complete dashboard.
• We can use this cache if:• Same dashboard (duh!)• No per-user security• Same dashboard size
• Handled by the gateway service, one per VizQL worker node
Image Tile Cache
©2011 Tableau Software Inc. All rights reserved.
• There is one single, simple step you can take to maximise the reuse of image tiles…
• Fixed size dashboards!
If We Miss the Image Tile Cache…
©2011 Tableau Software Inc. All rights reserved.Data Source
VizQL Server
GatewayDashboard
2. Model Cache
1. Tile Cache
Model Cache
©2011 Tableau Software Inc. All rights reserved.
• When re-rendering the dashboard we check to see if computations have already be done• calculated fields, table
calculations, reference lines, trend lines, etc
• We can use this cache if:• No change to data• No change to calcs
• Model cache is RAM based per VizQL server instance
If We Miss the Model Cache…
©2011 Tableau Software Inc. All rights reserved.Data Source
VizQL Server
GatewayDashboard
2. Model Cache
3. Query Result Cache
1. Tile Cache
Query Result Cache
©2011 Tableau Software Inc. All rights reserved.
• The query result cache holds the results from queries we have sent to data sources
• We can use this cache if:• Dimensions and measures
are the same• Filters are the same – this
means no per user security• Cache has not expired or is
not explicitly bypassed
• Query result cache is RAM based per VizQL server instance
Managing Caching
©2011 Tableau Software Inc. All rights reserved.
• Model cache• vizqlserver.modelcachesize:30• The number of models to cache, where there is one model per
viz instance in a workbook
• Query result cache• vizqlserver.querycachesize:64• The size in megabytes of query results to cache
©2011 Tableau Software Inc. All rights reserved.
Managing Caching
©2011 Tableau Software Inc. All rights reserved.
• Distributing components is a scalability strategy, not a performance strategy
• Caching is per-process• Distribution can hurt performance due to missing the cache
Managing Caching
One Last Layer…
©2011 Tableau Software Inc. All rights reserved.Data Source
VizQL Server
GatewayDashboard
Data Extract
2. Model Cache
3. Query Result Cache
1. Tile Cache
Extracts
©2011 Tableau Software Inc. All rights reserved.
• Also can be used as a form of cache to improve user response times• Using aggregated extracts
can improve performance even further (at the sacrifice of granularity)
• Can be scheduled to refresh fully or incrementally
• Using the Data Server they can be shared across multiple workbooks
Extracts
©2011 Tableau Software Inc. All rights reserved.
Summary
©2011 Tableau Software Inc. All rights reserved.
• Tableau Server provides a flexible, scalable architecture that (in general) can look after itself.
• Growing a Tableau Server installation to support more users and data is simple and does not require deep technical skills.
• By understanding how Tableau Server’s caching mechanisms work, we can design our dashboards for optimal performance.• Unless you have a reason not to, make all dashboards fixed
size.
Q&A
©2011 Tableau Software Inc. All rights reserved.