You can translate the document:


This document explains how to configure Denodo and Tableau Desktop to maximize the compatibility between both tools.

Installing the Denodo JDBC Driver on Tableau Desktop

Starting with Tableau version 2021.4 users can access Denodo using the JDBC driver instead of an ODBC connection. Normally, JDBC has a better performance compared to ODBC.

To use the JDBC connector, in Tableau navigate to “More… > Additional Connectors > Denodo JDBC by Denodo Technologies” and then click on the Install and Restart Tableau button.

After restarting Tableau you will see Denodo’s JDBC connector on the list of available connectors.

Before using the new connector, you will need to install the Denodo JDBC driver.

You can find Denodo’s JDBC drivers at JDBC Drivers. Download the corresponding driver version and place it on Tableau’s installation directory.

Normally on Windows this will be : C:\Program Files\Tableau\Drivers

Restart Tableau Desktop again.

To create a new Denodo JDBC connection go to Denodo JDBC By Denodo Technologies under the Connect panel and provide the connection details.

Complete the parameters and click on the Sign In button. You will see the data source creation Page. Now, you can drag and drop your tables, create your model, and Tableau will communicate to Denodo using the JDBC protocol.

Customizing a JDBC connection

To modify the connection made with the JDBC connector, the Query timeout and Chunk timeout parameters of the JDBC driver are provided in the "Advanced" tab of the Denodo JDBC By Denodo Technologies window. To customize the JDBC connection using other  JDBC Driver Parameters, the PROPERTIES file can be used

 1. Stop Tableau Desktop.

 2. Create the file or “ the old versions of Tableau Desktop) in the directory <My Tableau Repository>/Datasources.

3. Add JDBC properties one line at a time in the format <prop_key>=<value> like this one:

# Lines with "properties" contain <prop_key>=<value>

keepAlive=<value in seconds>


4. Start Tableau Desktop and try to connect to Denodo.

To verify that the properties file is in place, open the file C:\Users\<user>\Documents\My Tableau Repository\Logs\log.txt and look for a line like this one:

{"ts":"2023-07-24T22:03:51.643","pid":5764,"tid":"1934","sev":"info","req":"-","sess":"-","site":"-","user":"-","k":"msg","v":"Found jdbc customizations file: C:\\Users\\<your_user>\\Documents\\My Tableau Repository\\Datasources\\"}

More information about a JDBC connection

Instructions for older Tableau Versions

Denodo is included as a Data Source option since Tableau 10.4. This connector uses ODBC to communicate with the Virtual DataPort server. In newer versions of Tableau with support for Denodo’s JDBC driver using JDBC is the preferred option following the steps in the previous section.

Creating the Denodo Data Source in Tableau Desktop

  1. In Tableau, go to Data > New Data Source
  2. Select To a Server > More… > Denodo
  3. In the Denodo dialog fill in the following fields:
  1. Server: name of the server where the Virtual DataPort server is running
  2. Port: ODBC port number, by default it is 9996
  3. Database: name of the Denodo virtual database you want to connect to.
  4. Authentication: select between the authentication methods provided:
  1. Username and Password: Uses standard authentication.
  2. Integrated Authentication: With this option, the adapter will use “Integrated Authentication” (single sign-on) to connect to the Denodo server.
  • Server: When using “Integrated authentication”, enter the Fully Qualified Domain Name of the host where the Denodo server runs..
  • Database: The name of the database that has configured the Kerberos authentication for ODBC/ADO.NET connections.

Before using this option, you need to enable Kerberos authentication for the ODBC interface of the Denodo database you are connecting to. To do this, follow the 1 to 4 of the article How to set up SSO with pass-through for ODBC connections to Denodo.

  1. Select Require SSL if SSL is needed.
  2. Finally, click Sign In.

In addition, Tableau Help includes one article explaining how to configure the connection from Tableau to Denodo.

NOTE: Tableau Server support for “Integrated Authentication” (single sign-on) was introduced in Tableau 2019.2. Older Tableau Server versions can connect to Denodo with Kerberos authentication using a service account.

Increasing the Fetch Size of the Tableau Connector

This section explains how to increase the "fetch size" of the Denodo connector of Tableau.

