Tableau Server für IT-Admins Architektur und Integration Dr. Konstantin Greger Associate Sales Consultant Tableau Software (DACH) Starting a movement… TED Talk von Derek Sivers Transformation geschieht jetzt Menschen Prozesse 01000100 01000001 01010100 01000001 Daten Technologie Self Service, der skaliert 1. 2. 3. 4. 5. 6. Governance Sicherheit Skalierbarkeit Verfügbarkeit Monitoring Management Die Testversion Sie haben die Server Testversion heruntergeladen, die Installationsroutine gestartet, ein paarmal “Next” geklickt… Gratuliere – Sie haben einenTableau Server! Und jetzt …? Von der Testversion zur Enterprise-Plattform Monitoring, Management, Governance, Scalability, Availability, Security Application / Services Infrastructure Systems Network, Storage, APIs / Extensibility / Integration Service Desk (ITIL) Tableau Server Data SQL Tableau Server Data Tableau Server Clients Browser/Mobile SQL Tableau Desktop Command Line Tools Data Tableau Server Clients Browser/Mobile SQL Tableau Desktop Command Line Tools Data Tableau Server Clients Browser/Mobile SQL Tableau Desktop Command Line Tools Data Tableau Server Clients Browser/Mobile Tableau Desktop SQL Command Line Tools Base Install Responsible for monitoring various components, detecting failures, and executing failover when needed. In distributed installations, responsible for ensuring there is a quorum for making decisions during failover. Manages the licensing of Tableau Server through periodic compliance checks. Data Clients Tableau Server Browser/Mobile Gateway SQL Tableau Desktop Command Line Tools Base Install Receives incoming client requests and directs them to the appropriate service for action. Acts as a load balancer, routing traffic across multiple service instances. Data Clients Tableau Server Browser/Mobile Gateway SQL Tableau Desktop Command Line Tools Repository Stores Tableau Server metadata: users, group assignments, permissions, projects, etc. Also stores flat files (TWB, TDS). Responds to queries from other services when they need metadata. Holds audit data for performance reporting. Has a SQL interface so external applications can connect (read-only). App Server Base Install Includes two processes – one that renders the web portal (vizportal) and one that handles REST APIs (wgserver). Processes logins, content searches, content and permission management, uploads/downloads and other tasks not related to visualizing data. Data Clients Tableau Server Browser/Mobile Gateway SQL Tableau Desktop Command Line Tools Repository Search & Browse Base Install Handles fast search, filter, retrieval , and display of content metadata on the server. App Server Data Clients Tableau Server Browser/Mobile Gateway SQL Tableau Desktop Command Line Tools Repository Search & Browse Base Install If used, verifies authentication in conjunction with the App Server and Repository. Active Directory/SAML App Server Data Data Source Drivers Browser/Mobile Gateway SQL Clients Tableau Server Tableau Desktop Command Line Tools Repository Drivers need to be installed for each data source (32-bit or 64-bit, depending on installed version of Tableau Server). Search & Browse Base Install Downloads and more details at http://www.tableau.com/support/drivers Active Directory/SAML App Server Data Data Source Drivers Browser/Mobile Gateway SQL Clients Tableau Server Cache Server Tableau Desktop VizQL Server Command Line Tools Repository The query cache used to be local to each service but now it is distributed and shared across the server cluster. The cache speeds user experience across many scenarios. VizQL Server, Backgrounder, and Data Server make requests to the Cache Server before hitting the data source. Search & Browse App Server Base Install Loads and renders views, computes and executes queries. Active Directory/SAML Data File Store Data Source Drivers Data Engine Browser/Mobile Gateway SQL Clients Tableau Server Cache Server Tableau Desktop VizQL Server Command Line Tools Repository Search & Browse App Server Base Install Stores and services queries to data extracts (TDE). Installed with the Data Engine. Automatically replicates extracts across data engine nodes. Invoked when a data extract is published or viewed. Active Directory/SAML Data File Store Data Engine Browser/Mobile Backgrounder Gateway Data Source Drivers SQL Clients Tableau Server Cache Server Tableau Desktop VizQL Server Command Line Tools Repository Runs maintenance tasks to ensure Tableau Server is running efficiently. Search & Browse Base Install When the Data Engine is used, also handles scheduled data refreshes. Handles tasks initiated via TABCMD. Active Directory/SAML App Server Data Clients Tableau Server Data Server File Store Browser/Mobile Backgrounder Gateway Data Source Drivers SQL Data Engine Cache Server Tableau Desktop VizQL Server Command Line Tools Repository Search & Browse Base Install Active Directory/SAML App Server Invoked when a data source is published via Tableau Desktop. Serves as proxy for queries to the actual data source (file, DB server or extract host). Enables centralized metadata management for data sources and an additional layer of access control. Allows multiple workbooks to use the same data extract. Allows centralized driver deployment. Data Clients Tableau Server Data Server File Store Browser/Mobile Backgrounder Gateway Data Source Drivers SQL Data Engine Cache Server Tableau Desktop VizQL Server Command Line Tools Repository Search & Browse Base Install Active Directory/SAML App Server Deployment Architekturen Trial Deployment / Prototyping • Eine einzelne Maschine, Default-Installation • Nutzung der mitgelieferten Beispiel-Arbeitsmappen • Publizieren erster selbstgemachter Arbeitsmappen und Dashboards Wir raten vom Load Testing auf Trial Deployments ab Higher Risk Deployment Klein und einfach: Produktions Deployment • Primary Node Base Install Gateway * Application Server ** VizQL Server ** Cache Server ** Data Server ** Data Engine ** File Store ** Backgrounder * Repository * Search * 1x8 Core Maschine – – – Gateway, Repository, Application Server, Data Engine sind Single Points of Failure auf Single Node Maschinen. Hinzufügen weiterer Serverprozesse zu Lasten der Performance und Skalierung mit mehr Anwendern. Single Machine Deployment • Abzuwägen: – – Backgrounder ist CPU und IOintensive. Kann andere Serverprozesse bei steigender Auslastung ausbremsen. 1x8 Core Maschine 8GB RAM pro Core 5MBPS IOPS oder mehr – – Ein Knoten ist einfach zu verwalten und zu administrieren. Gut geeignet für kleine Teams mit wenig oder gar keinem Support durch die IT. Hardware und Software sind Single Points of Failure, dadurch höheres Risiko von Ausfallzeiten. Wahrscheinlichkeit von Resourcenkonflikten (RAM, IO) steigt mit zunehmender Nutzung. Lower Risk Deployment, Increased Availability Mittelgroßes Deployment Base Install Primary Node • Multi-Machine Deployment Worker Node * Gateway * Application Server * Application Server * VizQL Server ** Cache Server **** Data Server ** Data Engine * File Store * Backgrounder * Repository * Search * 1x8 Core Maschine * Setzt ELB voraus Base Install Gateway VizQL Server ** Cache Server **** Data Server ** 1x8 Core Maschine Zusätzliches Gateway* reduziert Risiko. Zusätzlicher Worker bietet RAM, IO an. Repository bleibt aber Single Point of Failure Backgrounder kann arbeiten, ohne Repository, VizQL und Data Engine Resourcen streitig zu machen. – 2x8 Core Maschinen • Abzuwägen: – Geringe Zunahme an Komplexität für Firmen/Teams ohne IT-Support. – Verbesserte Verfügbarkeit (auf Prozessebene) mit zwei Maschinen. – Repository ist immer noch ein Single Point of Failure. – Skalierbar bis zu gewissem Grad, Konkurrenz um Resourcen (RAM, IO) steigt unter Last. Extrakt-lastiges Produktions Deployment 501-1000 Users Worker Node 1 Backgrounder (N to 2N) **** 1x8Physical Core or VM 1x8 Core 64GB + 4GB = 68 GB RAM 2 zusätzliche Backgrounders für höhere Exktrakt-Performance 1 zusätzlicher Worker 2 zusätzliche VizQL Server 2 zusätzliche Cache Server 2 zusätzliche Data Engines Base Install Base Install Gateway Worker Node 2 Gateway * Gateway * Application Server * Application Server * VizQL Server ** VizQL Server **** Cache Server ** Cache Server **** Data Server ** Data Engine ** File Store * Repository (active) * Search * 1x8 Core Base Install Primary Node Data Server ** Data Engine ** File Store * Search * 1x8 Core Eine Enterprise Deployment Architektur Firewall Policy Server Client SSO Shadow Sync Reverse Proxy Maps Untrusted Zone (Internet) Public DMZ App Zone Database DB Zone Intranet Zone HTTP(S) Server Primary Cluster Controller Laden einer Visualisierung Coordination Search & Browse Licensing File Store VizPortal Search & Browse Data Engine File Store VizQL Server Cluster Controller Coordination HTTP(S) Server Data Engine Coordination Worker 3 Search & Browse Cluster Controller HTTP(S) Server Coordination Worker 2 Cluster Controller HTTP(S) Server Worker 1 Gateway File Store Backgrounder Backgrounder Active Repository Passive Repository Gateway, etc. Gateway, etc. Benutzer-Authentifizierung SAML Kerberos Row Level Security - Kerberos A B Tableau Server Skalierbarkeit Skalierbarkeit Die Tableau-Architektur ist auf Skalierbarkeit ausgelegt Scale up Scale out Analyse-Frequenz für hilfreiche Entscheidungen Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen Analyse-Frequenz für hilfreiche Entscheidungen Niedrig (Tage) 1. Beispiele: Hypotheken-Inventar Traditionelle Business Intelligence Niedrig (Tage) Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen Analyse-Frequenz für hilfreiche Entscheidungen 5. Moderat (Stunden) Niedrig (Tage) Beispiele: Patientenkapazität im Krankenhaus Händler-Management 1. Beispiele: Hypotheken-Inventar Traditionelle Business Intelligence Niedrig (Tage) Moderat (Stunden) Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen Analyse-Frequenz für hilfreiche Entscheidungen Hoch (Sekunden) 9. Beispiele: Monitoring in der Luftverkehrskontrolle Ausführung von FinanzhandelsOperationen 5. Moderat (Stunden) Niedrig (Tage) Beispiele: Patientenkapazität im Krankenhaus Händler-Management 1. Beispiele: Hypotheken-Inventar Traditionelle Business Intelligence Niedrig (Tage) Moderat (Stunden) Hoch (Live) Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen Analyse-Frequenz für hilfreiche Entscheidungen Hoch (Sekunden) 7. 8. 9. Beispiele: WWW Data Exploration Tableau Public (USPräsidentenwahl) 30T Aufrufe/h Beispiele: Sales-Quoten Dashboards Beispiele: Monitoring in der Luftverkehrskontrolle Ausführung von FinanzhandelsOperationen Moderat (Stunden) 4. 5. 6. Beispiele: Lagerbestandsanalysen Kundenanalysen für Versicherungen Marketing (Zielgruppenanalyse) Beispiele: Patientenkapazität im Krankenhaus Händler-Management Beispiele: Dashboards zur Eskalation von Supportfällen Finance Portfolio Dashboards Betrugsanalysen Niedrig (Tage) 1. 2. 3. Beispiele: Hypotheken-Inventar Traditionelle Business Intelligence Beispiele: Who’s Hot Tracking von Sales Leads Beispiel: Web-Informationen zur aktuellen Verkehrssituation Niedrig (Tage) Moderat (Stunden) Hoch (Live) Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen Analyse-Frequenz für hilfreiche Entscheidungen Hoch (Sekunden) 7. 8. 9. Beispiele: WWW Data Exploration Tableau Public (USPräsidentenwahl) 30T Aufrufe/h Beispiele: Sales-Quoten Dashboards Beispiele: Monitoring in der Luftverkehrskontrolle Ausführung von FinanzhandelsOperationen Moderat (Stunden) 4. Niedrig (Tage) 1. Hohe bis moderate Nutzung externer 5. Query Caches Beispiele: Lagerbestandsanalysen Kundenanalysen für Versicherungen Marketing (Zielgruppenanalyse) Beispiele: Patientenkapazität im Krankenhaus Händler-Management 6. Beispiele: Dashboards zur Eskalation von Supportfällen Finance Portfolio Dashboards Betrugsanalysen 2. 3. Niedrige bis moderate Nutzung von Query Beispiele: Beispiel: Caches Beispiele: Hypotheken-Inventar Traditionelle Business Intelligence Who’s Hot Tracking von Sales Leads Web-Informationen zur aktuellen Verkehrssituation Niedrig (Tage) Moderat (Stunden) Hoch (Live) Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen 7. 8. 9. Beispiele: WWW Data Exploration Tableau Public (USPräsidentenwahl) 30T Aufrufe/h Beispiele: Sales-Quoten Dashboards Beispiele: Monitoring in der Luftverkehrskontrolle Ausführung von FinanzhandelsOperationen Moderat (Stunden) 4. 5. 6. Beispiele: Lagerbestandsanalysen Kundenanalysen für Versicherungen Marketing (Zielgruppenanalyse) Beispiele: Patientenkapazität im Krankenhaus Händler-Management Beispiele: Dashboards zur Eskalation von Supportfällen Finance Portfolio Dashboards Betrugsanalysen Niedrig (Tage) 1. 2. 3. Beispiele: Hypotheken-Inventar Traditionelle Business Intelligence Beispiele: Who’s Hot Tracking von Sales Leads Beispiel: Web-Informationen zur aktuellen Verkehrssituation VizQL, Data Server (publizierte DQ), Data Engine, Cache Server Analyse-Frequenz für hilfreiche Entscheidungen Hoch (Sekunden) Niedrig (Tage) Backgrounder hinzufügen Moderat (Stunden) Hoch (Live) Datenaktualisierungs-Frequenz für hilfreiche Entscheidungen PERFORMANCE Verbesserungen in unseren Produkten Abfragen (Queries) Data Engine allg. ServerVerbesserungen Parallele Abfragen Vektorisierung All Query Improvements Query Fusion Parallele Ausführungspläne RenderingPerformance Performance-Vergleich Ein Test-Dashboard mit ca. 100 Millionen Zeilen Flugdaten gerendert in ca. 25 Sekunden in Version 8.3 Das gleiche Dashboard gerendert in 12 Sekunden in Version 9.0 Connection Pools Connection Session DB Connection Session DB Connection group Connection Connection pool Connection Session Connection Session Session Connection DB Connection group Connection pool Session DB Hochverfügbarkeit 9 9 9 9 9 35 Tage 4 Tage 8 Stunden 50 Minuten 5 Minuten % HTTP(S) Server Primary Cluster Controller Coordination Coordination Search & Browse Licensing HTTP(S) Server Coordination Search & Browse Data Engine File Store VizPortal Cluster Controller Coordination HTTP(S) Server Cluster Controller Worker 2 Gateway Worker 1 Repository Failover Search & Browse Data Engine File Store VizQL Server Active Repository Passive Repository Gateway, etc. Gateway, etc. Einige Anmerkungen… Ausgelöst durch: Repository-Prozess Cluster Controller hat stirbt einen Oder… Anführer tabadmin failoverrepository Coordination Services für die [--target <host name or Demo kombiniert IPv4>|--preferred] HTTP(S) Server Primary Cluster Controller ! Coordination Coordination Search & Browse Licensing HTTP(S) Server Coordination Search & Browse Data Engine File Store VizPortal ! Cluster Controller Coordination HTTP(S) Server Cluster Controller Worker 2 Gateway Worker 1 Repository Failover Search & Browse Data Engine File Store VizQL Server Active Repository Passive Repository Passive Repository Active Repository Gateway, etc. Gateway, etc. Fast fertig. Einige Prozesse benötigen einige Minuten, um wieder voll einsatzbereit zu werden... …Vizportal …API Server …VizQL Server …Data Server …Backgrounder …API Search Index Ehemals aktives Repository wartet als neues passives. Heterogene Enterprise-Konnektiviät Mehr als 40 spezialisierte Konnektoren outof-the-box, zzgl. generischer ODBC-Treiber Out-of-the-box Unterstützung für Big Data Quellen, relationale Datenbanken, zudem SAP HANA zertifiziert Der Web Data Connector erlaubt es, beliebige Web Daten in Tableau zu laden Die Data API des Tableau SDK erlaubt es, beliebige Daten nach Tableau zu bringen Erweiterbarkeit mit dem Tableau SDK • JavaScript API: Integration von Visualisierungen in Web Applikationen – Selektionen, Filter anwenden/entfernen – Abfangen von Events, bidirektional – Bauen einer eigenen Werkzeugleiste • Extract API : Laden beliebiger Daten in Tableau – Flexible Unterstützung mehrerer Sprachen (Java/C/C++/Python) – Bauen von Daten Extrakten auf beliebigen Maschinen • REST API : Server Interaktion in beliebigen Sprachen – Automatisierung des Anlegens neuer Anwender – Verschieben von Projekten, Workbooks – Aktualisieren von Permissions usw. Server Architecture Deep Dive Prozessablauf – Web Visualization Gateway VizQL Server publizierte Datenquelle (live) Permissions/Metadaten/TWB/TWBX Postgres Extrakte Data Engine Live- Verbindung Data Server (Extrakte) KundenDatenquelle Prozessablauf – Administratives Management Gateway JSON -RPC Application Server (JAVA) Search Service SOLR Postgres Prozessablauf - REST API Gateway API Services (früher: WGserver) SOLR Postgres Prozessablauf – Publizierte Datenquellen Gateway Data Server (Extrakte) Permissions/Metadaten/TDS/TDSX Publizierte Datenquelle (live) Postgres Extrakte Data Engine Live-Verbindung OriginalDatenquelle Prozessablauf – Backgrounder Backgrounder Extrakt-Aktualisierung Postgres Data Engine Identisch wie Web Visualization Flow Data Clients Tableau Server Data Server File Store Browser/Mobile Backgrounder Gateway Data Source Drivers SQL Data Engine Cache Server Tableau Desktop VizQL Server Command Line Tools Repository Search & Browse Base Install Active Directory/SAML App Server Eine Enterprise Deployment Architektur Firewall Policy Server Client SSO Shadow Sync Reverse Proxy Maps Untrusted Zone (Internet) Public DMZ App Zone Database DB Zone Intranet Zone simpel… … ist nicht das selbe wie simplistisch Die Tableau Architektur unterstützt Unternehmen Tableau Server für IT-Admins Architektur und Integration