4 Replies Latest reply on Nov 8, 2016 6:16 AM by Pete Griffiths

    Sharing semantics between datasources

    Pete Griffiths



      Does anyone know what the best practice is (in Tableau) for sharing elements in a datasource with another datasource?


      Here is a fictitious example to illustrate the question:




      In this model, assume the two fact tables are unrelated, are at a different grain and will never be combined in the same report, workbook or dashboard.

      However there are two dimensions that are shared, one common to almost everything (Date) and the other common to almost everything within the organization. 

      This is a VERY simple example, in reality there would be many more facts and shared dimensions.


      So, in this situation the first datasource you might create in Tableau is the one that includes fact_stocklevel, dim_date, dim_location, dim_product.

      Now you customize the names of the all the dimensions and attributes, building some hierarchies, specifying formatting rules, etc.


      Next you move on to building a report from the second datasource (fact_websiteusage, dim_date, dim_product, dim_user)

      As far as I can see, you must re-do all of the customization work that you just did for the first report.


      How can you re-use all of the semantic customizations that have already been done in the first datasource?

      Also, once it has been re-used, can you apply changes to one version of a re-used element and have it propagate to all of the other versions?


      In my opinion this is something that really limits Tableau as an enterprise class self service tool, but I am not a Tableau expert, so I would love to hear others thoughts on the subject.

        • 1. Re: Sharing semantics between datasources
          Russell Christopher

          Hey Pete -


          Yeah, i could see how this could be very useful for organizations which make a habit of creating "blessed" data sources for users to consume.


          Unfortunately, there's no easy way to get the sort of re-use you're looking for. The only way I can think you might get to where you want to go is  by "off-roading". All changes that you're making to the initial data source are simply stored as XML in the first workbook. If you can identify the structures that are important to you and how they relate to your base tables, you could probably copy / transplant them into the new workbook. This would require a fair amount of experimentation and trial & error on your part...and is unsupported. So I don't know if the investment of effort would be worthwhile.


          Have you experimented with 10's new Cross Database Joins? You might very well find that the idea of creating a second data source becomes altogether unnecessary - just join your "new" fact table to whatever conformed dimension has already been added to the "original" and go from there. In essence, you treat the second fact table like it lives in a different database (even though it doesn't) so you can handle it in a more convenient manner. Bit of a hack (and I've never actually tried it myself), but I wouldn't be surprised if this approach might do it for you. 

          If you try said idea, let us know? Would love to hear about your experiences...

          • 2. Re: Sharing semantics between datasources
            Pete Griffiths

            Thanks Russell,


            I thought that would be the answer.  Regarding the "blessed" data source - it's not really a blessed data source, rather a "blessed" dimension or shared resource.  The whole data source doesn't have to be blessed, just one or more aspects of it, for sharing and re-use to be hugely beneficial.


            I've had a quick look at cross database joins and it seems as though they only apply within one datasource.  So allowing users to leverage [some of] an existing data model with a new dataset without making changes to the original won't work with this new feature.  The only way to do anything close is with data blending, which is horribly inefficient on large datasets.


            I guess this just isn't a use case that Tableau wishes to support, which is fine.  It's good to have a clear understanding.


            Thanks again!



            • 3. Re: Sharing semantics between datasources

              I think you are touching the most painful and expensive weakness of Tableau!


              You might like to up-vote  Dimensionally Modeled Extracts (133)  and thus influence Tableau to do something about it!


              As for shared live connections, I assume we can just join a fact with every single dimension available! In this regard, it would be nice with something like  Favorite Dimensions and Measures (4). In addition, I believe it would be helpful if dimension tables where none of the fields are commonly used went into a special group named Other Dimensions to avoid  overchoice.  Currently, I don't know of any idea requesting this.

              • 4. Re: Sharing semantics between datasources
                Pete Griffiths

                Thanks kettan, I've upvoted the idea.  It would be nice to have this/these shared dimension(s) as logical definitions which could be extracted or queried directly on the datasource, i.e. not specifically for tableau extracts.


                I don't think that this is in the tableau roadmap though, they have not gone in this direction ever!  Great desktop tool, awesome graphics and vizualizations but re-use....  very limited.  Considering they have an xml schema to support the definition of data sources and objects, it doesn't strike me as a huge amount of work to get some of this functionality.  It just seems like it's low or zero priority.