In some scenarios, the connection between Tableau and the Denodo server is slow. For example, when a majority of reports send queries to Denodo that return a large number of rows, and Tableau and/or Denodo run on the cloud or in a network with high latency. In these cases, increasing the fetch size may be beneficial.

By default, the Denodo connector of Tableau requests that the Denodo server sends data back to Tableau in network packets that are 2,048 bytes long. This is called "fetch size". Increasing the size of the network packets, reduces the number of network trips. However, increasing it too much may cause queries to run slower than with the default value. That is because if the fetch size is too big, Denodo will have to wait for packets "to be filled with data" before sending the packet to Tableau. Therefore, if the majority of reports of your users only return a few hundred rows, it is better to use the default fetch size.

To increase the default fetch size you have to use a Tableau Data Source Customization file (a .tdc file).

Create a file called “denodo.tdc” with the following content:

<?xml version='1.0' encoding='utf-8' ?>  

<connection-customization class='denodo' enabled='true' version='8.10'>  

        <vendor name='denodo'/>  

        <driver name='denodo'/>  


                <customization name='odbc-connect-string-extras' value='Fetch=10000;Protocol=7.4-0' />



In this file, the element odbc-connect-string-extras has two attributes:

  • Fetch=10000: fetch size in bytes. You can tweak the value. Increasing it over 10,000 rarely provides any benefit but can slow down some reports.
  • Protocol=7.4-0: by adding this, the Denodo connector does not send the command SAVEPOINT. Sending one less command slightly improves the performance.

Follow these steps if you are using Tableau Desktop:

  1. Stop Tableau Desktop.
  2. Copy the file denodo.tdc to C:\Users\<your_user>\Documents\My Tableau Repository\Datasources.
  3. Start Tableau Desktop and try to connect to Denodo.
  4. To verify that the TDC file is in place, open the file C:\Users\<user>\Documents\My Tableau Repository\Logs\log.txt and look for a line like this one:

{"ts":"2019-03-28T10:46:35.671","pid":142076,"tid":"20094","sev":"info","req":"-","sess":"-","site":"-","user":"-","k":"msg","v":"Found matching TDC 'C:\\Users\\<your_user>\\Documents\\My Tableau Repository\\Datasources\\denodo.tdc' for class='denodo', vendor='denodo', and driver='denodo'."}

Follow these steps if you are using Tableau server:

  1. Copy the file denodo.tdc to one of these locations:
  1. For Windows, copy the file to ProgramData\Tableau\Tableau Server\data\tabsvc\vizqlserver\Datasources
  2. For Linux, copy the file to /var/opt/tableau/tableau_server/data/tabsvc/vizqlserver/Datasources/

If you use multiple worker nodes, copy the tdc file to all of them.

  1. Restart Tableau server.

More information about Tableau Datasource Customization (.tdc) files


Firewall killing connections between Tableau and Denodo

A user of Tableau Desktop or Tableau Server can execute reports that hit Denodo. However, after some period of time, when the user tries to run another report, Tableau returns the following error:

Error message: Bad Connection: Tableau could not connect to the data source: server closed the connection unexpectedly

This probably means the server terminated abnormally before or while processing the request. ; server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.

This problem occurs when:

  • There is a firewall between the Denodo server and Tableau (Desktop or Server)
  • The firewall is configured to close connections that have been inactive after a period of time.

To avoid this, create a Tableau Datasource Customization (.tdc) file, which allows to customize the Denodo connector.

The Tableau file will look like this:

<?xml version='1.0' encoding='utf-8' ?>  

<connection-customization class='denodo' enabled='true' version='8.10'>  

    <vendor name='denodo'/>  

    <driver name='denodo'/>  


        <customization name='odbc-connect-string-extras' value='KeepaliveTime=120;Fetch=10000;Protocol=7.4-0' />




The parameter KeepaliveTime instructs the connector to send a Keepalive packet to the Denodo server every 120 seconds. By sending this packet, the firewall does not close the connection because the connection is being used.

This solution will only work when Tableau Server or Tableau Desktop are connected through Denodo using the Denodo named connector, not the "Generic" connector.


Tableau and Denodo Best Practices

Customizing and Tuning ODBC Connections

Denodo connector in the Tableau Help

Creating a TDC file for Tableau Desktop

Using a .tdc File with Tableau Server


Ask a question

You must sign in to ask a question. If you do not have an account, you can register here