docs/content/product/apis-integrations/semantic-layer-sync/tableau.mdx
This page details the support for Tableau in Semantic Layer Sync.
<InfoBox>Available on Enterprise and above plans.
</InfoBox>Semantic Layer Sync works with Tableau Cloud, Tableau Desktop, and Tableau Server.
To create a new sync, choose either <Btn>Tableau Cloud</Btn>, <Btn>Tableau Desktop</Btn>, or <Btn>Tableau Server</Btn>:
<Screenshot highlight="inset(44% 35% 45% 20% round 10px)" src="https://ucarecdn.com/36c23111-871d-4d2a-927f-877df954b090/" />
For Tableau Cloud and Tableau Server, 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 <Btn>My Account Settings</Btn> page.
<InfoBox>Personal access tokens might be disabled in your Tableau site configuration. To enable them, navigate to the <Btn>Settings</Btn> page of your Tableau site and click <Btn>Enable personal access tokens</Btn>.
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 <Btn>Settings</Btn> page of your Tableau site. Please also make sure to renew your personal access token in time.
</InfoBox> <WarningBox>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.
</WarningBox>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:
<CodeTabs>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 <Btn>SQL API Connection</Btn> tab on the <Btn>IDE → Integrations</Btn> page in Cube Cloud.
Syncs with Tableau Cloud and Tableau Server run automatically via the Tableau API.
Click <Btn>Download .tds</Btn> to download a Tableau data source file:
<Screenshot highlight="inset(80% 1% 9% 5% round 10px)" src="https://ucarecdn.com/4b93196e-3128-4b01-bd3f-eab8e7d8a37f/" />
In the modal window, select one or more cubes or views and click <Btn>Download all selected</Btn> to download a ZIP archive with Tableau data source files, one per cube or view. Use can open these files in Tableau to create data sources.