Optimizing Tableau Relational Models With Row-Level Security: Filters

Data

Optimizing Tableau Relational Models With Row-Level Security: Filters

In Part two of this series, we covered a method of distillation to reduce data volume and size. However, we need to translate our distilled records into their non-distilled forms. In addition, we’ll cover the concept of global and local filters and how to effectively use each to optimize background queries for Tableau Dashboards.  

Reverse-Distillation & Filters 

Having been left with a distilled security object, we need an object to translate distilled records into their non-distilled forms. In addition, we need to be able to slice all subsequent objects and visualizations into various global lenses for departments. For example, an Order ID can be tagged to multiple departments, such as Finance and Marketing, with each department wanting to know what their coverage is with respect to sales. With this premutation as a requirement, we can create a lookup and global filter table as shown: 

Table of Distilled Order ID, Order ID, and Department

Figure 5: Lookup & Global Filter Table 

Note that we can have as many permutations required from Global Filters in this table. Since User Name is isolated in a separate security object, this table is much smaller compared to its security counterpart. 

Filters & Parameters 

With multiple ways to filter data in Tableau, it’s important to note when and where to use each type. Filtering not only curates visualizations into specific dimensions, it also limits the total amount of data needed to populate various visuals — a Tableau best practice.  

Global Filters 

Global filters would apply to all downstream objects in the data model. Thus, global filters commonly span all dashboards and visualizations contained in a workbook. Global filters also have the largest impact on the total amount of data needed to populate various visuals as shown:

Flow chart from security, to filters, to facts

Figure 6: Secured Data Model with Local & Global Filters 

In the model above, global filters would effect our various fact tables by relating on Order ID. Security would be enforced by relating our SECURITY and GLOBAL_FILTERS object through Distilled Order ID. Since global filters impact 

Parameters 

In cases where filters aren’t global and only apply to certain objects, a parameter can be used to limit data. Parameters also have the benefit of not requiring an explicit relationship between objects. Thus, a parameter could be used to filter FACT_1 and FACT_2 without having to create records in our GLOBAL_FILTERS object.   

Local Filters 

Local filters apply only to the object it’s contained in. Thus, local filters would be constrained to a specific visual and object. Local filters would not span all dashboards and visualizations contained in a workbook. Thus, local filters have limited impact when compared to global filters. 

In Part 4 of our series, we’ll cover Tableau Relationships and visual-specific objects to further optimize our data model. Stay tuned!

More About the Author

Jubail Caballero

Delivery Architect
Optimizing Tableau Relational Models With Row-Level Security: Filters In Part two of this series, we covered a method of distillation to reduce data volume and size. However, we need to translate our ...
Optimizing Tableau Relational Models With Row-Level Security: Performance In a previous installment, we kicked off this blog series by materializing our policy and entitlement table and removing all physical ...

See more from this author →

InterWorks uses cookies to allow us to better understand how the site is used. By continuing to use this site, you consent to this policy. Review Policy OK

×

Interworks GmbH
Ratinger Straße 9
40213 Düsseldorf
Germany
Geschäftsführer: Mel Stephenson

Kontaktaufnahme: markus@interworks.eu
Telefon: +49 (0)211 5408 5301

Amtsgericht Düsseldorf HRB 79752
UstldNr: DE 313 353 072

×

Love our blog? You should see our emails. Sign up for our newsletter!