Tableau and JDBC
Tableau supports JDBC (Java Database Connectivity) drivers for several connectors. This includes both official named connectors, such as Athena, and generic connector for use with other JDBC-based drivers, called Other Databases (JDBC).
JDBC requires Java, which makes it platform-independent. Starting with version 2020.2, all Tableau applications are bundled with the Java Runtime, so you don't have to install it separately.
Note: If you’re using a version of Tableau Desktop before 2020.2, see the Driver Downloads(Link opens in a new window) page for instructions on installing Java.
Tableau supports the ability to customise your JDBC data connection, which can improve the connection experience. For more information, see Customise and Tune Connections.
Tableau provides no guarantee or warranty that using the Other Databases (JDBC) connector with any particular JDBC driver or database will be able to successfully connect and query data. Some JDBC drivers will support the full Tableau interactive experience, while others may work only for creating extracts. Some JDBC drivers might not work with Tableau.
Note: Tableau will provide reasonable levels of customer support to assist in troubleshooting connections with JDBC drivers, but can't create or customise a connector to work with a specific JDBC driver.
Here’s a list of some common problems and steps to resolution.
I'm seeing a ‘Missing Java’ message. What now?
This sometimes happens if you’re using a version of Tableau before 2020.2 or using Kerberos on Windows. See the Driver Downloads(Link opens in a new window) page for instructions on installing the correct version of Java for your connector.
Starting with version 2020.2, all Tableau applications are bundled with the Java Runtime, so you won't have this error.
I'm seeing a "Missing Driver" message. What should I do?
Install the driver, and any libraries it depends on, in one of the following paths:
- Windows: C:\Program Files\Tableau\Drivers
- Mac: /Library/JDBC or ~/Library/JDBC
- Linux: /opt/tableau/tableau_driver/jdbc
Ensure that the driver is readable by the user running Tableau, or the Tableau service user.
I have multiple JDBC drivers installed for Tableau, but I'm having trouble connecting. What should I do?
If you have multiple JDBC drivers installed for Tableau, they may use different versions of the same third-party library. This may cause problems in unpredictable ways. If you have strange errors while connecting, and you have multiple JDBC drivers installed in the JDBC drivers folder, then you can use the following steps to isolate them.
Suppose you have these libraries installed in the JDBC folder:
To isolate the Athena driver from the Postgres driver, install them in separate subdirectories:
After you’ve moved the drivers, restart Tableau.
I'm seeing a “ClassNotFoundException” (or similar) message. What should I do?
If you’re running a JDBC driver that isn’t Java 11 compatible, you may experience problems running Tableau.
If you think your issues might be caused by Java 11:
- Download Java 64-bit JRE (Java Runtime Environment) or JDK (Java Development Kit) from AdoptOpenJDK:
- Go to https://adoptopenjdk.net/releases.html.
- Select OpenJDK 11, and select Hotspot.
- Select Other Platforms to view a full list of options.
- Download the JRE or JDK for your operating system.
- On the computer running Tableau, set an environment variable like one of the following:
How do I resolve proxy problems?
Starting with version 2019.4, when Tableau runs on Windows, it reads proxy settings by enabling the
useSystemProxies option for Java.
In some cases, this can cause problems. For example, if you select ‘Use the same proxy server for all protocols’, the Java Virtual Machine tries to use a SOCKS proxy.
To find instructions for resolving this issue, see the Tableau Knowledge Base article called Tableau Fails To Connect to Amazon Athena through Proxy With Error Code 37CE01A3. This article refers to Athena specifically, but this can apply to any JDBC connector.
I'm having trouble connecting to a server with SSL. What can I try?
If you see an error message like “Couldn’t find SSL verification path”, you may need to configure a certificate or private keys.
See One-Way SSL for JDBC Connections for instructions on using a certificate. If you’re using an Oracle JDBC driver, see Oracle JDBC Connections with SSL for information on using the appropriate certificates and/or key to connect.
Using Other Database (JDBC) connector with a Postgres JDBC driver, attempts to create extracts sometimes fail. What can I try?
You may run into errors if the Postgres driver fetch size isn’t set and if auto-commit is enabled. The driver will attempt to handle too much data at a time, and won’t be able to.
Try the following:
- Set the fetch size for your data using defaultRowFetchSize.
See the JDBC Driver(Link opens in a new window) page on the PostgreSQL site for details.
- Disable auto-commit by creating (or editing an existing) TDC file. Include the following in the TDC file:
<?xml version='1.0' encoding='utf-8' ?>
<connection-customization class="genericjdbc" enabled="true" version="10">
<customization name="CAP_JDBC_QUERY_DISABLE_AUTO_COMMIT" value="yes"/>
Note: While this step is required when you use the Other Database (JDBC) connector, it isn’t required for for named Tableau connector because auto-commit is already set by default.
For more information on using a TDC file for JDBC connections, see Customise and Tune Connections.
Other Databases (JDBC) – Describes how to connect to your data using the generic JDBC connector.
Customise and Tune Connections - Describes how to use TDC and PROPERTIES files to customise connections.
One-Way SSL for JDBC Connections – Provides instructions on using a certificate with a JDBC driver to access a server with SSL.
Tableau JDBC Capability Customisations Reference – Lists customisations you can use to define which Tableau capabilities are supported by the data source.