3 Replies Latest reply on Apr 7, 2017 8:42 AM by adam.freeman.2

    Design Patterns for Tableau Optimization

    rohan.dalvi

      Hi all,

       

      I am working with a team building a large database, I'm not the architect and have little knowledge of enterprise architecture, and was asked an optimization question that I want to run by the community. What are some of the optimal table design patterns for Tableau to be able to quickly query the database? From initial research it looks like the best way is to have the database structured in its own optimal format, and then create columnar extracts for Tableau using the Tableau extract tool. Is there a preferred method between Tableau running off a database view or a table? How about database indexes?

       

      Please let me know if I can clarify anything.

       

      Thanks

        • 1. Re: Design Patterns for Tableau Optimization
          adam.freeman.2

          This is a difficult question to answer since there are a lot of variables to consider. It really depends on the use-case for this database. It can be difficult balancing the needs of quickly and efficiently storing the data in comparison to then quickly and clearly querying it for reporting. Fortunately, you have the rare opportunity to design a database so it provides clean data for the viewer.

           

          I can, in no way, provide effective recommendations for database architecture... but I can try to give some general advice.

           

          1. If performance is the focus, consider creating a healthy database which can perform the hard work for us. This means having a normalized database which would also perform common calculations so Tableau doesn't have to do it in addition to more complex calculations and queries.
          2. There is no preferred method for creating efficient extracts or accessing the data source. You are 100% correct that creating an extract which filters out unnecessary columns is the best approach. Tableau will only read and query the data, so indices won't much of a concern unless the database itself is writing a table for these records.
          3. Know when to leverage an extract and when to use the live connection. Each type of connection has its advantages which are outlined in the following Whitepaper:

                    https://www.tableau.com/learn/whitepapers/memory-or-live-data

               Seriously, the above is a good read.

           

          Overall, as long as you have a well-built, normalized database which has quick connection then you will be fine. Each subsequent report written in Tableau should be considered by each use case in order to find the best balance of performance and data freshness.

          2 of 2 people found this helpful
          • 2. Re: Design Patterns for Tableau Optimization
            rohan.dalvi

            Apologies for my very delayed reply, Adam. This was very helpful information to have.

             

            Thank you!

            • 3. Re: Design Patterns for Tableau Optimization
              adam.freeman.2

              No worries, my friend. I hope the information was useful.