Connecting to Tableau with KNIME

While KNIME is an excellent tool for ETL uses, as well as data modeling and machine learning, many KNIME users like to use Tableau for visualization of their data. Since this is a common practice, we thought we should provide a short guide on how to connect KNIME with Tableau. There are a few methods you can use to do this, and the text below describes these methods in further detail, while walking through an example KNIME workflow.

Installing the Tableau Extensions

The first thing you'll need to do to be able to export data from KNIME to Tableau is to install the KNIME Tableau Integration. To do this, just navigate to File Install KNIME Extensions and type "Tableau" in the search box that appears. When you do, you'll see something like the screen below.

If you have Tableau 10.5 or later, you can use the Hyper format, which is created using the Tableau Data Extract API 2.0. Versions 10.4 and earlier use the older TDE format, which is created using the Tableau SDK. Select the extensions to install according to what you need. If you're not sure, you can install both, and tell KNIME which format you want to use later. The two extensions labeled KNIME Tableau Integration include the actual nodes, while the other extensions labeled Platform Specific Packages include the back-end support files - specifically, the Extract API or SDK files.

Additional information on the differences between the TDE and hyper formats, along with the changes implemented in Tableau 10.5, can be found on Tableau's website.

Once you've installed the extension(s), restart KNIME and you should see the Tableau nodes in the node repository under KNIME Labs. You can now drag and drop the Tableau nodes into your workflow, but you'll need to perform some additional one-time setup on your system's path before they will export data properly.

 

Updating the System Path

Next, go to File Preferences and find the Tableau page. Here, you can select whether to use the current Hyper format or older TDE format. (Note that changing this will require program restart.) Importantly, you will need to add the string in the text box to your system's path. If you're not sure how to do this, click on the blue instructions link to open a page that will describe the process in more detail. You can click the "Copy to Clipboard" button to assist in this process. Once you've updated your system path to include either the Tableau Extract API 2.0 (for Hyper) and/or the Tableau SDK (for TDE), restart KNIME.

Some Windows users may also need to install the Visual C++ 2013 redistributable, but many Windows 10 installations already include it. A link to the redistributable has been provided if you do need it.

 

Tableau Export Workflow Example

To get started, download the Tableau Integration Example workflow from the EXAMPLES server. The workflow and associated dataset is available at EXAMPLES/05_Reporting/02_Tableau/01_Tableau_Integration_Example. Go ahead and execute the five nodes listed in the Usual Modeling Steps section. This is a workflow that reads in a file containing demographic and income information for a sample of adults working in the United States, and uses the decision tree node to predict and score income classification for the sample. Of more interest to us, the workflow also exports both the raw data and results of the decision tree model using Tableau nodes in a few different ways, which we'll discuss in more detail below.

Note that this workflow is configured to work with the Tableau (Hyper) nodes, but you can easily swap those out to use the older Tableau (TDE) nodes if needed.

 

Tableau Online Setup

For the purpose of this exercise, we'll assume that you want to publish data to Tableau Online. However, most of what is discussed here also applies if you host your own Tableau server. If you don't already have a Tableau Online account, you can create a trial account here (https://www.tableau.com/products/cloud-bi). For the steps that follow, you'll need a few pieces of information:

You will also need to have a Tableau Project already in place on the server. By default, Tableau Online creates a default project for you, but it's a good idea to create one and give it an appropriate name. You can do this in Tableau Online by navigating to the projects section and clicking on the New Projects button. Let's call our new Project "Adult Income".

Let's set Tableau Online aside for now; we'll come back to it in a bit.

 

Using the Tableau Writer (Hyper) Node

 

Now that our Tableau Online account is in place and the KNIME has been configured, let's use the Tableau Writer (Hyper) node to export a hyper file. Double click the node assigned to write out model scoring statistics to open its settings. The only thing we need to do here is to give a path and file name for the file:

Now, we can execute the node, Simple enough, right? But what do we actually do with hyper files? Files of this type can be imported into Tableau Desktop for further analysis, and from there, published to a Tableau Server. Hyper files can also be published directly to a Tableau server by using Tableau's Command Line Utility, tabcmd. We'll discuss each of these methods below.

Publishing Hyper Files

Hyper files exported from KNIME can be used as-is with a installation of Tableau Desktop. Double clicking on the hyper file will open the Tableau interface where you can begin construction of visualizations on the data right away. You can also publish the hyper file for use in the Tableau Online environment via the desktop GUI. To do this, navigate to Server → Publish Data Source, assign a Project in the resulting dialog, and click Publish. This will make the data from the hyper file available in the Tableau Online Environment.

Publishing hyper files can also be done without a GUI, using tabcmd, Tableau's Command Line Utility. (This requires a separate installation, as detailed on the linked page.) Tabcmd allows for scripting of data management tasks in the server environment, and has a straightforward set of options and parameters. Logging into a Tableau server, for example, can be accomplished with the following command:

tabcmd login -s https://online.tableau.com -u YourUsername -p YourPassword


Publishing a hyper file to the server can then be done via the following. Let's use our generated hyper as an example, being sure to include the full path and Project name on the server:

tabcmd publish "c:\path\to\file\Scorestats.hyper" -r "Adult Income"

The figure below presents the results of using tabcmd to publish a TDE using these commands. The tabcmd documentation, linked above, presents a more comprehensive list of available commands and options.

Using the Send to Tableau Server (Hyper) Node

Perhaps you would like to bypass the creation of hyper files altogether, and instead send your data directly to Tableau Online via the KNIME interface. This can be done using the Send to Tableau Server (Hyper) node. For this example, let's send the raw Adult data to our Tableau Online server for additional visualization. Double click the node to bring up the configuration dialog, and enter the required information Under the Tableau Server Settings tab. Use the Browse button to have the node query the Tableau server for active projects. Here, we'll be sending our file to the Adult Income project, and giving it a name of AdultRaw. Note the format of the URL carefully!

If we navigate to our project space in Tableau Online, we can now see three available data sources:

  • Scorestats Extract, published via the Tableau Desktop GUI
  • Scorestats, published via the command line using tabcmd
  • AdultRaw, published directly from KNIME.

Creating a Visualization in Tableau Online

Once your data has been published to Tableau, you are free to create your visualizations in the usual way. Here are a couple of examples generated from the Adult dataset.The first presents a map of average ages for adults in the data set, by country of origin. The second is a stacked bar chart that shows, in descending order, the total hours adults worked, by gender, in each country. If you are familiar with Tableau, you know that there are many other visualizations you can easily produce - see what you can come up with!