Tableau Python Server - Beta
TabPy is distributed as two separate packages, namely as tabpy-client and tabpy-server. Both are available from PyPy and any combination of the packages can be installed via:
pip install tabpy-server pip install tabpy-client
Alternately, to work from the source code you should reference the Contributing Guide for instructions on how to configure your environment and install all dependencies.
TabPy framework allows Tableau to remotely execute Python code. It has two components:
- A server process built on Tornado, which allows for the remote execution of Python code through a set of REST APIs. Code can either be immediately executed or persisted in the server process and exposed as a REST endpoint, to be called later.
- A client library that enables the deployment of such endpoints, based on Python functions.
Tableau can connect to the TabPy server to execute Python code on the fly and display results in Tableau visualizations. Users can control data and parameters being sent to TabPy by interacting with their Tableau worksheets, dashboard or stories.
To run Python code in your Tableau calculated fields, enter the address and port number for a TabPy server instance in Tableau.
On Tableau Server, use the tabadmin command line utility to configure a TabPy connection.
tabadmin stop tabadmin set vizqlserver.extsvc.host <ip address or host name of the machine hosting TabPy> tabadmin set vizqlserver.extsvc.port <port for TabPy> tabadmin configure tabadmin start
It is not necessary to install TabPy on the Tableau Server or Desktop computer-all that is required is a pointer to a TabPy server instance.
Once the configuration is done, you can use Python in calculated fields in Tableau. You can learn more about authoring Python calculations in Tableau HERE.
- Building advanced analytics applications with TabPy
- TabPy Tutorial on TabWiki
- Running TabPy in Docker containers
The following security issues should be kept in mind as you use TabPy with Tableau:
- The data channel between Tableau and TabPy is currently not encrypted.
- TabPy currently does not use authentication.
- Python scripts can contain code which can harm security on the server where the TabPy is running. For example:
- Access file system (read/write)
- Install new Python packages which can contain binary code
- Execute operating system commands
- Open network connections to other servers and download files