2 Replies Latest reply on Sep 14, 2017 11:43 AM by Brandyn Moody

    Tableau desktop and PostGreSQL


      Hi all, my concern is PostGreSQL is installed on tableau server , not on tableau desktop.

      So without PostGreSQL, tableau desktop creates extracts(in columnar format) and use it.

      Am I right here?

      then why we need PostGreSQL?



        • 1. Re: Tableau desktop and PostGreSQL
          Chris McClellan

          Postgres is used by Tableau Server, but the best advice might be to forget that Postgres exists at all.


          It really has no impact on how you design dashboards and use Desktop, and you don't have to create extracts to use data - you can connect directly to Excel, Google Sheets, Oracle, SQL Server etc - no need for an extract at all.


          When you publish, Tableau will write to it's Postgres database internally, but there's a lot of people use Tableau Server every day and not realise that.

          • 2. Re: Tableau desktop and PostGreSQL
            Brandyn Moody

            Hello Rohtash,


            I completely agree with the info Chris posted, but wanted to add some background information.


            The PostGreSQL database that is part of Tableau Server is not there to serve as a place to store workbook data sets.  in fact, there is no circumstance where the data used to render a workbook is stored in the Repository (the Tableau Server name for its internal PostGreSQL database).


            The Repository is used as a storehouse for information needed to do the behind-the-scenes work of storing, permissioning, and rendering workbooks.  If you change the permissions on a workbook, that permission information is stored in the Repository.  If you create a custom view, instructions on how to recreate that custom view are held in the Repository.  Adding new user to Tableau Server?  You are actually adding lines to a 'Users' table held in the Repository.  The only way extracts show up in the Repository is the link that the Repository saves, telling it where to find the extract file when it is needed.


            So the Repository holds information about Tableau Server itself, not data to be used when rendering views.



            One interesting thing.  The trick that Tableau Desktop does, creating columnar format data extracts, Tableau Server does the exact same trick.  But it is the Data Engine and Backgrounder processes that handle this functionality, and they store the extracted data as files in the Windows file structure, not in the PostGreSQL database.  But that is only one option for sourcing data.  Like Chris said, Tableau Server can also directly query an external database in order to render a workbook.  In that case, TabProtoServ will do the querying, and Cache Server will temporarily cache the query response on the Tableau Server hardware (typically in RAM).  No extract is created.


            Another interesting fact, you can connect to the PostGreSQL database that is part of Tableau Server from Tableau Desktop, as if it were an independent database.  You would fist need to enable external access to the Repository, but after you do that you can treat the Repository like any other PostGreSQL database.  You can use this to discover information about Tableau Server usage and trends, and see average load times and user activity.


            Please keep in mind that the Repository is an extremely active and important part of Tableau Server, so placing large amounts of load on this database will have really drastic effects on Tableau Server performance, up to and including a complete service failure.  So please be VERY careful when querying the Repository.


            Hope this helps!