Qlik Community

QlikView Documents

Documents for QlikView related information.

QVD (QlikView Data File)

Not applicable

QVD (QlikView Data File)

What Is a QVD file?

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.

QVD is a data file of qlikview. as qvw file contain application and data on the other hand qvd saves data in binary format. you can't do incremental load on qvw file so for that qvd file comes into play..

you can append fresh data to the previous qvd file using store <table name> into <filename.qvd(qvd)> and concatenate with the existing qvd. you can aply where condition in select statement which is your constraint for the history...and you can automate the loading using batch file..


QVD : Stands for Qlikview Data (One of the optimize layer of data which has been fetched from the database, qvd is a patent technology of qliktech and qlikview applications reads data 100 time faster as compared to any other sources because data get stores in optimized format. Only Qlikvew application can read the data from QVD. Its always better to fetch the data from from database first and then load the data into your application)


QVD: Qvd is Qlikview Data file. it contains qlikview readable data. data extraction from qvd is very fast as compare to other sources that is why we try to save our data in qvd format


A QVD file consists of three parts:

  • XML header to describe the fields in the table, the layout of the subsequent information and other meta-data.
  • Symbol tables in a byte stuffed format.
  • Actual table data in a bit-stuffed format.

Advantages of using QVDs:

QVD files offer many advantages to your QlikView applications, including the following:

  • Faster load time: Reading data from QVD is 10-100 times faster than other sources i.e. decreasing load time. It is because QVD creation uses the same algorithms as QlikView uses to store data in memory, the result of that Loading from QVD is faster, when compared to other formats.
  • Less load on databases and networks: Once data is exported in QVDs, you don’t need to connect with external database again. It reduces the workload on external databases and network. Furthermore, when several QlikView scripts share the same data, it is only necessary to load it once from the source database. The other applications can also make use of the same data via a QVD file.
  • Incremental loads of QVDs: Incremental load (loading only new/ modified detail of a database) can be done only by using QVDs. It reduces the load time significantly as compared to complete load.
  • Consolidating data from multiple data sources and databases: Multi-layer QVDs are used to create a with robust model, when data is fetched from multiple data sources.

How to create a QVD?

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.

qlikview_qvd_store

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)

How to load data from QVD?

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) >;

qlikview_qvd_load

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.

End Notes:

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.

Comments
cheenu_janakira
Contributor

Hi Yogesh,

If you read other posts, you will find that the XML header contains a lot of juicy information that can be used by loading a QVD as an "XML" format.

One thing I don't seem to have read in your post is the QVD compression ratio. Since Qlik is an in-memory BI tool, the issue of data compression is very important. Qlik claims that QVDs are 10x more compressed than other data store ratios. I have seen up to 16x compression, so their estimate is relatively conservative.

If you want a QVD info reader/gatherer (read a drive or folder), I created 2 (for View and Sense) which gives me the basic info as well as shared field names across tables/QVDs. Please use these if interested. All you need to do is change where the variable is pointing to and point to your new drive or folder and reload the file (cautious with loading from a drive, if you have the Recycle Bin full of QVDs, it might error out, you can deal with this by adding a 'set ErrorMode = 0' if you want).

View version: Automatically gather information on all QVDs under a root-drive or -folder

Sense version: Automatically gather information on all QVDs under a root-drive or -folder (QVF).

Hope it helps.

C  ;o)

pauljohansson
Contributor II

hej

"One thing I don't seem to have read in your post is the QVD compression ratio"


No, Qlik say that the .qvw file is compressed.


br

Paul

cheenu_janakira
Contributor

Hej Paul,

I think there is a mix between a misunderstanding of the context of the paragraph you quote the sentence from and maybe the need for a more elaborate explanation.

QVW files 'internally store' the data in the QVD format. Naturally, these can be externally stored too as independent files which are QVDs via "store" in the script. I think the confusion is between the reload times (Qlik claims are 10-100x faster) and the QVD file size themselves in comparison to other stored file formats on disk (my  mention of "Qlik claims that QVDs are 10x more compressed than other data store ratios.[...]").

Since I was mentioning that file size for in-memory BI is a "concern", I think there is a mismatch between what I wrote and what you think I am referring to.

I am mentioning QVDs specifically in this post, and they are at a ratio of 10:1 according to Qlik's claims and I have seen them to be higher (i.e. Qlik's claim is 'conservative').

I hope this clarifies your concern.

Ty,

Cheenu

Version history
Revision #:
1 of 1
Last update:
‎11-02-2016 06:52 AM
Updated by: