With the recent release of Tableau Desktop 2020.2 came the introduction of a brand-new data model. In versions prior to 2020.2, users would define joins and unions between physical tables in which Tableau would create a singular, flat table for analysis. Beginning with Tableau Desktop 2020.2, Tableau introduces relationships and splits tables into logical and physical layers. This new paradigm allows Tableau to maintain various levels of granularity across different tables while simultaneously minimizing data extract size due to efficiency. How, you may ask?
Logical vs. Physical Data Sources
To delve deeper into Tableau’s new data model, we need to understand the difference between Logical and Physical tables. By default, when you drop tables into the data source canvas in Tableau Desktop, you are working in the logical layer and can define relationships between logical tables. If you double-click into a logical table, you dive deeper into the physical layer and can define joins and unions. The following diagram illustrates these new layers within a single data source beginning with Tableau Desktop 2020.2:
A logical table can contain one or more physical tables. In the case where a logical table contains more than one physical table, these tables are first joined and/or unioned before relating to other logical tables. In the diagram above, Logical Table A and its underlying physical tables result in a single, flat table with a specific level of granularity. Logical Table B also has a specific level of granularity. Because Tableau does not combine logical tables into a single, flat table and instead keeps logical tables separate (in addition to having logical relationships defined), we are able to minimize data extract size by dividing the extract into different logical tables/groupings instead.
Gone are the days when you would need to store item descriptions every time an item sells in your Tableau data extract. You would simply define a logical item table with a plethora of item dimensions and relate it to your logical sales table through a field such as item_number. Tableau queries data in their natural level of detail, thus preserving granularity and functionality.
Having worked with Tableau since its infancy, I can say that Tableau’s new data model is a natural progression towards product maturity. We live in a world surrounded by data that is growing at exponential rates. We should be deliberate in how we store this data for efficiency and performance. However, efficiency and performance should not come at the cost of usability. With the release of Tableau Desktop 2020.2, Tableau has managed to improve not only efficiency and performance but usability as well!
If you are well-versed in data modeling and design, Tableau’s new data model lends itself well to concepts of data normalization and Star/Snowflake schemas. Personally, I am excited to see what additional features Tableau brings forward to an already stacked product lineup!