Tableau SDK Connector

This page provides instructions on how to install the Dremio connector based on the new Tableau SDK Connector Framework. This connector will be available through the Tableau Marketplace when the Tableau Marketplace becomes available. Until then the connector can be manually installed with the steps below.

Prerequisites:

  • Tableau Desktop 2019.4 or later
  • Java 8 Runtime

Steps:

  1. Download the Dremio-Tableau connector. This has the .taco file extension
  2. Install the connector .taco file in:
    • macOS: ~/Documents/My Tableau Repository/Connectors
    • Windows: My Documents/My Tableau Repository/Connectors
    • Linux: My Tableau Repository/Connectors
  3. Download the Dremio JDBC driver (or take it from your Dremio installation, $DREMIO_HOME/jars/jdbc-driver/dremio-jdbc-driver-.jar).
  4. Install the Dremio JDBC driver by copying the .jar file to the following directory, creating the directory if it does not exist:
    • macOS: ~/Library/Tableau/Drivers
    • Windows: C:\Program Files\Tableau\Drivers
    • Linux: /opt/tableau/tableau_driver/jdbc
  5. Restart Tableau
    • If using Tableau 2019.4, there is a bug that needs to be worked around. Start Tableau from the command line with the -DDisableVerifyConnectorPluginSignature=true option. Example:
      cd /Applications/Tableau Desktop 2019.4.app/Contents/MacOS
      ./Tableau -DDisableVerifyConnectorPluginSignature=true
      
  6. From Tableau: Connect “To a Server” → “More” → “Dremio Connector by Dremio”

Enabling SSL

If you have enabled SSL/TLS for JDBC connections on your Dremio server, you will have to complete these additional steps:

  1. Obtain the SSL/TLS certificate for the Dremio server.
  2. Install it in the cacerts truststore that comes with your Java 8 runtime
    • Location should be something like: $JAVA_HOME/jre/lib/security/cacert
    • Using the Java keytool and the Dremio cert in DER format, this can be achieved with a command like the following:
      sudo keytool -importcert -alias dremio -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit -file /path/to/dremioServerCert.der
      
  3. Verify that the cert has been added:
    keytool -keystore cacerts -storepass changeit -list | grep -A1 dremio
    dremio, Dec 16, 2019, trustedCertEntry,Certificate fingerprint (SHA1): 2B:2B:F6:D4:79:64:33:59:AB:43:3E:D9:17:C9:FD:A7:5E:C1:6D:42
    
    You should check the “Require SSL box” in the box where you’ve configured the Tableau connection to Dremio.

Connector Installation on Tableau Server Linux

Dremio Connector Install

  1. Add Dremio driver to /opt/tableau/tableau_driver/jdbc. Create this path if it does not exist. This is what the installation currently looks like, for example:
    [root@tableau-server jdbc]# pwd
    /opt/tableau/tableau_driver/jdbc
    [root@tableau-server jdbc]# ll
    total 28124-rw-r--r--. 1 root root 28797899 Dec 16 23:21 dremio-jdbc-driver-4.1.0-201912030136020081-49feeb75.jar
    
  2. Add Dremio connector file to: /etc/tableau/tableau_connectors. Create this path if it does not exist. This is what the installation currently looks like, for example.
    root@tableau-server tableau_connectors]# pwd
    /etc/tableau/tableau_connectors
    [root@tableau-server tableau_connectors]# ll
    total 12-rwxr-xr-x. 1 root root 11930 Dec 16 23:09 tableau_dremio-1.0.0-20191212193105367-bd753d6.taco
    
  3. Restart Tableau Server using tsm.
  4. Test the connection by publishing a workbook to the server from Tableau Desktop.

Enabling SSL with Tableau Server

  1. If you are connecting to a Dremio cluster with SSL/TLS you will have to add the certificate for that cluster to the cacerts that the JRE bundled with Tableau Server uses. There are actually several runtimes (you can see them with ps -ef | grep java | grep dremio). Use the Java keytool to add the cert to: /opt/tableau/tableau_server/packages/repository.<tableau-version>/jre
    sudo /opt/tableau/tableau_server/packages/repository.<tableau-version>/jre/bin/keytool 
    -importcert 
    -keystore /opt/tableau/tableau_server/packages/repository.<tableau-version>/jre/lib/security/cacerts 
    -storepass changeit 
    -file /path/to/dremioServerCert.der
    -alias dremio
    
    Note that you must qualify both keytool and cacerts to ensure you are using the correct files, if you do not you may pick them up from the path.
  2. Restart Tableau server using tsm: tsm restart

Known Issues:

  • Sometimes tables appear without columns: Due to a Tableau bug, to work around this query the table in question from the Dremio UI first.
  • Columns with complex types return null data: Due to a Tableau bug, create a view that casts the column to string before using in Tableau.

Generating Self Signed Certificates

As an example of how to create self-signed certificates for testing SSL connectivity, follow the below instructions.

  1. Create the public and private .pem files:
    • When generating the private key be sure to use the exact hostname of the Dremio coordinator.
      openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
      
  2. Create the .der file to import into the target keystores:
    openssl x509 -outform der -in cert.pem -out cert.der
    
  3. Create a PKCS12 keystore that will be turned into a JKS keystore:
    cat key.pem cert.pem | openssl pkcs12 -export -out keystore.p12
    
  4. Create the JKS keystore:
    keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore keystore.jks
    

You should now have 5 files:

  1. cert.pem
  2. cert.der - Import into the Java keystore where Tableau is used (Desktop and/or Server)
  3. key.pem
  4. keystore.p12
  5. keystore.jks - Used to enable SSL for Dremio

See here for notes on how to configure Dremio to use the generated keystore.


results matching ""

    No results matching ""