Was ist eine QVD-Datei?

QVD-Dateien (QlikView Data) enthalten Datentabellen, die aus Qlik exportiert werden. QVD ist ein Qlik-spezifisches Dateiformat, es kann nur aus Qlikheraus generiert und nur von QlikView eingelesen werden. QVD-Dateien sind für besonders schnelles Laden des Qlik-Skripts optimiert, aber gleichzeitig sehr kompakt. Das Einlesen von Daten aus QVD-Dateien ist etwa 10-100-mal schneller als das Einlesen aus Datenquellen anderen Typs.

QVD-Dateien können in zwei Modi gelesen werden: Standard (schnell) und optimiert (schneller). Der ausgewählte Modus ergibt sich automatisch aus der QlikView Script Engine. Der optimierte Modus kann nur verwendet werden, wenn alle geladenen Felder oder Teile davon ohne Umformung (Formeln, die an den Feldern aktiv werden) eingelesen werden. Felder dürfen jedoch umbenannt werden. Eine Bedingung für das Einlesen von Datensätzen bewirkt, dass QlikView die Datensätze auspackt und die optimierte Ladung deaktiviert wird. Eine optimierte QVD-Datei wird extrahiert und bei der Ausführung einer Feldumformung gemäß Standard-ETL (Exract-Transform-Load) behandelt. Dadurch kann die Leistung sinken. Das festgelegte Format wird nicht beibehalten und das zu Grunde legende, unformatierte Zahlenformat wird stattdessen verwendet und erkannt. Umformungen des Felds sind in einer QVD-Datei zulässig, die ehemalige „optimierte“ QVD-Datei wird in diesem Fall zu einer Standard-QVD-Datei ohne Optimierung.

Eine QVD-Datei enthält immer genau eine Tabelle und besteht aus drei Teilen:

  1. Ein XML-Header (im UTF-8 Zeichensatz), der Metadaten enthält, z. B. eine Beschreibung der Felder und des Aufbaus der Tabelle.
  1. Symboltabellen (unter Anwendung von Bytestuffing)
  1. Die eigentlichen Tabellendaten, unter Anwendung von Bitstuffing.

 

Wie nutzt man QVD Dateien?

mit dem Befehl Store können Sie eine Tabelle in eine sogenannte QVD Datei speichern. Diese können Sie erneut in Qlik einladen, mit dem Vorteil, dass die Daten bis 150 mal schneller geladen werden.

MeinTabellenname2:
Load A,B;
SQL SELECT A,B,C From Source2;

Store Source2 into Source.qvd (qvd);

 

Somit empfiehlt es sich also auch schon für die Entwicklung mit QVD Dateien zu arbeiten.

MeinTabellenname2:
Load A,B From Source2.qvd;

 

Sie können während der Entwicklung mit dem Befehl Buffer auch lokale QVD erzeugen welche automatisch beim nächsten Reload genutzt werden. 

Ein Beispiel wie Sie alle QVD-Dateien exportieren finden Sie auch in dem Skript exportData.qvs aus meinem Framework.

 

QVD Dateien im Staging Konzept

Hier erfahren Sie mehr zum Staging Konzept (ETL).