Edit: Since the below post was first written, back in 2013, Tableau has significantly evolved. Tableau have a page dedicated to showing the order of operations, which is more useful and up to date than the post below.
I was browsing the Tableau forums recently and stumbled across this mammoth post which began out with a complex request of how to count distinct users over a running time period and generated into a lot of detail about the internal workings of Tableau. It’s one of the most useful threads I’ve read, hence I felt I needed to copy the information about the order of events/operations within Tableau and put it here.
Massive thanks to 2 world renowned Tableau experts, Joe Mako and Jonathan Drummey, who put this together.
- Tableau generates the SQL query/ies (typically one per datasource) and packs as much of the calculation, filtering, & computation as it can into them.
- Inside Tableau, filters on aggregate calcs are applied.
- Densification happens. Densification depends on pill type, pill arrangement, whether domain padding is being requested via Show Missing Values, compute using settings of table calcs, mark types, data structure/density, etc.
- Data blending occurs.
- Compute blended aggregates – These are aggregate calcs in one data source that use fields from the other data source.
- Filters on blended aggregates are applied.
- Compute table calcs.
- Compute grand totals & subtotals.
- Compute total-based reference lines on regular aggregates, and percentile distribution reference lines for regular aggs and table calcs.
- Apply filters on table calcs.
- Filter latitude (generated) and longitude (generated).
- Manually hide marks.
- Compute all other reference lines.
- Pages Shelf.
- Compute Tooltips, Title, Annotations.