Using Tableau’s database to build your own Tableau Server usage reports

Out of the box Tableau supplies a number of tools to monitor what is happening on the server. Often these aren’t adequate to get a good view into what’s happening on your server hence you might want to create your own custom admin views. Tableau have allowed, unsupported, querying of the underlying postgres database to create views but until recently there was very little documentation available to help, plus all of the usual ‘do so at your own risk’ warnings. Now things are beginning to change and there are many good sources of information about this database, incluing Tableau themselves now providing a lot of information about their database schema. Andre Pandre wrote up the following very useful post about the underlying Tableau postgres database, essentially bringing all the vital information into one place.

The Tableau postgres database can supply information on the actual server performance as well as what users are doing on the server. My approach to this is from a report usage perspective as, since I look after report development, that’s how my work is judged hence this post is about tracking what the users are doing.

To get started you need your Tableau desktop to be able to connect to the Tableau postgres database, which means installing the postgres driver.

To connect to the underlying Tableau database you need permission, which means sweet talking your Tableau Server administrator, if you’re not an admin yourself, to get access. Once you’re allowed you to connect fire up Tableau and connect to the database. This is what I had to enter to connect to my server, although no guarantee this will also work for your server:

Tableau PostgresSQL connection

As mentioned earlier my interest is from a report usage perspective and to get all of the data I need to supply my quick view of what my users are doing I connect to the following tables:

Tableau Postgres tables

NOTE: if you’re interested in monitoring things such as server performance connecting to these tables won’t really help you. Use the data dictionary Tableau now provide.

Next step is to create your report. This is for your usage so create whatever works for you. My version, although unsexy, does what I need it to do, showing me who’s using what, when they’re using it and how often they check it, is here:

My Tableau Server usage report

2015-01-03T19:37:33+00:00 January 3rd, 2015|Tableau, Tableau Server|


  1. Damien Lesage 2015-01-03 at 23:06 - Reply


    This is a nice introduction.

    For general use case, you should always use a left join between historical_events and the other hist_* tables.

    In your case this is working because you only want to monitor accesses to workbooks and views. However, these tables provides other information where an inner join won’t work (for example, user login).

  2. Dinesh 2015-06-24 at 07:18 - Reply

    Hello, i would like to know the workbook design. if you can share us the copy of the workbook/screenshots of how it is setup, it will be easy to replicate. I am working on a similar task to track user activity.Thanks for your assistance.

    • awatson 2015-06-30 at 15:12 - Reply

      I can’t share the workbook, it’s the property of my client. You’re welcome to send me a packaged workbook with the data pulled in as the post states.

  3. Paul Auen 2015-12-23 at 12:48 - Reply

    Hello, I’m late to the party, but I have the need to create these types of reports but are using Tableau Online. Do you have any advice for getting access to the appropriate data structures?

    • awatson 2015-12-29 at 13:48 - Reply

      Hi Paul, I’m not aware this information is available for Tableau Online, although I can see how it would be useful. If you find it is available please add another comment to this post, I expect many readers would also be interested in this.

  4. Robert 2018-02-05 at 17:23 - Reply

    Are you still responding to requests for assistance if I send you a packaged workbook?
    I’m having some issues trying to connect the specifics. I have a user who has asked for a dashboard so that they can see who, when and how often their dashboards are accessed.

    Thanks in advance.

    • Andrew Watson 2018-02-05 at 21:09 - Reply

      Sure, send it over, I can’t guarantee I can look immediately as paying clients obviously take priority. Hopefully it’ll a quick and easy one in which case I should be able to get it back to you in good time.

  5. […] -s = tells tabcmd which Tableau Server to use. This doesn’t need to be the “https://TableauSite” URL, it is better as the server name as entered to the Tableau Postgres database […]

Leave A Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.