1 of 1 people found this helpful
Hi Yogi -
The Tableau Extract API doesn't have the ability to connect to any data source itself.
Instead, you write code to connect to what ever data source you want to (a text file, SQL Server, a SharePoint list, etc.).
After you have connected to the data source and bring down records with your code, you feed the rows to the Extract API and it makes a TDE (in memory database file) out of them.
After that, you use Tableau's TabCmd tool (not the API) to publish to Tableau Server.
Hope this helps
I got your point. Please correct me if I am wrong. We can write code(.NET in my case to connect SharePoint list) to connect any data source and feed it to API to create TDE. Once TDE generated, we can publish it on server.
Now I have query, can we refresh this TDE published on server using schedulers to get data from original source?
Yes. You are correct (however there is not a supported C# wrapper for the TDE API – you’ll have to use a community-built version of same)
You cannot refresh a published TDE with Tableau Server schedulers because Tableau Server has no way to connect directly to the data source YOU connected to you with your code. The TDE is essentially an orphaned store with records in it. You will need to repeat the process we discussed all over again and essentially take over responsibly for refreshing.
Note that Tableau Desktop CAN connect directly to a Sharepoint list, but I’ve seen people have limited success refreshing it.
Thanks for the update.
If refresh is not going to work automatically then no meaning to use Data Extract API in my case.
I suggest Tableau to add SharePoint list as data source with caml query. There are so many guys asking for the same.
Another question on "refreshing" an API generated TDE. Let's say I've created my TDE and published to the server with tabcmd. The next day, my extract script runs again. At this point should I delete the actual TDE file, re-create it with the same name, and fill it with new data? Or does the extract api offer a way to open a TDE file, remove the table, and repopulate with new data?
Once that question is settled, what's the approach for replacing/updating the existing TDE so that dependent workbooks use the new data? Should I use tabcmd publish with the overwrite option to replace the TDE on the server?
- For updating / append rows you shall read this post.Re: Refresh Extract with Data Extract API
- For creating new extract over existing one you should ask the OS to delete current extract and then create a new one.
More resources on this subject could/should be read here:
- Tableau extract API Python and Java issues
- Re: Python scripts running on Server?
- Build Tableau Data Extracts out of CSV Files? More Python TDE API madness! | Ryan Robitaille
- Introducing the Python Tableau Data Extract API with a CSV Extract Example | InterWorks, Inc.
- Python-Scripts/Tableau TDE API with Teradata Connection.py at master · rxdarkdawg10/Python-Scripts · GitHub
The c# community edition tde api could be found here: The specified item was not found.
Hope this helps.