Tableau toolbelt

Tableau ontbeert een aantal functies die je graag in command-line vorm zou willen hebben voor het automatiseren van taken. Tableau biedt hiervoor tabcmd aan, maar dat was tot kort geleden een Windows-only tool, en is uiteraard niet uitbreidbaar zonder medewerking van Tableau.

Paar voorbeelden van graag geziene functies:

  • publiceren van data sources tussen omgevingen (Tableau heeft hier helemaal niets voor, behalve een handmatig, tijdrovend en foutgevoelig proces door middel van Tableau Desktop)
  • publiceren van workbooks tussen omgevingen; idem dito
  • exporteren/importeren van metadata in data sources (heb je wel eens een grote data source snel in bulk willen bewerken qua metadata?)
  • exporteren van CSV’s vanuit workbooks
  • lineage: uitschrijven van geneste formules tot database velden
  • verversen van data sources na afronden van laadprocessen
  • verversen van workbooks na afronden van laadprocessen

Tableau heeft op haar Github pagina’s een paar mooie API’s beschikbaar gesteld, zoals document-api-python en server-client-python voor Python.

Bij Inergy hebben we hier gretig gebruik van gemaakt door een aantal gewenste functionaliteiten met deze API’s vorm te geven. Van de document-api-python API hebben we een aangepaste versie gemaakt om in onze behoeftes te kunnen voorzien.

Allemaal leuk en aardig, maar wil je dit eenvoudig overdraagbaar maken, dan is het beschikbaar stellen van source en library dependencies een vereiste, maar niet het makkelijkst. En dan komt Docker om de hoek kijken.

Met deze Docker pagina stellen we een image beschikbaar om snel met deze toolbelt aan de slag te kunnen. Eén vereiste: je moet Docker hebben draaien. En dan kun je van start met dit commando:

docker pull richardk0/tableau-scripts:1.0.0

Nog wat start documentatie van de Docker pagina:

Door middel van Docker mounts kun je de scripts laten werken op lokale bestanden, voorbeeld:

docker run --rm -it richardk0/tableau-scripts:1.0.0  # see list of commands

docker run --rm -it richardk0/tableau-scripts:1.0.0 <script.py> -h
docker run -v $(pwd)/files:/data -it --rm richardk0/tableau-scripts:1.0.0 datasource_metadata.py --file /data/Sales.xlsx /data/Sales.tds

Mocht je aan de slag willen gaan met de scripts zelf, of de Docker definitie, ga je gang. Ik zie je merge requests graag tegemoet.

Een gedachte over “Tableau toolbelt

  1. Voor de volgers: er is een 1.1.0 versie die in datasource_publish een controle toevoegt op de waarde = ‘true’ voor een empty extract parameter. Indien dit het geval is, volgt er een warning.
    Deze methodiek gebruiken we bij Inergy om sneller te kunnen werken met een datasource: zolang de parameter op ‘true’ staat, wordt er geen data opgehaald. Maar wanneer de datasource op deze manier wordt gepubliceerd, blijft die ook leeg op productie……
    Vandaar de controle. De parameters wordt gematcht op de termen ‘empty’ en ‘extract’. Gebruik je een andere conventie?: even het scripts aanpassen. Misschien kunnen we er een parameter op de command-line van maken, maar voor ons volstaat het zo.

    Like

Geef een reactie

Gelieve met een van deze methodes in te loggen om je reactie te plaatsen:

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Google photo

Je reageert onder je Google account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s