Skip to Content

Tableau

You can connect Tableau  to Cube using Semantic Layer Sync. It will programmatically create and update Tableau data sources that are connected to Cube via the SQL API.

Semantic Layer Sync with Tableau is available on Enterprise and above  product tiers.

Semantic Layer Sync works with Tableau Cloud, Tableau Desktop, and Tableau Server.

Setting up Semantic Layer Sync

You can create a new sync by navigating to IDE → Integrations in Cube.

To create a new sync, choose either Tableau Cloud, Tableau Desktop, or Tableau Server.

For Tableau Cloud and Tableau Server, the data model is synchronized via the Tableau API  which uses personal access tokens  for authentication. You can create a new personal access token  on the My Account Settings page.

Personal access tokens might be disabled in your Tableau site configuration. To enable them, navigate to the Settings page of your Tableau site and click Enable personal access tokens.

By default, personal access tokens are configured with an expiry period of 180 days. Please check your Tableau site configuration for details. To customize the expiry period, navigate to the Settings page of your Tableau site. Please also make sure to renew your personal access token in time.

Personal access tokens expire if they are not used after 15 consecutive days. If they are used more frequently than every 15 days, they expire after one year.

You will also need to specify a region and a Tableau site name. Consider the following URL of a Tableau site: https://10ax.online.tableau.com/#/site/cubedev/home. In this case, the region would be 10ax and the site name would be cubedev.

Example configuration for Tableau:

from cube import config @config('semantic_layer_sync') def semantic_layer_sync(ctx: dict) -> list[dict]: return [ { 'type': 'tableau', 'name': 'Tableau Sync', 'config': { 'region': '10ax', 'site': 'mytableausite', 'personalAccessToken': 'cube-cloud', 'personalAccessTokenSecret': 'HW8TFrBfJyen+JQleh0/bw==:1BvJLIti9Fud04rN021EfHMnh4yYD3p4', 'database': 'Cube Cloud: production-deployment', }, }, ]
module.exports = { semanticLayerSync: ({ securityContext }) => { return [ { type: "tableau", name: "Tableau Sync", config: { region: "10ax", site: "mytableausite", personalAccessToken: "cube-cloud", personalAccessTokenSecret: "HW8TFrBfJyen+JQleh0/bw==:1BvJLIti9Fud04rN021EfHMnh4yYD3p4", database: "Cube Cloud: production-deployment" } } ] } }

When connecting a Cube Cloud data source to your Tableau workbook, you will be prompted to enter the user name and password for Cube Cloud. You can find them at the SQL API Connection tab on the IDE → Integrations page in Cube Cloud.

Tableau Desktop

You can download a Tableau data source  file by clicking Download .tds. In the modal window, select one or more cubes or views and click Download all selected to download a ZIP archive with Tableau data source files, one per cube or view. You can open these files in Tableau to create data sources.

Authenticating users

Semantic Layer Sync handles authentication automatically. When a user authenticates from Tableau to Cube, they are matched to a Cube user by their email address.

For this to work, the same users that access Tableau must also exist in Cube. If you use an identity provider such as Microsoft Entra ID or Okta, we recommend using SCIM for automated user provisioning.

You can use user attributes and user groups in combination with data access policies to control which data each user can access.

Was this page useful?