Downloads

Tableau Lineage Scanner

Scanned and supported objects

While we strive for comprehensive lineage capture, certain dataflows and transformations might be incomplete or unavailable due to technical constraints. We continuously work to expand coverage and accuracy.

Supported versions

The scanner supports Tableau Cloud and Tableau Server. It requires the Tableau Metadata API. On Tableau Server, metadata services must be enabled.

By default, the scanner uses version 3.22 of the Tableau REST API.

Scanned resources

The extracted metadata includes the following objects:

  • Site: Name, ID.

  • Project: Name, ID.

  • Workbooks: Name, ID, URI.

    • Data source: Name, ID, container name, description. Includes embedded and published data sources. A published data source used by several workbooks is extracted once.

      • Fields: Name, ID, qualified name, description. Includes fields directly defined within the sheet and those belonging to another entity.

        • Calculated fields: Formula, list of fields that it is derived from.

        • Column fields: Fully qualified name, list of database columns the field is mapped to.

    • Sheets: Name, ID, path. Includes fields referenced on the sheet.

    • Dashboard: Name, ID. Includes fields referenced on the dashboard and lineage between the dashboard and sheets referenced from it. For each column field in a workbook, information about the database, tables, and columns they are mapped to is also retrieved.

    • Databases: Name, ID, connection type.

      • Tables: Name, ID, connection type.

        • Columns: Name, ID.

    • Custom SQL queries: Database columns used in the query. Lineage goes directly from these columns to the Tableau fields; the query itself isn’t kept as an asset.

Supported connectivity

  • Connector type: REST API and Metadata API (GraphQL).

  • Authentication method: Personal access token (PAT) or a connected app with direct trust (JSON Web Token).

Metadata API requests that fail with a transient or gateway error are retried automatically.

Tableau permissions

In Tableau, the following permissions must be configured for the user you are authenticating with:

  • You need:

    • Permission to call the Tableau Metadata API. See the official Tableau documentation.

    • At least the Viewer site role. With the Viewer role, the scan might be incomplete, so we recommend Explorer or Administrator.

  • You can only retrieve assets (such as projects, workbooks, data sources) if you have View capabilities or higher assigned on them. For details, see the official Tableau documentation: View capabilities.

  • You have a valid Personal Access Token or you have set up a Connected App.

Scanner configuration

All fields marked with an asterisk (*) are mandatory.

Property Description

sourceType*

Identifies the source type to be scanned. Must be set to TABLEAU.

description*

A human-readable description of the scan.

oneConnections

List of Ataccama ONE connection names for future automatic pairing.

serverUri*

URL of your Tableau Server or Tableau Cloud pod. For example:

  • Tableau Cloud (US): https://prod-useast-b.online.tableau.com

  • Tableau Cloud (Europe): https://prod-uk-a.online.tableau.com

  • Tableau Cloud (AU): https://prod-apsoutheast-a.online.tableau.com

site*

Content URL of the site you want to scan. For example, if your URL is https://<pod>.online.tableau.com/#/site/ataccama/workbooks, the site is ataccama.

tokenName

Name of the personal access token. Required for PAT authentication. For instructions about how to create tokens, see the official Tableau documentation: Personal Access Tokens.

accessToken

Secret of the personal access token. Required for PAT authentication.

appSecret

Secret value of the connected app. When set, the scanner signs in with a JSON Web Token instead of a personal access token. keyId, clientId, and username are then required. See Configure Connected Apps with Direct Trust.

keyId

Secret ID of the connected app.

clientId

Client ID of the connected app.

username

Tableau user the scanner signs in as when using the connected app.

baseRestApiPath

Version of the API to perform REST and GraphQL calls. Default value: api/3.22. See Fundamentals of the Tableau Server REST API.

signInPath

Path where the sign-in REST request is performed. Default value: api/3.22/auth/signin. See Signing In and Signing Out (Authentication).

graphqlPath

Path of the Metadata API (GraphQL) endpoint. Default value: relationship-service-war/graphql. Do not change this value.

projects

List of project names to scan. If omitted, all projects are scanned.

workbooks

List of workbook names to scan. If omitted, all workbooks are scanned.

When both projects and workbooks are set, only workbooks that match both lists are scanned.

graphQlIdBatchSize

Maximum number of entity IDs sent in a single Metadata API request. Default value: 100. Lower this value if a proxy in front of Tableau rejects large request bodies.

targetOneVersion

Version of ONE that the lineage asset names are created for. Set it to the version of your ONE so that lineage assets can be matched to catalog items. See Asset naming and catalog matching.

Supported values: 16.3.0, 16.3.1, 17.0.0, 17.1.0, 17.2.0. Default value: 16.3.1. If the value isn’t a supported version, the scanner logs a warning and uses the default.

ssl

Optional TLS configuration for connecting to a Tableau Server that uses certificates not trusted by default. Contains truststore, truststorePassword, keystore, and keystorePassword. Provide each truststore and keystore as a secret reference (@@ref:ata:) or as an absolute path to a file on the scanner host.

Tableau scanner example configuration
{
   "scannerConfigs": [
      {
         "sourceType": "TABLEAU",
         "description": "Scan Tableau platform",
         "oneConnections": [
            "Tableau connection",
            "Other Tableau connection"
         ],
         "inputDataCatalogFilePath": null,
         "serverUri": "https://prod-useast-b.online.tableau.com",
         "site": "asite",
         "tokenName": "@@ref:ata:[TABLEAU_TOKEN_NAME]",
         "accessToken": "@@ref:ata:[TABLEAU_ACCESS_TOKEN]",
         "projects": ["Sales"],
         "targetOneVersion": "17.2.0"
      }
   ]
}

Asset naming and catalog matching

Lineage assets are matched to Tableau catalog items in ONE by name, and targetOneVersion controls how the scanner names them:

  • With 17.1.0 or 17.2.0, data source, sheet, and dashboard assets get their plain Tableau names, the same as the catalog items. The object type, including whether a data source is published or embedded, is kept in the asset’s external object type and tells apart assets that share a name.

  • With any other supported version, the object type is part of the asset name, for example, SHEET Sales overview or Orders.PDS. These names don’t match the catalog items, so the assets can’t be matched to them.

Use the same targetOneVersion for every scan of a scan plan. Changing it renames the assets in the next scan.

Runtime configuration

You can pass runtime properties to the scanner in the runtimeConfig section of the scan plan. The section is placed at the top level of the scan plan, next to scannerConfigs, and is not part of the scanner configuration itself.

Property Description

runtimeConfig.toolkit.systemProps

List of runtime properties, each defined as a key and a value. Values are always strings. See Tableau runtime properties.

runtimeConfig.toolkit.xms

Initial memory (heap size) of the scanner, for example 1024m.

runtimeConfig.toolkit.xmx

Maximum memory (heap size) of the scanner, for example 4096m.

Tableau runtime properties

Property Description

tableau.http.connection.timeout.seconds

Timeout for establishing a connection to Tableau, in seconds. Default value: 30.

tableau.http.socket.timeout.seconds

Timeout for reading a response from Tableau, in seconds. Default value: 300.

FAQ

How long does it take to scan lineage from Tableau Cloud

If you are using GraphQL to scan about 50 workbooks, it should take about 40 minutes.

Was this page useful?