After researching a bit more about this I found that published data sources using extracts cannot be used in this way. This is a massive let down but still need to find the best solution.
My understanding now is that I can publish reports with their own extracts and refresh these individually.
So I have repeated the above steps but not created a published data source.
I am then using the following script to refresh using tabcmd:
E:\Program Files (x86)\Tableau\Tableau Server\8.0\bin>tabcmd refreshextracts --project "Group WIP" --workbook "KPI - Actual vs Plan (Extract)"
This returns successful but if I then try to run the report all the data has vanished. Only after republishing the workbook is the issue resolved.
Any advise would be appreciated.
As I understand, there are two ways.
1. You create a workbook with live db connection or extract data in same workbook. You publish the workbook with db credentials (Embed password). Now publish the workbook. In this case, the data source is either a live connection or a connection + extract associated with the workbook. Such workbook works fine and you can schedule the refresh for the entire workbook.
2. Other way is create a data connection with database from Tableau desktop. It creates a TDS. Publish this TDS. OR After creating the data connection, extract the data and publish TDS + TDE combination (TDSX). No workbook is published in this case yet. You can schedule refresh for this TDS or TDSX.
Now you can open a new workbook. Connect to the data source on the server and build the dashboard. Publish the dashboard. Such dashboard need not be refreshed. It gets refreshed automatically when the data source is refreshed.
Hope it helps.
Thanks for your reply.
I am confused.
So, if I understand correctly, is there is no way to refresh the extract for a published datasource except refreshing each workbook that uses the source
Does refreshing a workbook based on the published data source update the data for all workbooks that use it?
I'm likely confused by this question, but from what I read in your first post this should do exactly what you are wanting done.
A few questions. Do you have admin access to your tableau server so that you can see if the schedule is running and if your refresh was successful? Where is this data you are putting into an extract coming from originally?
I manage several extracts and have them all running on different schedules. These extracts are all coming from a SQL server database. But having them as extracts not only gets the data to people faster but makes 20 people hit an extract instead of 20 people hitting the ever slowing SQL server.
One thing that may be making your extract be empty is if you have any data source filters on it. If you do, no matter what kind of data is in your extract, it will only show you what the data source filter allows in.