Tableau
Learn how to connect and use Tableau with your Exasol database.
Exasol is easily integrated with Tableau and provides Tableau customers the power to visualize and analyze very large live data. You can connect Tableau to your Exasol database using either JDBC (recommended) or ODBC.
To learn how to create content on Tableau, refer to the training videos on the Tableau website.
Exasol takes no responsibility for changes in functionality or terms of use for third-party tools. For more details about the compatibility and use of these tools with Exasol, refer to the respective software vendor’s website.
Prerequisites
- Tableau must be installed
-
Your Exasol database must be running and reachable from the environment where the tool is used.
Exasol SaaS
-
The IP address of the host where the tool is running must be in the allowed IP address list in Exasol SaaS. To learn how to allow traffic to your database, see Network security (SaaS).
-
To connect the tool to an Exasol SaaS cluster you will need the connection string and a personal access token (PAT) for authentication. To learn how to get the connection details, see Connect to Exasol SaaS.
Quick start
This quick start video shows how to connect an Exasol database to Tableau using the native ODBC connector. The procedure when using JDBC is essentially the same, except that you must install the JDBC connector. For more details, see Install and use JDBC/ODBC connectors.
Install drivers
Install the JDBC driver
The connector for JDBC requires the Exasol JDBC driver to be installed for Tableau Desktop and Server. You can download the latest Exasol JDBC driver for your operating system from the Exasol download portal.
Copy the JDBC driver exajdbc.jar to the Tableau installation directory:
-
Tableau Desktop (see Tableau Desktop documentation for details):
C:\Program Files\Tableau\Drivers(Windows)~/Library/Tableau/Drivers(macOS)
-
Tableau Server:
- Windows:
C:\Program Files\Tableau\Drivers - Linux:
/opt/tableau/tableau_driver/jdbc
- Windows:
When using Kerberos under Windows, you must download and run the Windows driver installer EXASOL_JDBC-<version>.msi
, which will install the JDBC driver in C:\Program Files\Exasol\EXASolution-<version>\JDBC\exajdbc.jar.
Only the JDBC driver for Windows supports Kerberos under Windows.
Install the ODBC driver
The connector for ODBC requires the Exasol ODBC driver to be installed for Tableau Desktop and Server.
Download and install the latest Exasol ODBC driver for your operating system from the Exasol download portal.
- Windows and macOS: install the driver by executing the installer.
-
Linux:
-
Unpack the ODBC driver to
/opt/exasol/odbc -
Create or edit file
/etc/odbcinst.iniand add the following entry:[EXASolution Driver]Driver=/opt/exasol/odbc/lib/linux/x86_64/libexaodbc-uo2214lv2.so
-
Install and use JDBC/ODBC connectors
The Exasol JDBC Tableau connector can be downloaded from the Tableau Exchange Extension Gallery.
The Exasol ODBC Tableau connector is distributed together with the Tableau Desktop and Tableau Server applications. We recommend using the latest available version of Tableau to access the Exasol ODBC connector.
You can also download the latest connectors for JDBC and ODBC as .taco files from the GitHub release page.
Install the connectors with Tableau Desktop
Download the latest JDBC or ODBC connector from the GitHub release page and copy the .taco file to:
C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors (Windows)
/Users/[user]/Documents/My Tableau Repository/Connectors (macOS)
Starting with version 0.4.2 the connectors are signed, so you can omit command line argument -DDisableVerifyConnectorPluginSignature.
See details in the documentation for Tableau Desktop and the Tableau Connector SDK.
Install the connectors with Tableau Server
-
Download the latest JDBC or ODBC connector from the GitHub release page and copy the
.tacofile to:/var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Connectors/(Linux)C:\Program Files\Tableau\Connectors(Windows) -
Restart the server.
Starting with version 0.4.2 the connectors are signed, so you can set option native_api.disable_verify_connector_plugin_signature to false if you have changed it to true before. This will switch on signature verification:
tsm configuration set -k native_api.disable_verify_connector_plugin_signature -v false --force-keys
tsm pending-changes apply
After installing the connectors in Tableau, select the connector EXASOL JDBC by Exasol AG
or EXASOL ODBC by Exasol AG
. This will open a connection dialog where you can enter details for connecting to your Exasol database.
JDBC connector - TLS certificate validation
The JDBC connector will always create a TLS encrypted connection to the Exasol database. If the Validate Server Certificate checkbox is checked, the connector will try to verify the TLS certificate of the Exasol server. This option is enabled by default and recommended.
If your Exasol server does not have a valid TLS certificate, enter the fingerprint of the server certificate into the text field Server Certificate Fingerprint. This ensures that you connect to the correct server.
For more information about TLS authentication, see Upload TLS Certificate (AWS) and Upload TLS Certificate (on-prem).
JDBC connector - authenticate with username and password
This authentication method is used for database users created with a password, for example:
CREATE USER my_user IDENTIFIED BY "my_secret_password";
To use this authentication method, select Authentication>Username and Password and enter the username and password. This authentication method works on both Tableau Desktop and Tableau Server.
JDBC connector - authenticate with Kerberos/Active Directory
This authentication method is used for database users created with Kerberos authentication, for example:
CREATE USER my_user IDENTIFIED BY KERBEROS PRINCIPAL "my_user@example.com>";
Make sure to enter the Kerberos domain in UPPERCASE.
To use Kerberos SSO, select Authentication>Kerberos. You do not have to enter a username and password, the connector will use the Kerberos credentials provided by your operating system to connect to Exasol.
Prerequisites
These prerequisites are necessary for using Kerberos with both Tableau Desktop and Server:
-
The Exasol database must be configured to use Kerberos Single Sign-On. For more details, see Kerberos SSO.
To create the keytab file, execute this command on the Windows Domain Controller:
ktpass -out exasol.keytab -mapuser <user> -princ exasol/<fully qualified hostname>@<REALM> -pass <user password> -ptype KRB5_NT_PRINCIPAL -target <REALM> -crypto All
For example:
Copyktpass -out exasol.keytab -mapuser exasoluser -princ exasol/exasoldb.example.com@EXAMPLE.COM -pass **** -ptype KRB5_NT_PRINCIPAL -target EXAMPLE.COM -crypto AllFor more information, see also ktpass (Microsoft Learn).
-
Kerberos must use the service name
exasolfor the database. -
You must use the fully qualified hostname of the Exasol server (for example:
exasoldb.example.com) to connect to the database. You cannot use an IP address to connect. -
The clocks of all connected machines must be in sync. We recommend to synchronize time by configuring an NTP Server.
When using Kerberos under Windows, you must use the Windows installer EXASOL_JDBC-<version>.msi to install the Exasol JDBC driver for Windows. This will install the driver to C:\Program Files\Exasol\EXASolution-<version>\JDBC\exajdbc.jar.
For information about how to dowload the driver installer, see Install drivers.
Using Kerberos with Tableau Desktop
When selecting Kerberos authentication in Tableau Desktop, the connector will use the credentials of the current Windows/macOS user to log in to Exasol.
Using Kerberos With Tableau Server
With Tableau Server, there are two options for using Kerberos authentication:
RunAs account/service account
This will use the Tableau Server’s Kerberos credentials for accessing the Exasol database instead of the user’s account. For instructions, refer to the Tableau documentation for Linux and Windows.
Kerberos delegation
With delegation, the Tableau Server will forward the user’s Kerberos credentials to the Exasol database. For instructions, refer to the Tableau documentation for Linux and Windows.
To use delegation you need to publish a data source through Tableau Desktop:
-
Log in to your Tableau Server using Tableau Desktop.
-
Create a new data source in Tableau Desktop using Kerberos authentication.
-
Select Server > Publish Data Source > (Your data source).
-
Click on Authentication > Edit and select Viewer Credentials as the authentication method from the dropdown menu.
-
Click on Publish.
-
In Tableau Server, create a new Workbook using the data source.
Troubleshooting connection errors
Authentication fails
Can’t connect to Exasol JDBC by Exasol AG Detailed Error Message Connection exception - authentication failed. Unable to connect to the Exasol JDBC by Exasol AG server "exasoldb.example.com". Check that the server is running and that you have access privileges to the requested database.
This is a general error message when authentication fails.
Suggested actions:
When using Username and Password authentication, check that username and password are correct.
When using Kerberos authentication check the following:
-
Verify that the clocks on all machines are synchronized. For the Exasol database you can do the following:
- Check the current time of Exasol by running SQL query
select CURRENT_TIMESTAMP. - Configure one or more NTP servers as described in the documentation.
- Manually trigger NTP synchronization via EXAOperation Cluster Monitoring.
- Check the current time of Exasol by running SQL query
- Verify that Active Directory is setup correctly by running command
dcdiagon the Domain Controller. - Make sure to use the JDBC driver jar for the correct platform (Windows/Linux/Unix). The driver for Windows contains an additional library required for Kerberos on Windows.
-
Download cluster logs from Exasol and check files
*ConnectionServer*for error messages:Request ticket server exasol/exasoldb.example.com@EXAMPLE.COM kvno 12 found in keytab but not with enctype aes128-cts: The keytab does not contain AES encrypted credentials. Generate a new keytab with option-crypto All(recommended) or disable AES for the Exasol service user in Active Directory via options This account supports Kerberos AES 128 bit encryption and This account supports Kerberos AES 256 bit encryption.Request ticket server exasol/exasoldb.example.com@EXAMPLE.COM kvno 10 not found in keytab; keytab is likely out of date: The Exasol service user's password might have been changed. Generate a new keytab file and and upload it via EXAoperations.
Unable to obtain password from user
An unexpected error occurred. If you continue to receive this error please contact your Tableau Server Administrator. Session ID: ABC123-1:0 Unable to obtain password from user Unable to connect to the Exasol JDBC by Exasol AG server "exasoldb.example.com". Check that the server is running and that you have access privileges to the requested database.
This error may occur on Tableau Server when the keytab file is not configured correctly.
Suggested action:
Check that the correct keytab file is configured by executing the following commands:
tsm configuration get -k native_api.datasource_runas_keytab_path tsm configuration get -k native_api.datasource_impersonation_runas_keytab_path
Missing certificate on Tableau Server
Can’t connect to Exasol JDBC by Exasol AG Detailed Error Message Unable to connect to the Exasol JDBC by Exasol AG server "exasoldb.example.com". Check that the server is running and that you have access privileges to the requested database.
This error may occur on Tableau Server when certificate validation is enabled but the Exasol database uses a self-signed TLS certificate.
Suggested action:
Enter the certificate fingerprint in the connection dialog.
Missing certificate fingerprint on Tableau Desktop
java.io.IOException: TLS connection to host (exasoldb.example.com) failed: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. If you trust the server, you can include the fingerprint in the connection string: exasoldb.example.com/ABD591342466880A16A4443DEEFF44A78A26E47514BE4D5E1C4CB712345F69CA:8563. Unable to connect to the Exasol JDBC by Exasol AG server "exasoldb.example.com". Check that the server is running and that you have access privileges to the requested database.
This error may occur when certificate validation is enabled but the Exasol database uses a self-signed TLS certificate.
Suggested action:
Enter the certificate fingerprint in the connection dialog.
GRANT SESSION privilege missing
Connection exception - insufficient privileges: CREATE SESSION. Unable to connect to the Exasol JDBC by Exasol AG server "exasoldb.example.com". Check that the server is running and that you have access privileges to the requested database. Connector Class: exasol_jdbc, Version: 1.0.0 For support, contact Exasol AG.
Suggested action:
GRANT CREATE SESSION TO "<user>"
Outdated JDBC driver
SQLInvalidAuthorizationSpecException: No LoginModules configured for exasol
This error may occur when using an outdated version of the Exasol JDBC driver with Tableau Desktop.
Suggested action:
Use the latest driver version.
Connect Tableau to Exasol
-
In Tableau, create a new Exasol connection using the following parameters:
-
Server: The URL for the Exasol cluster.
For Exasol SaaS, use the connection string provided in the web console.
-
Port: The Exasol database port (8563).
-
Username: The name of the Exasol user.
-
Password: The password of the Exasol user.
For Exasol SaaS, use a valid personal access token as password.
-
-
Click on Sign In.
For more information about how to use Tableau, refer to the Tableau documentation.
