Package: google-datacatalog-tableau-connector
google-datacatalog-tableau-connectorPackage for ingesting Tableau metadata into Google Cloud Data Catalog,
currently supporting below asset types:WorkbookSheetDashboardDisclaimer: This is not an officially supported Google product.Table of Contents1. Installation1.1. Mac/Linux1.2. Windows1.3. Install from source1.3.1. Get the code1.3.2. Create and activate avirtualenv1.3.3. Install the library2. Environment setup2.1. Auth credentials2.1.1. Create a service account and grant it below roles2.1.2. Download a JSON key and save it as2.2. Set environment variables3. Running the connector3.1. Python entry point3.2. Docker entry point4. Set up a Tableau demo server5. Developer environment5.1. Install and run Yapf formatter6.2. Install and run Flake8 linter6.3. Run Tests6.4. Additional resources7. Troubleshooting1. InstallationInstall this library in avirtualenvusing pip.virtualenvis a tool
to create isolated Python environments. The basic problem it addresses is one
of dependencies and versions, and indirectly permissions.Withvirtualenv, it's possible to install this library without needing
system install permissions, and without clashing with the installed system
dependencies. Make sure you use Python3.6+.1.1. Mac/Linuxpip3installvirtualenv
virtualenv--pythonpython3.6<your-env>source<your-env>/bin/activate
<your-env>/bin/pipinstallgoogle-datacatalog-tableau-connector1.2. Windowspip3installvirtualenv
virtualenv--pythonpython3.6<your-env>
<your-env>\Scripts\activate
<your-env>\Scripts\pip.exeinstallgoogle-datacatalog-tableau-connector1.3. Install from source1.3.1. Get the codegitclonehttps://github.com/GoogleCloudPlatform/datacatalog-connectors-bi/cddatacatalog-connectors-bi/google-datacatalog-tableau-connector1.3.2. Create and activate avirtualenvpip3installvirtualenv
virtualenv--pythonpython3.6<your-env>source<your-env>/bin/activate1.3.3. Install the librarypipinstall.2. Environment setup2.1. Auth credentials2.1.1. Create a service account and grant it below rolesData Catalog Admin2.1.2. Download a JSON key and save it as<YOUR-CREDENTIALS_FILES_FOLDER>/tableau2dc-datacatalog-credentials.jsonPlease notice this folder and file will be required in next steps.2.2. Set environment variablesReplace below values according to your environment:exportGOOGLE_APPLICATION_CREDENTIALS=data_catalog_credentials_fileexportTABLEAU2DC_TABLEAU_SERVER=tableau_serverexportTABLEAU2DC_TABLEAU_API_VERSION=tableau_api_versionexportTABLEAU2DC_TABLEAU_USERNAME=tableau_usernameexportTABLEAU2DC_TABLEAU_PASSWORD=tableau_passwordexportTABLEAU2DC_TABLEAU_SITE=tableau_site(optional)exportTABLEAU2DC_DATACATALOG_PROJECT_ID=google_cloud_project_idReplace above values according to your environment. The Data Catalog
credentials file was saved instep
2.1.2.3. Running the connector3.1. Python entry pointVirtualenvgoogle-datacatalog-tableau-connector\--tableau-server$TABLEAU2DC_TABLEAU_SERVER\--tableau-api-version$TABLEAU2DC_TABLEAU_API_VERSION\--tableau-username$TABLEAU2DC_TABLEAU_USERNAME\--tableau-password$TABLEAU2DC_TABLEAU_PASSWORD\[--tableau-site$TABLEAU2DC_TABLEAU_SITE\]--datacatalog-project-id$TABLEAU2DC_DATACATALOG_PROJECT_ID3.2. Docker entry pointdockerbuild--rm--tagtableau2datacatalog.
dockerrun--rm--tty-vYOUR-CREDENTIALS_FILES_FOLDER:/data\tableau2datacatalog\--tableau-server$TABLEAU2DC_TABLEAU_SERVER\--tableau-api-version$TABLEAU2DC_TABLEAU_API_VERSION\--tableau-username$TABLEAU2DC_TABLEAU_USERNAME\--tableau-password$TABLEAU2DC_TABLEAU_PASSWORD\[--tableau-site]$TABLEAU2DC_TABLEAU_SITE\]--datacatalog-project-id$TABLEAU2DC_DATACATALOG_PROJECT_ID4. Set up a Tableau demo serverTo quickly set up a Tableau demo server, please visithttps://www.tableau.com/developer.Click on SIGN UP FOR THE TABLEAU DEVELOPER PROGRAM. Once you have signed up you
will receive an e-mail with subjectTableau Online Developer - Activate your
Site.In the e-mail contents click on: Activate My Developer Site. Once you've done
that you will receive another e-mail with subjectYou've Successfully Created
Your Site.Then you will be able to use your Tableau Online dev server.5. Developer environment5.1. Install and run Yapf formatterpipinstall--upgradeyapf# Auto update filesyapf--in-place--recursivesrctests# Show diffyapf--diff--recursivesrctests# Set up pre-commit hook# From the root of your git project.curl-opre-commit.shhttps://raw.githubusercontent.com/google/yapf/master/plugins/pre-commit.sh
chmoda+xpre-commit.sh
mvpre-commit.sh.git/hooks/pre-commit6.2. Install and run Flake8 linterpipinstall--upgradeflake8
flake8srctests6.3. Run Testspythonsetup.pytest6.4. Additional resourcesPlease refer to theDeveloper Resources
documentation.7. TroubleshootingIn the case a connector execution hits Data Catalog quota limit, an error will
be raised and logged with the following detailment, depending on the performed
operation READ/WRITE/SEARCH:status = StatusCode.RESOURCE_EXHAUSTED
details = "Quota exceeded for quota metric 'Read requests' and limit 'Read requests per minute' of service 'datacatalog.googleapis.com' for consumer 'project_number:1111111111111'."
debug_error_string = 
"{"created":"@1587396969.506556000", "description":"Error received from peer ipv4:172.217.29.42:443","file":"src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Quota exceeded for quota metric 'Read requests' and limit 'Read requests per minute' of service 'datacatalog.googleapis.com' for consumer 'project_number:1111111111111'.","grpc_status":8}"For more information on Data Catalog quota, please refer to:Data Catalog
quota docs