2 Replies Latest reply on May 10, 2014 6:57 PM by Chris Gerrard

    Is it possible to programmatically extract data from a .tde?

    Mike McQueen

      Hey guys,


           We're hoping to build some metadata around our dashboards and it would be infinitely easier if we were able to pull data from the .tde files. We're hoping to pull in all calculated fields that we've created within tableau as well as the raw data. I know there is the Data Extract API but from what I could tell it was only for pushing data into Tableau.


           If anyone could point me in the right direction it would be greatly appreciated!

        • 1. Re: Is it possible to programmatically extract data from a .tde?
          Matt Lutton

          I'm not sure if you'll find exactly what you're looking for, but this tool can be extremely helpful in analyzing TWB workbooks in a directory:

          The TWB Auditor – A tool for investigating your #Tableau workbooks | 3danim8's Blog

          • 2. Re: Is it possible to programmatically extract data from a .tde?
            Chris Gerrard

            It's a real hack, and quite brittle, but one approach is to programmatically operate Tableau Desktop. This put the full power of Tableau Desktop into play - anything you can do with it can be automated, including accessing a viz that uses the TDE and downloading or exporting the data, whichever suits your purpose.


            I've done this a few times using Sikuli, Sikuli Script - Home, which accesses the Windows windowing system and can programmatically drive pretty much any Windows app.


            It's been a fair while since I've done it and I don't have the details at hand, but here's the basic flow:

            • create a Tableau workbook that has the content you want
            • run through the steps of getting Tableau Desktop to do what you want, to the point where it's a mechanical process that doesn't require any variable user input
            • create the Sikuli script that mimics these steps
            • voila!


            Naturally, the devil is in the details, and there are plenty of them.

            Still, it's not all that difficult, just takes a little time and experimenting.


            Sikuli can integrate Python code, and if member serves other languages. But not Ruby, when I was working with it.


            I thought about putting a blog post about this after I'd done it a couple of times, but work got in the way.


            It just might work for you.