4 Replies Latest reply on Nov 2, 2017 10:25 AM by Paul Davis

    Improving Performance of Custom Territory Map Rendering

    Paul Davis

      I am loving the new custom territory feature in Tableau 10.  I have successfully assigned my territory field a geographic role using 5 digit zip and the plotted it on a map displaying relative performance.  The performance of this map isn't great, however.  In Tableau Desktop it takes nearly 30 seconds to render the viz the map is on.  Tableau Server is faster, but still requires 8-10 seconds to render the map using both IE and Chrome.  Any suggestions for improving the performance?

       

      I cannot really share the data as it is company confidential.  However, I can explain that I am taking our master zip code to territory file and blending it with my performance data in Tableau.  Both tables are extracted into a packaged workbook.  The master zip to territory file has all US zip codes in it, so it has 90,900 rows.  I am not surprised really that it takes some time given all the zip codes Tableau has to crunch through, but am hoping there are some tricks to speed things up.

       

      Thanks

        • 1. Re: Improving Performance of Custom Territory Map Rendering
          Jonathan Drummey

          Hi Paul,

           

          My suggestion is to use a cross data source join that is extracted instead of two extracts in a data blend. I'm thinking this has a good chance to solve your performance issues. The reason why is that a data blend requires at least 2 queries and up to 6 queries across the sources for Tableau to pull the data from each source, identify the linking dimension values and make the blend. What I've found in practice is that once the number of linking dimension values for a data blend gets into the 10s of thousands then data blends start getting too slow for most use cases (such as user interaction via Tableau Server) because of these extra lookups.

           

          By using a cross data source join & extract the resulting data source then all of that lookup will have been done in the extract process and the basic view will only require 1 query to the single extract so it should be nice and fast.

           

          You haven't said how complicated the view/dashboard is, you might be able to get some performance improvement by displaying fewer marks in the initial view and then having users filter & drill down from there, however the data blend might still get in your way.

           

          Two other options for performance would be to set up a custom geography (available now)  or to use a custom shapefile (to be available in v10.2). Both would require work outside of Tableau for setting them up but could result in a view that is faster to draw.

           

          Jonathan

          • 2. Re: Improving Performance of Custom Territory Map Rendering
            Paul Davis

            Thanks for the response Jonathan. I didn't use a cross data source join as it would be a cartesian join. 

             

            For example:

            My performance data table has data across all regions for 8 products for the past 15 quarters.

            So, there are 120 rows for region X in the performance data table.

            Region X has 1900 zip codes assigned to it.

            Thus, a cross data source join would result in 228k rows for Region X and incorrect results would be calculated.

             

            Can you elaborate on building a custom geography or point to a KB article?

             

            Thanks

            • 3. Re: Improving Performance of Custom Territory Map Rendering
              bhami sathi

              You can solve this problem by assigning one specific zip code to your data. that means one zipcode contains have data and remaining zip codes having null values. That is how your calculations will not be duplicated.

              1 of 1 people found this helpful
              • 4. Re: Improving Performance of Custom Territory Map Rendering
                Paul Davis

                Sorry for the delayed response.  Can you elaborate?  I am not understanding what you mean.  Thanks