/dbt_tabcatalog

bi-directional integration of dbt metadata api and Tableau Catalog

Primary LanguagePython

dbt Cloud and Tableau Catalog Metadata Integration

This repo contains a sample project that implements a bi-directional integration between the dbt Cloud Metadata API and Tableau Catalog. The solution is implemented as a standlone Python application which creates a link between the dbt models/tables and downstream Tableau Data Sources in order to populate the table/field descriptions, data quality warnings, certifications, tags etc. in the Tableau Catalog. The solution also generates dbt dashboard exposures for the downstream Tableau Workbooks which can be automatically commited to your dbt github repo. Note that the solution has only been tested using Snowflake, although other cloud database platforms *should work.

Please watch this video for details on how the integration works and read this blog post explaining why you should consider using dbt & Tabelau together. If you have any questions/comments/feedback then please join the #tools-tableau dbt slack channel where you can get in touch with me.

Step 1. Configure the settings.yml file with values that represent your environment. I would recommend starting by filtering on a single dbt project and or Snowflake database.

image

Step 2. Install Python and ensure you have installed the following libraries

Step 3. Run the dbt_tabcatalog.py and check the output console for any errors/warnings.

Step 4. If the integration ran successfully you go into Tableau Server/Cloud -> External Assets and select a table which is linked to one of your dbt models. You should see the following information populated: image

Step 5. Check whether the dbt exposures were added to your project by either opening the github repo directly or opening dbt Cloud and selecting Develop. You should see the downstream Tableau workbooks have been added as dashboard exposures to your dbt DAG: image