I have worked on a qlikview design model where I have three different layers as mentioned before in all the QlikView solutions.
I have listed out the benefits as I can think. I appreciate if anyone add more to it.
QVD Layer(Extract Layer):
- This layer can be straight data dump from the DW
- The QVD Layer (which I tend to call the Extract layer) should be exactly the same as the data source. No transformation. Tracking back sums through each layer is easier.
- Matching the Extract with data source and Match the Model with the Extract is easy where a data issue may occur.
Data Model Layer:
- The difference is the Model is ready for a binary load to the UI / Dashboard where as a transform would create a new columns with all the calcs / renames / joins / mapping / etc.
- Most of the transformations can be done here reducing the effort on QVW layer
- Most of the complex calculations can be done here reducing the effort on the Chart/Tabular engines
- One Data Model can be used by multiple Dashboards hence reducing the effort in creating individual Data Models for different dashboards
- Benefit of the transform over a model is that multiple dashboards can mix and match and re-use the same QVD's (this is also the same as the extract layer, no point going to the same data source twice)
- Easy to maintain the changes. Requires less time in implementing the changes that effect multiple dashboards.
- When working in team or group scenarios, this type of division allows different layers of the application to be worked on simultaneously and independently of each other
- This is final presentation layer
- Better to push complex calculations to the Data Model Layer.