What is Tableau Architecture and Server Components?
Tableau Server can connect many tiers. It connects clients from Desktop, web, and mobile. Tableau Desktop is a robust data visualization tool that is highly available and secure. It is a multi-user, multi-threaded, and multi-process system that can run on virtual as well as physical machines.
The architecture of Tableau:
The different components of Tableau Architecture are:
- Data Server
- Data Connector
The primary component of a Tableau Architecture is Data Server. Tableau can connect to multiple data sources, whether they are on-premise or remotely located. It can also connect to a database, web application, excel file at the same time. It can connect data from heterogeneous environments also. It can blend and make relationships with various data sources.
Data Connector acts as an interface between data sources and Data Server. Tableau has its own in-built connector named ODBC/SQL. This helps to connect with any database without the use of any native connector. It has two options to establish connection:
- Live Connection or Real-time data: Tableau can connect real-time data by connecting directly to the external database. It sends dynamic MDX (Multidimensional Expressions) and SQL statements. This feature directly connects the live data. You do not need to import the data. In enterprises where the size of the database is vast and updated periodically, Tableau works as a front-end visualization tool.
- Extracted or In-memory data: Tableau can also extract the data from external data sources by making a local copy in the form of extract file. It can extract millions of records with a single click. Tableau Data Engine uses cache memory, RAM, and ROM for storage and processing of data. Tableau can also extract a few records from a vast database with the help of filters, which also improves the performance. Extracted or In-memory data can also be used offline without connecting with the data source.
The main components in the Tableau Server are:
- Application Server: This is used to provide authentication and authorization that means providing permission for web and mobile interfaces. It records session-id for security purposes. The default session timeout can also be configured.
- VizQL Server: This is used to convert queries into visualizations. When the client request is forwarded to the VizQL Server, it sends the query to the data source and retrieves the response in the form of images. It also creates a cache of visualization to reduce the load time. The cache is then can be shared with the users who have permission to access this.
- Data Server: This is used to manage and store the data. It provides metadata management, data security, data storage, driver requirements. The data can be extracted or make live connections to external data sources.
Gateway is a kind of web server that communicates via HTTP or HTTPS. It handles processes like URL Rewriting, Load Balancer, etc. It channelizes the request from users to Tableau components. When the client makes a request, it gets forwarded to the external load balancer for processing. If an external load balancer is not present, gateway works as a load balancer. A single primary server or gateway manages all the processes in case of single server configuration, but in case of multiple server configuration, one physical system works as a primary server while other works as worker servers. The gateway used by Tableau Server is Apache Tomcat.
The dashboard and visualizations can be viewed and edited using different clients. The clients are:
- Tableau Desktop: It is a business analytics tool that is used to create, view, and publish dashboards.
- Web Browser: The dashboard can be visualized using mobile browsers and applications which are used to edit and view the contents of the workbook.
- Mobile Applications: Web browsers such as Google Chrome, Firefox are supported in Tableau Server. The content can be edited using Web Browsers.
How does Tableau Server Architecture work?
- Firstly, the data from the data sources is sent through the connectors. Then it goes through the repository and data engine- the data engine processes the data received and assigns a value to it.
- SQL connector generates an SQL query for processing the request of the user.
- After the components are received to the data server, it is then sent to VizQL Server (creates the required visualization) and Application Server (determines the type of request).
- Now comes the final stage where the gateway handles all the queries and requests. If required, the request is sent to the secondary server.