In this section, we provide guides and references to use the Tableau connector.
Configure and schedule Tableau metadata and profiler workflows from the OpenMetadata UI:
How to Run the Connector Externally
To run the Ingestion via the UI you’ll need to use the OpenMetadata Ingestion Container, which comes shipped with
custom Airflow plugins to handle the workflow deployment.
If, instead, you want to manage your workflows externally on your preferred orchestrator, you can check
the following docs to run the Ingestion Framework anywhere.
Requirements
To ingest tableau metadata, minimum Site Role: Viewer is required for the tableau user.
To create lineage between tableau dashboard and any database service via the queries provided from Tableau Metadata API, please enable the Tableau Metadata API for your tableau server.
For more information on enabling the Tableau Metadata APIs follow the link here
- If using a default site on Tableau Server, leave the Site Name fields blank in the ingestion configuration.
- Ensure that the Metadata API is enabled for the user performing the ingestion. If it is not enabled, ingestion may fail. Follow the official Tableau documentation to enable the Metadata API.
- As of OpenMetadata versions
1.7.4 and 1.7.5, the siteUrl field has been removed from the Tableau connector configuration. This change was intentional, as confirmed in the release commit.
- To connect to a non-default Tableau site, use the
siteName field instead. The Tableau Python SDK does not require siteUrl for authentication.
- Ensure the
siteName field is correctly populated (do not use *) to enable successful metadata ingestion for multi-site Tableau environments.
Python Requirements
We have support for Python versions 3.9-3.11
To run the Tableau ingestion, you will need to install:
pip3 install "openmetadata-ingestion[tableau]"
All connectors are defined as JSON Schemas.
Here
you can find the structure to create a connection to Tableau.
In order to create and run a Metadata Ingestion workflow, we will follow
the steps to create a YAML configuration able to connect to the source,
process the Entities if needed, and reach the OpenMetadata server.
The workflow is modeled around the following
JSON Schema
1. Define the YAML Config
Example Source Configurations for default and non-default tableau sites
1. Sample config for default tableau site
For a default tableau site siteName and siteUrl fields should be kept as empty strings as shown in the below config.
source:
type: tableau
serviceName: local_tableau
serviceConnection:
config:
type: Tableau
# For Tableau, choose one of basic or access token authentication
# # For basic authentication
# authType:
# username: username
# password: password
# # For access token authentication
# authType:
# personalAccessTokenName: personal_access_token_name
# personalAccessTokenSecret: personal_access_token_secret
hostPort: http://localhost
siteName: site_name
sourceConfig:
config:
type: DashboardMetadata
includeOwners: True
markDeletedDashboards: True
includeTags: True
includeDataModels: True
# lineageInformation:
# dbServiceNames:
# - service1
# - service2
# dashboardFilterPattern:
# includes:
# - dashboard1
# - dashboard2
# excludes:
# - dashboard3
# - dashboard4
# chartFilterPattern:
# includes:
# - chart1
# - chart2
# excludes:
# - chart3
# - chart4
# dataModelFilterPattern:
# includes:
# - datamodel1
# - datamodel2
# excludes:
# - datamodel3
# - datamodel4
sink:
type: metadata-rest
config: {}
workflowConfig:
# loggerLevel: DEBUG # DEBUG, INFO, WARN or ERROR
openMetadataServerConfig:
hostPort: <OpenMetadata host and port>
authProvider: <OpenMetadata auth provider>
2. Sample config for non-default tableau site
For a non-default tableau site siteName and siteUrl fields are required.
Note: If https://xxx.tableau.com/#/site/sitename/home represents the homepage url for your tableau site, the sitename from the url should be entered in the siteName and siteUrl fields in the config below.
source:
type: tableau
serviceName: local_tableau
serviceConnection:
config:
type: Tableau
username: username
password: password
hostPort: http://localhost
siteName: openmetadata
# If not setting user and password
# personalAccessTokenName: personal_access_token_name
# personalAccessTokenSecret: personal_access_token_secret
sourceConfig:
config:
type: DashboardMetadata
# dbServiceNames:
# - service1
# - service2
# dashboardFilterPattern:
# includes:
# - dashboard1
# - dashboard2
# excludes:
# - dashboard3
# - dashboard4
# chartFilterPattern:
# includes:
# - chart1
# - chart2
# excludes:
# - chart3
# - chart4
sink:
type: metadata-rest
config: {}
workflowConfig:
# loggerLevel: DEBUG # DEBUG, INFO, WARN or ERROR
openMetadataServerConfig:
hostPort: <OpenMetadata host and port>
authProvider: <OpenMetadata auth provider>
To establish secure connections between OpenMetadata and Tableau, in the YAML you can provide the CA certificate used for SSL validation by specifying the caCertificate. Alternatively, if both client and server require mutual authentication, you’ll need to use all three parameters: ssl key, ssl cert, and caCertificate. In this case, ssl_cert is used for the client’s SSL certificate, ssl_key for the private key associated with the SSL certificate, and caCertificate for the CA certificate to validate the server’s certificate.
sslConfig:
caCertificate: "/path/to/ca_certificate"
sslCertificate: "/path/to/your/ssl_cert"
sslKey: "/path/to/your/ssl_key"
2. Run with the CLI
First, we will need to save the YAML file. Afterward, and with all requirements installed, we can run:
metadata ingest -c <path-to-yaml>
Note that from connector to connector, this recipe will always be the same. By updating the YAML configuration,
you will be able to extract metadata from different sources.