3 Replies Latest reply on Dec 28, 2018 12:31 PM by Michael Gillespie

    Extracting/Manipulating Data parameters

    Nicholas Cazaubon

      Background - I'm a java front end developer by trade, new to the world of Tableau, and tasked with figuring out how to integrate it in several ways for a contract I'm currently on.  After reading through the REST, Python and JavaScript APIs a bit I'm not sure I'm any closer to any answers, and was hoping others may have experience with some of the tasks I'm trying to figure out and be able to offer some insight.


      The integration is focused on two points.  The first is through portal data entry, which boils down to the system should allow the user to define data sets within the portal for use in reports viewing as well as data visualization (through a different data visualization tool) and potentially other tools.  The second is linking actions taken within the Tableau tool (presumably the online tool, possibly including the desktop tool) back to the other tools/portal, allowing users to refine their data sets using the reports as a feedback mechanism.  With those two goals in mind, I have the following hopefully more specific questions.


      1)  Is there a clean way to adjust the data set target within Tableau based off parameters set in a portal form page?  The portal would try to capture the parameters for interesting data such as a given time frame, geolocation, vendor, user, etc, which I would want to feed into Tableau for it to run a report on.  Tentatively I assume the best path would be to use the API to set the connection's initial query, but I have concerns over if that's easy for a user to adjust if they decide they want to look at a different data set.  I had briefly considered trying to build a workbook XML based off the filter and uploading it, but that seems like it invites a bit too much complexity in trying to merge the data filtering and a report together, and would be far more limited in how it allowed the user to expand or narrow down their query.  I also read that there was a method of passing parameters in by URL, but I'm worried that I'll be passing in too much info (80-90 potential fields, possibly with duplicates) through that avenue, and I thought I'd read it was incompatible with the initial query anyway.  Are there other methods I'm overlooking that would better support this?


      2)  Does Tableau support form based parameter entry for its own reports?  So if I've defined a report as looking for data sets within a time block, can it prompt the user on running the report to enter the time block, or do they have to know how to configure that data on their own?  In a related fashion, how well does Tableau support a user entering their own ad hoc sql query?  If I've given an advanced user a data model and told them to write out their own specific query can they drop that into a quick field and hit run, or do they need to also know specific application knowledge for setting up a workbook and adding query elements to that?


      3)  Building a bit off question 1, does Tableau support launching specific reports in conjunction with loading the online tool?  Say a user had selected a data set within the portal tool to run a report on, could they specify the report in the portal (so portal draws up a list of reports available to the user within Tableau), and would I then be able to launch the online tool already loading to the report in question?  This would mostly be to help basic or infrequent users to get to a report without having to navigate through a bunch of other screens.


      4)  Is it possible to save 'Drill Downs' and make them portable somehow?  The idea behind this is the user runs a report, gets hundreds of lines back and needs something more granular.  So they tweak the time window, filter the list for vendors based out of Arizona, do whatever to get it down to a final version that they like.  They then want to view that data in one of our other tools such as visualization.  Is it possible for me to access a sort of grand query that filters down to that new view subset?  I can work off a query, but I'm not sure if there'd be complications if we're using initial queries to control the overall data access, plus a report query, plus a filtered view on the report query, and if I'd even be able to access one/all of them programmatically.  Additionally, is it possible for the user to save those drill down states so the next time they run that report they can have it already filtered to the view they want, or would they need to go back and modify the original report/their copy of it to have those built in? 


      Any guidance on where to look for documents or what terms I need to search for to get details would be appreciated.  Thanks for your time!

        • 1. Re: Extracting/Manipulating Data parameters
          Michael Gillespie

          Nicholas, I think you may be approaching this from the wrong angle.


          Tableau is a visualization tool, not a data manipulation tool.  When we embed Tableau in a web page, users interact with a visualization (a single chart or graph) or a dashboard (a collection of 1 or more visualizations with an integrated/common navigation structure).


          Interactions are most often by some form of filter, either explicitly by clicking on a drop-down field with a list of values to filter on, or by interacting with a segment of a viz (e.g., click on a single state in a map of the USA and filter a table to show a set of values associated with that state).


          So, users don't write queries; users don't select a data set to pass to a dashboard for visualization; everything is pre-built and users interact with the pre-built content.


          Most of what you're asking about would be a very odd way of using Tableau.  It's not that it's necessarily impossible, but that it is very uncommon.  The "desktop tool" is Tableau Desktop; it allows users to connect to root sources of data, build reports (visualizations and dashboards) and publish those to the "online tool" - Tableau Server.  Tableau Server ALSO has some content-creation capabilities, but it's not 100% feature-equivalent to Desktop.

          Further, when you are embedding Tableau in a portal, you can CHOOSE to expose the entire Tableau Server user interface to the end user, but you don't HAVE to.  That would allow a given user to select a data set upon which to build a dashboard, but there is limited capability to create NEW connections (called Data Sources) from the Server interface.


          I'd suggest that you do a lot more reading about how Tableau itself works, not just the API documentation.  You can do most of the things you're asking for, sort of, but what you're attempting to do is NOT what Tableau Server is designed to do.

          • 2. Re: Extracting/Manipulating Data parameters
            Nicholas Cazaubon

            I can definitely agree my understanding of Tableau may be off from the sounds of it.  It was originally picked as our BI Tool for the contract based on the client's familiarity with Tableau on other programs and a trade study of BI Tools. 


            That said, I think our situation is somewhat different than normal as well.  Our end user is expected to be able, and have a need, to customize and generate reports outside of what's been set up before hand.  We expect predominantly analysts to be using the system, and won't be able to determine what slices of data are important to them prior to their realizing something happened last night that needs to be analyzed.  Our goal is to build a system that allows them to easily customize and save data sets they need for performing their job, so kinda one meta level higher on the use of the tool.


            If I'm understanding right then, they'll be doing most of the report actual generation via the desktop client for it's robustness, with maybe minor modifications via the online portion.  It sounds like while Tableau supports drill downs it's not really designed to read back the drill down state?  My only prior data experience is working with SQL and Oracle BI, so that tends to be my default go to for languages, but would there be a way to pull something like an XML structure or string array for the current drill down?


            Is there a good source of explanation for what Tableau is best suited for?  I don't have access to the documents used in our trade study since they pulled heavily from Gartner, but clearly there may have been a misalignment between what that team found and what the tool is best used for.

            • 3. Re: Extracting/Manipulating Data parameters
              Michael Gillespie

              The normal workflow is to use Tableau Desktop to connect to a source of data (e.g., a SQL Server database).  The user doing that creates joins, etc. visually in the desktop environment, and creates what is called a Data Source in Tableau.  That data source is then published to Tableau Server.


              A data source can be LIVE or an EXTRACT.  An Extract queries the root data source, loads the data returned into Tableau's in-memory database (called Hyper), and writes that data out to a local file with a .hyper extension.  This structures the data efficiently for use by Tableau when building a visualization.  A LIVE connection loads the data into the same Hyper structure, but does NOT store the data in a secondary external file.


              That published Data Source is then available for anyone to use to create visualizations.  You don't go through any kind of database-based toolset (like SQL Server Management Studio) to generate a query for Tableau to use.  You might conceivably have a role in your team that creates data sources for analysts to use, or an analyst may also create the Data Sources him or herself.  But you use Tableau itself for that function, not an external tool.


              Go here: Tableau Training: View Training Courses   Sign up and watch the first Getting Stated video.  Then come  back here and ask more questions.


              If you want to have a private conversation, my work e-mail address is in my profile - feel free to reach out offline any time.