Tableau connector

This document provides setup documentation for the Tableau Connector (TabGo).

For a user guide, read about Tableau dashboards.

The Tableau Analytics Extension API makes it possible to integrate RapidMiner Go models and RapidMiner web services into Tableau dashboards. The same API is used by Tableau’s own TabPy for Python integration.

In what follows, RapidMiner's implementation of the API will be called TabGo. TabGo is an optional module for RapidMiner AI Hub, acting as a translation layer between Tableau and RapidMiner. By itself, TabGo does not execute prediction logic or run any analyses.

The setup documentation provided below consists of two parts:

  1. Install the connector on RapidMiner AI Hub

  2. Connect Tableau to RapidMiner AI Hub

Note that by default, TabGo is included in the docker-compose template for RapidMiner AI Hub. If TabGo is already installed (and tested!), you can skip ahead to step 2.

Install the connector on RapidMiner AI Hub

The following instructions assume that you are using a docker-compose based installation of RapidMiner AI Hub. The configuration differs slightly depending on whether RapidMiner AI Hub is configured to use HTTPS or HTTP.

However, the environment variables are always the same. In both scenarios you will have to add the following block to your .env file:

# ############################################
#
# TabGo
#
# ############################################

# Used for both TabGo and the TabGo proxy.
TABGO_VERSION=9.9

# Proxy specific settings.
TABGO_PROXY_PORT=4443
TABGO_BACKEND=http://rm-tabgo-svc

# Settings for the TabGo service.
TABGO_MAX_MEMORY=384m
TABGO_PORT=8090
# Rate limit for small requests (e.g., scoring a single data row). The default
# values limit the rate to 10 requests per 5 seconds.
TABGO_SMALL_REQUEST_LIMIT=10
TABGO_SMALL_REQUEST_INTERVAL=5
# Change the log level to DEBUG to log HTTP traffic routed through TabGo.
TABGO_LOG_LEVEL=INFO
# Additional Java options should only be used for debugging.
TABGO_JAVA_OPTIONS=

There are two settings that you might want to adjust:

  • If you expect TabGo to process large data sets, e.g., tables with tens of thousands of rows, or you expect many users in parallel, you should consider increasing TABGO_MAX_MEMORY.
  • If you expect many TabGo users in parallel, you may consider increasing the TABGO_SMALL_REQUEST_LIMIT variable. However, this limit exists for a good reason: without the limit, misconfigured dashboards may send hundreds of small requests, slowing Tableau to the point where the software becomes unresponsive. The offending behavior is usually caused by table calculations being computed line by line instead of in a single batch. For more details, see the Compute Using option for table calculations.

Please note that TABGO_LOG_LEVEL is only meant to be changed temporarily for troubleshooting. Changing it to DEBUG will impact TabGo’s performance and might leak sensitive information.

HTTPS configuration

If RapidMiner AI Hub is configured to use HTTPS, TabGo can pick up the existing configuration to secure the communication with Tableau. Adding the following two services to your docker-compose.yml file will configure TabGo to use the same certificate as the other RapidMiner AI Hub components:

  rm-tabgo-svc:
    image: ${REGISTRY}rapidminer-tabgo:${TABGO_VERSION}
    restart: always
    hostname: rm-tabgo-svc
    environment:
      - TABGO_MAX_MEMORY=${TABGO_MAX_MEMORY}
      - TABGO_RMS_HOSTNAME=${RAPIDMINER_SERVER_URL}
      - TABGO_GO_HOSTNAME=${PUBLIC_URL}
      - TABGO_SMALL_REQUEST_LIMIT=${TABGO_SMALL_REQUEST_LIMIT}
      - TABGO_SMALL_REQUEST_INTERVAL=${TABGO_SMALL_REQUEST_INTERVAL}
      - TABGO_LOG_LEVEL=${TABGO_LOG_LEVEL}
      - _JAVA_OPTIONS=${TABGO_JAVA_OPTIONS}
    networks:
      rm-platform-int-net:
        aliases:
         - rm-tabgo-svc
  rm-tabgo-proxy-svc:
    image: ${REGISTRY}rapidminer-tabgo-proxy:${TABGO_VERSION}
    hostname: rm-tabgo-proxy-svc
    restart: always
    environment:
      - HTTPS_CRT_PATH=${HTTPS_CRT_PATH}
      - HTTPS_KEY_PATH=${HTTPS_KEY_PATH}
      - TABGO_BACKEND=${TABGO_BACKEND}
      - TABGO_PORT=${TABGO_PORT}
    ports:
      - ${TABGO_PROXY_PORT}:443
    depends_on:
      - rm-proxy-svc
    volumes:
      - ./ssl:/etc/nginx/ssl
    networks:
      rm-platform-int-net:
        aliases:
         - rm-tabgo-proxy-svc

