I am working with Qlik Sense Enterprise to implement a multi-tenanted application for up to 600 customers. Our source of data are conformed data marts, and data for each customer is segregated based on Tenant ID. We have reviewed the various options for multi-tenancy in Qlik Sense (see below) and have decided on option 2.
1. Load all data into an app and use Section Access to manage access to the correct rows and columns.
2. Create a template of the application. For each tenant, host a copy of the application with their specific data. Use Section Access to control data access at the user level if required.
So far we have developed an extract .QVD layer (.QVD) for one conformed data mart (holds approximately 200 customers) that:
1. Creates extract .QVDs using metadata saved in an SQL database
2. Creates one .QVD file for each dimension and fact table 3. Can execute either incremental and full load extracts
At this point in time, we only have one customer in the data mart, with around 25 millions records for the largest fact table. As we on-board more customers that data mart will grow considerably and the size of the dim and fact extract .QVDs will also grow.
Our customers might also want to implement different frequencies of reloads, e.g. daily, weekly, etc.
With all this in mind, I am now considering implementing extract .QVDs for each customer? Is this the best approach?
If so, would the recommended approach be:
1. Utilize one Extract QVD Generator.qvf and pass the tenant ID into the SQL query as a variable on the where clause to return the record set for a specific tenant. Would I then save the QVD into the appropriate Extract\[Tenant Code] folder? Or
2. Would I create a separate Extract QVD Generator.qvf for each customer? And, can this be implemented dynamically?
hic I would be very interested in your thoughts and recommended approach.