Skip to main content

Set up automatic exposures in Tableau enterprise

Set up and automatically populate downstream exposures for supported BI tool integrations, like Tableau. Visualize and orchestrate them through dbt Explorer and the dbt Cloud job scheduler for a richer experience.

As a data team, it’s critical that you have context into the downstream use cases and users of your data products. By leveraging automatic downstream exposures, you can:

  • Gain a better understanding of how models are used in downstream analytics, improving governance and decision-making.
  • Reduce incidents and optimize workflows by linking upstream models to downstream dependencies.
  • Automate exposure tracking for supported BI tools, ensuring lineage is always up to date.
  • Orchestrate exposures to refresh the underlying data sources during scheduled dbt jobs, improving timeliness and reducing costs. Orchestrating exposures is a way to ensure that your BI tools are updated regularly using the dbt Cloud job scheduler. See the previous page for more info.

In dbt Cloud, you can configure downstream exposures in two ways:

  • Manually — Declared explicitly in your project’s YAML files.
  • Automatic — dbt Cloud creates and visualizes downstream exposures automatically for supported integrations, removing the need for manual YAML definitions. These downstream exposures are stored in dbt’s metadata system, appear in dbt Explorer, and behave like manual exposures. However, they don’t exist in YAML files.
Tableau Server

If you're using Tableau Server, you need to add the dbt Cloud IP addresses for your region to your allowlist.

Prerequisites

To configure automatic downstream exposures, you should meet the following:

  1. Your environment and jobs are on a supported dbt Cloud release track.
  2. You have a dbt Cloud account on the Enterprise plan.
  3. You have set up a production deployment environment for each project you want to explore, with at least one successful job run.
  4. You have proper permissions to edit dbt Cloud project or production environment settings.
  5. Use Tableau as your BI tool and enable metadata permissions or work with an admin to do so. Compatible with Tableau Cloud or Tableau Server with the Metadata API enabled.

Considerations

Configuring automatic downstream exposures with Tableau have the following considerations:

  • You can only connect to a single Tableau site on the same server.

  • If you're using Tableau Server, you need to allowlist dbt Cloud's IP addresses for your dbt Cloud region.

  • Tableau dashboards built using custom SQL queries aren't supported.

  • Downstream exposures sync automatically once per day or when a user updates the selected collections.

  •  The database fully qualified names (FQNs) in Tableau must match those in the dbt build.

    Tableau's database FQNs (fully qualified names) must match those in the dbt build. To view all expected dependencies in your exposure, the FQNs must match but aren't case-sensitive. For example:

    Tableau FQNdbt FQN
    Result
    analytics.dbt_data_team.my_modelanalytics.dbt_data_team.my_model✅ Matches and dependencies will display as expected.
    analytics.dbt_data_team.my_modelprod_analytics.dbt_data_team.my_model❌ Doesn't match and not all expected dependencies will display.

    To troubleshoot this:

    1. In dbt Cloud, download the manifest.json from the most recent production run that includes the missing dependencies by clicking on the Artifacts tab and scrolling to manifest.json.

    2. Run the following GraphiQl query. Make sure to run the query at your_tableau_server/metadata/graphiql, where your_tableau_server is the value you provided for the Server URL when setting up your Tableau integration:

          query {
      workbooks {
      name
      uri
      id
      luid
      projectLuid
      projectName
      upstreamTables {
      id
      name
      schema
      database {
      name
      connectionType
      }
      }
      }
      }
    3. Compare database FQNs between manifest.json and the GraphiQL response. Make sure that {database}.{schema}.{name} matches in both. The following images are examples of FQNs that match in both manifest.json and the GraphiQL response and aren't case-sensitive:

    manifest.json example with lowercase FQNs.manifest.json example with lowercase FQNs.
    GraphiQl response example with uppercase FQNs.GraphiQl response example with uppercase FQNs.
    1. If the FQNs don't match, update your Tableau FQNs to match the dbt FQNs.
    2. If you're still experiencing issues, please contact dbt Support and share the results with them.

Set up downstream exposures

Set up downstream exposures in Tableau and dbt Cloud to ensure that your BI tool's extracts are updated automatically.

Set up in Tableau

This section explains the steps to configure the integration in Tableau. A Tableau site admin must complete these steps.

