Tableau Refresh Extract (Externally)
TRExt is a means to refresh a Tableau Extract (.tde files) externally so the Tableau Server can serve visual content without having to compete for resources while refreshing extracts internally.
The main dependencies are:
- Tableau SDK
The repo also supports
- pyodbc wrapper such as EXASol Python SDK
You need pip to install TRExt.
You can install the latest version of the package straight from PyPI using:
$ pip install trext
You can also directly install from GitHub directly using:
$ pip install firstname.lastname@example.org:AtheonAnalytics/trext.git
$ pip install git+https://github.com/AtheonAnalytics/trext.git
Create an extract
>>> import trext >>> tde = trext.Extract() >>> connection_string = "appropriate db connection string" >>> tde.create("db.schema.table", conn_string=connection_string, dbtype='exasol') Created! >>> tde.location /temp/extract.tde
Publish to Tableau Server (overwrites existing extract)
>>> tableau_auth_details = ("username", "password") >>> publish_details = ("site_content_url", "project_name") >>> tde.publish("tableau server address", auth=tableau_auth_details, params=publish_details) Published!
Refreshing an extract is now replaced with creating and publishing an extract. You can use this is conjunction with TabAuto (not yet open source) or with Tableau's server-client-python library to get the datasource names that need refreshing.
TRExt is still a Work-in-Progress
I wrote most of this codebase when Tableau SDK was released for Tableau 8 and never got around to moving it from a POC/local copy to open source, so this a rough-and-ready type of library.
This is fair warning to anyone who uses this repo: there will be bugs, bad documentation and no tests for a short while till I fix it up. So please use with care and if you find issues submit a bug report or a PR.
If you want to contribute and add tests, better documentation, new connectors, cleaner interface etc, please do and submit a PR.
Oh and don't forget to add yourself to AUTHORS