In June 2013, I had been using QlikView for about a year. During those days, I was working on a QlikView project where I had to show the sales number across various channels for various periods (e.g. Daily, Monthly, Yearly) and in comparison with last year.
I had two transactional tables, three mapping tables (available in Excel). I had completed this project successfully within a defined timeline. However, there were 2 problems with the model I used:
This is when using a QVD (QlikView Data) file made a lot of difference. You can think of these QVD files as a middle layer, so that your front-end queries do not run on the databases directly. Creation of these QVDs can be done during off-peak hours (Less network and database load). QVDs are also essential to load only the incremental data (i.e. Additional or modified records).
QVD is a QlikView format and can only be written to and read by QlikView. A single QVD file can store a single table and is created in the load script in a QVW file.
A QVD file consists of three parts:
QVD files offer many advantages to your QlikView applications, including the following:
QVDs are most commonly created during the execution of QlikView load script using the STORE command:
Syntax: STORE <TableName> INTO <Path\FileName.qvd>
It is a good practice to have separate application to create QVD files. This layer is used to handle all interaction with source databases. And the result of this interaction can be reloaded quickly from QVD files.
Incremental loads: As mentioned before, Incremental loads are defined as loading only new or updated records from the database into an established QVD. Incremental loads are useful because they run much faster than full loads, particularly for large data sets from databases. (Will discuss it in detail in the next article)
To read data from QVD, we need to write a LOAD statement (similar to the command to load CSV or excel file).
Syntax:
TableName: LOAD FieldList FROM <Path\FileName.qvd (qvd) >;
QVD files can be read in two modes, standard (fast) and super-fast. The selected mode is determined automatically by the QlikView script engine. Super-fast mode can be utilized only when all fields or a subset of it are required to be read without any manipulation (e.g. formula based field generation), although the renaming of fields is allowed.
Managing QVDs is one of most important part in any QlikView application project. It can be used to provide a logical data layer and hence it can act as a data warehouse in absence of one (one of the big benefits of Qlikview in comparison to other BI tools in the market).
Creating QVDs helps to decrease the database and network load. Once a base QVD is generated, an incremental load script can be run to load only the new or modified records to the QVD. Incremental load also removes the deleted records. As a result of this, your application consumes less space and requires less load time.
If you have used QVDs in past to create multi-level data models or plan to use one in your application now, please feel free to share your experience with me through the comments below.
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
Nice article Sunil :) !
hi , very helpful info thnx for sharing
Its very useful.Thanks a lot Sunil
I constantly spent my half an hour to read this webpage's content daily along with a cup of coffee.
Very Good Article.Thanks for sharing!!
Good Article.Thanks Sunil.