Once configured in both Tableau and dbt Cloud, you can view downstream exposures in dbt Explorer.

  1. Enable personal access tokens (PATs) for your Tableau account.

    Enable PATs for the account in TableauEnable PATs for the account in Tableau
  2. Create a PAT to add to dbt Cloud to pull in Tableau metadata for the downstream exposures. When creating the token, you must have permission to access collections/folders, as the PAT only grants access matching the creator's existing privileges.

    Create PATs for the account in TableauCreate PATs for the account in Tableau
  3. Copy the Secret and the Token name for use in a later step in dbt Cloud. The secret is only displayed once, so store it in a safe location (like a password manager).

    Copy the secret and token name to enter them in dbt CloudCopy the secret and token name to enter them in dbt Cloud
  4. Copy the Server URL and Sitename. You can find these in the URL while logged into Tableau.

    Locate the Server URL and Sitename in TableauLocate the Server URL and Sitename in Tableau

    For example, if the full URL is: 10az.online.tableau.com/#/site/dbtlabspartner/explore:

    • The Server URL is the fully qualified domain name, in this case: 10az.online.tableau.com
    • The Sitename is the path fragment right after site in the URL, in this case: dbtlabspartner
  5. With the following items copied, you are now ready to set up downstream exposures in dbt Cloud:

    • ServerURL
    • Sitename
    • Token name
    • Secret

Set up in dbt Cloud

  1. In dbt Cloud, navigate to the Dashboard of the project you want to add the downstream exposure to and then select Settings.

  2. Under the Exposures section, select Add integration to add the Tableau connection.

    Select Add Integration to add the Tableau connection.Select Add Integration to add the Tableau connection.
  3. Enter the details for the exposure connection you collected from Tableau in the previous step and click Continue. Note that all fields are case-sensitive.

    Enter the details for the exposure connection.Enter the details for the exposure connection.
  4. Select the collections you want to include for the downstream exposures and click Save.

    Select the collections you want to include for the downstream exposures.Select the collections you want to include for the downstream exposures.
    info

    dbt Cloud automatically imports and syncs any workbook within the selected collections. New additions to the collections will be added to the lineage in dbt Cloud during the next sync (once per day).

    dbt Cloud immediately starts a sync when you update the selected collections list, capturing new workbooks and removing irrelevant ones.

  5. dbt Cloud imports everything in the collection(s) and you can continue to view them in Explorer.

    View from the dbt Explorer in your Project lineage view, displayed with the Tableau icon.View from the dbt Explorer in your Project lineage view, displayed with the Tableau icon.

View downstream exposures

After setting up downstream exposures in dbt Cloud, you can view them in dbt Explorer for a richer experience.

Navigate to dbt Explorer by clicking on the Explore link in the navigation. From the Overview page, you can view downstream exposures from a couple of places:

Exposures menu

View downstream exposures from the Exposures menu item under Resources. This menu provides a comprehensive list of all the exposures so you can quickly access and manage them. The menu displays the following information:

  • Name: The name of the exposure.
  • Health: The data health signal of the exposure.
  • Type: The type of exposure, such as dashboard or notebook.
  • Owner: The owner of the exposure.
  • Owner email: The email address of the owner of the exposure.
  • Integration: The BI tool that the exposure is integrated with.
  • Exposure mode: The type of exposure defined: Auto or Manual.
View from the dbt Explorer under the 'Resources' menu.View from the dbt Explorer under the 'Resources' menu.

File tree

Locate directly from within the File tree under the imported_from_tableau sub-folder. This view integrates exposures seamlessly with your project files, making it easy to find and reference them from your project's structure.

View from the dbt Explorer under the 'File tree' menu.View from the dbt Explorer under the 'File tree' menu.

Project lineage

From the Project lineage view, which visualizes the dependencies and relationships in your project. Exposures are represented with the Tableau icon, offering an intuitive way to see how they fit into your project's overall data flow.

View from the dbt Explorer in your Project lineage view, displayed with the Tableau icon.View from the dbt Explorer in your Project lineage view, displayed with the Tableau icon.
View from the dbt Explorer in your Project lineage view, displayed with the Tableau icon.View from the dbt Explorer in your Project lineage view, displayed with the Tableau icon.

Orchestrate exposures beta

Orchestrate exposures using the dbt Cloud job scheduler to proactively refresh the underlying data sources (extracts) that power your Tableau Workbooks.

  • Orchestrating exposures with a dbt build job ensures that downstream exposures, like Tableau extracts, are updated regularly and automatically.
  • You can control the frequency of these refreshes by configuring environment variables.

To set up and proactively run exposures with the dbt Cloud job scheduler, refer to Orchestrate exposures.

0