In some cases you will not be able to expose your Tableau instance for Atlan to crawl and ingest metadata. For example, this may happen when security requirements restrict access to sensitive, mission-critical data.
In such cases you may want to decouple the extraction of metadata from its ingestion in Atlan. This approach gives you full control over your resources and metadata transfer to Atlan.
To extract metadata from your on-premises Tableau instance, you will need to use Atlan's tableau-extractor tool.
Install Docker Compose
Docker Compose is a tool for defining and running applications composed of many Docker containers. (Any guesses where the name came from? 😉)
To install Docker Compose:
Get the tableau-extractor tool
To get the tableau-extractor tool:
- Raise a support ticket to get the link to the latest version.
- Download the image using the link provided by support.
- Load the image to the server you'll use to crawl Tableau:
sudo docker load -i /path/to/tableau-extractor-master.tar
Get the compose file
Atlan provides you with a Docker compose file for the tableau-extractor tool.
To get the compose file:
- Download the latest compose file.
- Save the file to an empty directory on the server you'll use to access your on-premises Tableau instance.
- The file is
Define Tableau connections
The structure of the compose file includes three main sections:
x-templatescontains configuration fragments. You should ignore this section — do not make any changes to it.
servicesis where you will define your Tableau connections.
volumescontains mount information. You should ignore this section as well — do not make any changes to it.
For each on-premises Tableau instance, define an entry under
services in the compose file.
Each entry will have the following structure:
services: connection-name: <<: *extract environment: <<: *tableau-defaults EXCLUDE_PROJECTS_REGEX: "Test1.*|Test2.*" CRAWL_UNPUBLISHED_WORKSHEETS_DASHBOARDS: "true" volumes: - ./output/connection-name:/output/process
connection-namewith the name of your connection.
<<: *extracttells the tableau-extractor tool to run.
environmentcontains all parameters for the tool.
volumesspecifies where to store results. In this example, the extractor will store results in the
./output/connection-namefolder on the local file system.
You can add as many Tableau connections as you want.
servicesformat in more detail.
To define the credentials for your Tableau connections, you will need to provide a Tableau configuration file.
The Tableau configuration is a
.ini file with the following format:
[TableauConfig] # Tableau instance URL. Do not include /api/* in the URL. server_url=https://:<hostname>:<port> # Tableau site name. Leaving this empty will select the default site. site_name=YourTableauSite # Tableau authentication type. Options: basic, personal_access_token. auth_type=basic # Required only if auth_type is basic. [BasicAuth] username=YourTableauUsername password=YourTableauPassword # Required only if auth_type is personal_access_token. [PersonalAccessTokenAuth] token_name=YourTableauTokenName token_value=YourTableauTokenValue
Using local files
To specify the local files in your compose file:
secrets: tableau_config: file: ./tableau.ini
secretssection is at the same top-level as the
servicessection described earlier. It is not a sub-section of the
Using Docker secrets
To create and use Docker secrets:
- Store the Tableau configuration file:
sudo docker secret create tableau_config path/to/tableau.ini
- At the top of your compose file, add a secrets element to access your secret:
secrets: tableau_config: external: true name: tableau_config
nameshould be the same one you used in the
docker secret createcommand above.
- Once stored as a Docker secret, you can remove the local Tableau configuration file.
servicesection of the compose file, add a new secrets element and specify the name of the secret within your service to use it.
Let's explain in detail with an example:
secrets: tableau_config: external: true name: tableau_config x-templates: # ... services: my-tableau: <<: *extract environment: <<: *tableau-defaults EXCLUDE_PROJECTS_REGEX: "Test1.*|Test2.*" CRAWL_UNPUBLISHED_WORKSHEETS_DASHBOARDS: "true" volumes: - ./output/my-tableau:/output/process secrets: - tableau_config
- In this example, we've defined the secrets at the top of the file (you could also define them at the bottom). The
tableau_configrefers to an external Docker secret created using the
docker secret createcommand.
- The name of this service is
my-tableau. You can use any meaningful name you want.
<<: *tableau-defaultssets the connection type to Tableau.
EXCLUDE_PROJECTS_REGEXtells the extractor to filter out all the projects whose names match the
Test2.*regex patterns in the extracted metadata.
CRAWL_UNPUBLISHED_WORKSHEETS_DASHBOARDStells the extractor to include all hidden or unpublished worksheets and dashboards that are part of a Tableau workbook in the extracted metadata.
./output/my-tableau:/output/processline tells the extractor where to store results. In this example, the extractor will store results in the
./output/my-tableaudirectory on the local file system. We recommend you output the extracted metadata for different connections in separate directories.
servicestells the extractor which secrets to use for this service. Each of these refers to the name of a secret listed at the beginning of the compose file.