After starting the new services, TabGo will listen on the TABGO_PROXY_PORT specified in the .env file.

HTTP configuration

If your RapidMiner AI Hub is configured to use HTTP, adding the following service to your docker-compose.yml file will enable TabGo:

  rm-tabgo-svc:
    image: ${REGISTRY}rapidminer-tabgo:${TABGO_VERSION}
    restart: always
    hostname: rm-tabgo-svc
    ports:
        ${TABGO_PORT}:${TABGO_PORT}
    environment:
      - TABGO_MAX_MEMORY=${TABGO_MAX_MEMORY}
      - TABGO_RMS_HOSTNAME=${RAPIDMINER_SERVER_URL}
      - TABGO_GO_HOSTNAME=${PUBLIC_URL}
      - TABGO_SMALL_REQUEST_LIMIT=${TABGO_SMALL_REQUEST_LIMIT}
      - TABGO_SMALL_REQUEST_INTERVAL=${TABGO_SMALL_REQUEST_INTERVAL}
      - TABGO_LOG_LEVEL=${TABGO_LOG_LEVEL}
      - _JAVA_OPTIONS=${TABGO_JAVA_OPTIONS}
    networks:
      rm-platform-int-net:
        aliases:
         - rm-tabgo-svc

After starting the new service, TabGo will listen on the TABGO_PORT specified in the .env file.

Test the deployment

TabGo provides a simple /info endpoint that you can call from any web browser. If the location of your RapidMiner AI Hub deployment is as indicated in the first column of the table below, the /info endpoint will be as indicated in the second column.

RapidMiner AI Hub /info endpoint
HTTPS https://aihub.company.test/ https://aihub.company.test:4443/info
HTTP http://aihub.company.test/ http://aihub.company.test:8090/info

In both cases the endpoint should answer with a message in the following format:

{
    "name": "TabGo",
    "description": "Tableau analytics connector to RapidMiner Go",
    "creation_time": 1602592657,
    "server_version": "9.9.0",
    "versions": {
        "v1": {
            "features": {}
        }
    }
}

Connect Tableau to RapidMiner AI Hub

TabGo can be used together with Tableau Desktop and Tableau Server. All you need to provide is the endpoint on which TabGo is reachable.

Tableau Desktop

Within Tableau Desktop, configure an Analytics Extension Connection to TabGo under Help > Settings and Performance > Manage Analytics Extension Connection…

  • Server - use the hostname for RapidMiner AI Hub
  • Port - use the port provided by TabGo (by default 4443 for HTTPS / 8090 for HTTP)
  • Require SSL - check this box if you are using HTTPS

Click Test Connection to verify that Tableau Desktop is connected to TabGo:

Tableau Server

On Tableau Server, log in as administrator for the site where you want to enable the analytics connection.

  1. Open the settings and navigate to the Extensions tab.
  2. Under Analytics Extensions, check Enable analytics extension for site.
  3. As described above for Tableau Desktop, enter the connection details for RapidMiner AI Hub.

Unfortunately, you cannot test the connection from within the Tableau Server settings. You will have to create a Tableau dashboard using TabGo to verify your configuration.

Once you have created the Analytics Extension Connection, it is listed in settings as follows: