TRExt is short for 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
- pyodbc
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 git+git@github.com:AtheonAnalytics/trext.git
or
$ 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.
More detailed documentation is available at http://trext.rtfd.io
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 library: 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
Note: I have tested TRExt only on a Linux distro, so if you find any issues on other Operating Systems please do create a bug report and I can try to fix it, but if you do know how to fix it please also submit a PR.