Support

RStudio Connect and Tableau FAQ

Follow

What are Tableau Analytics Extensions?

Tableau Analytics Extensions are a general-purpose way for Tableau to use external services to enhance Tableau workbooks and visualizations. In the case of RStudio Connect, specially developed R and Python APIs hosted on RStudio Connect can function as Tableau Analytics Extensions.

What is required for RStudio Connect to support Tableau Analytics Extensions?

In order to host Tableau Analytics Extensions on RStudio Connect, the following criteria must be met:

  • Due to how Tableau handles configuring analytics extensions, RStudio Connect must be configured on the root path of its domain. For example, you cannot configure RStudio Connect as an analytics extension if it is hosted at a domain like rstudio.mycompany.com/rstudio-connect without making additional changes to the proxy running in front of RStudio Connect.
  • A Standard or Enterprise RStudio Connect license
  • RStudio Connect version 2021.09.0 or newer
  • Server.Address must be properly set in the RStudio Connect configuration file
  • TableauExtension.Enabled must be set to True. This is the default setting, so unless it is specifically set to False, it is enabled.

Does this require a change in my licensing for RStudio Connect?

As long as you have RStudio Connect 2021.09.0 or newer and your license is either Standard or Enterprise, no additional changes are necessary for publishing Tableau Analytics Extensions.

How do I develop Tableau Analytics Extensions for use with RStudio Connect?

There are two packages used for developing extensions hosted on RStudio Connect:

  • plumbertableau is an R package built with Plumber that enables R developers to easily build Plumber APIs that can be published to RStudio Connect and used as Tableau Analtyics Extensions.
  • fastapitableau is a Python package built with FastAPI that enables Python developers to easily build FastAPI routers that can be published to RStudio Connect and used as Tableau Analtyics Extensions.

How do I configure Tableau to use RStudio Connect?

Details for configuring Tableau to use RStudio Connect for analytics extensions can be found here.

What advantages does RStudio Connect offer for these extensions?

Tableau Analytics Extensions hosted on RStudio Connect enjoy all the benefits of RStudio Connect, including:

RStudio Connect is the only platform that allows a single Tableau workbook to use R and Python extensions simultaneously. Additionally, extensions hosted on RStudio Connect allow Tableau users to reference extensions without needing to know how the extension was implemented, or even what language the extension is using. It also enables R and Python developers to use standard tools and development environments for building out these extensions before publishing them to RStudio Connect.

How is this different from Tableau's existing integration with Rserve and TabPy?

Rserve and TabPy are both existing analytics extensions for Tableau. In both cases, a language interpreter is started on a server and users submit code to be evaluated as plain text strings to the interpreters. For example, an extension using TabPy may look something like the following from Tableau:

SCRIPT_STR("import numpy as np
from sklearn.cluster import DBSCAN
X=np.column_stack([np.radians(_arg1), np.radians(_arg2)])
db=DBSCAN(eps=_arg3[1], min_samples=_arg4[1], metric='haversine').fit(X)
return np.where(db.labels_ == np.array(-1), 'No', 'Yes').tolist()",
AVG([Slat]), AVG([Slon]),
[Distance between incidents], [Number of Incidents per Quarter])

In this example, the Tableau user must pass a fully functioning Python script to the extension running TabPy. The same is true for extensions using Rserve.

When using extensions hosted on RStudio Connect, the same extension may look like the following:

SCRIPT_STR("/tableau/cluster",
AVG([Slat]), AVG([Slon]),
[Distance between incidents], [Number of Incidents per Quarter])

In this case, all of the logic for the extension is contained in the API hosted at /tableau/cluster on RStudio Connect. This simplifies both the development and use of the extension.

Comments