What about using tabcmd, i.e. adding tabcmd call to ETL script?
1 of 1 people found this helpful
A workaround for this if tabcmd doens't work is to have the Tableau Server update the extract every hour or whatever timescale is reasonable. Then it'll pick up the latest file once it's there and use the older version while the new still hasn't been created. This is assuming the extract doesn't take a long time to refresh as you don't want this to cripple the server.
It's not a ideal solution but is effective.
1 of 1 people found this helpful
This is something that we need to look at. My thoughts were around what Dimitri Blyumin had mentioned.
The problem with setting up extracts to run every hour is that the extract process can take a toll on server performance (I guess this is the reason that the out of the box schedules are all configured to be out of hours.
The way I see this happening is, your ETL process would create a file containing the name of the extract to be refreshed in a location that your tableau server (or a server with tabcmd installed) can access, and a schedule set up to run a batch/powershell script every 5 minutes. This script would just poll that directory and when it finds a file, it passes the contents of that file (the name of the extract) as an argument to "tabcmd refreshextracts".
Depending on what extracts you have refreshing, you might want to use the --synchronous flag to force it to run straight away rather than being queued.
You can do it manually as long as you are the Owner of the item. Just throwing it out there
How to manually refresh an extract on the Tableau Server
Note: Only the Owner or an Administrator can perform this operation.
- Log on to the Tableau Server
- Go to the workbook and check the box at the very left end of the row
- Click the Scheduled Tasks link
- Check the box of the desired Schedule and Run Now will display
- Click the Run Now link to immediately run the selected Schedule
-- End Of Document --
I like Dimitri's suggestion. Have a script that fires off the ETL and when that's done then have it fire off tabcmd to perform the extract. Something along those lines.
I asked Tableau about this a couple of months ago, I had wanted a automatic hand-off from the database to Tableau once ETL had finished. The best they had was run schedules via tabcmd (this is in addition to your manual instructions)
In your scenario TABCMD is the best suit option as suggested by Dmitri.
Hey Thanks Graham Macleod, for putting the right solution in a pseudo layman terms. I knew there is something got to do with ETL, writing file somewhere and writing a batch somewhere, I just did not know 'where'. Now since those questions are 'clarified' in your answer, I can start looking for step-by-step specific solution.
This is on our radar so when I come up with our solution I'll post it here (or I'll try to remember to do so anyway ). Obviously this would only be from the powershell side forwards. I wouldn't be able to help with the ETL file creation side of things.
One thing worth mentioning is that we use solaris UNIX servers for our ETL application, so we will be using pscp and private key authentication to pull the trigger file onto the Tableau Server Windows box once the ETL process has created it. I have used this previously for another task and it worked quite nicely.
Great, Graham! Lets see how does it go in my case, I'd come back and let you know once we ar able to it this week.