Um eine performante Ladekette für eine Qlik-Applikationen zu erhalten, kann das Augenmerk gleich an den Anfang gelegt werden: An die Anbindung der Daten und das Einlesen nach Qlik. Daten werden generell am schnellsten aus QVDs geladen, dem Qlik-eigenen Datenformat. Hier wird zwischen zwei Lademodi unterschieden, die Qlik jeweils automatisch verwendet: dem Standard Load und dem Optimized Load.

Qlik kann QVDs optimiert laden, wenn keine Umformungen oder Einschränkungen während des Ladevorgangs an den Daten vorgenommen werden. Ausnahmen dazu sind das Umbenennen von Feldern mittels AS und die „where exists“-Bedingung. Die einfache where-Bedingung im Ladestatement führt dazu, dass Qlik wieder im Standard-Modus lädt.

Wenn beispielsweise die Daten des aktuellen Jahres geladen werden sollen, würde

Daten:
Load
*
From Data.qvd
where Year = 2021;

nur die Standard-Ladegeschwindigkeit erreichen. Wohingegen das Laden der entsprechenden Jahreszahl in eine Hilfstabelle und die Abfrage mit „where exists“ einen „optimized load“ ermöglicht und das folgende Skript wesentlich schneller lädt:

Einschränkung_tmp:
Load * Inline [
Year
2021
];

Daten:
Load *
From Daten.qvd
where exists (Year);

Drop Table Einschränkung_tmp;

Bei einer notwendigen Umformung oder Berechnung von Daten während des Ladens sollte der Ladevorgang in zwei Stufen aufgeteilt werden. Statt einem

Daten:
Load
Netto_Sales * 1.19 as Brutto_Sales
From Data.qvd;

Ladestatement, welches lediglich in Standard-Geschwindigkeit eingelesen werden kann, sollte in solchen Fällen auf einen optimierten Ladevorgang gesetzt und anschließend die Umformung in einem Resident-Load durchgeführt werden:

Basisload:
Load
Netto_Sales
From Data.qvd;

NoConcatenate
Daten:
Load
Netto_Sales * 1.19 as Brutto_Sales
Resident Basisload;

Drop Table Basisload;

Obwohl die Tabelle in diesem Fall zweimal geladen wird, ist dieser Ausdruck besonders bei großen Datenmengen viel performanter als das vorherige Ladestatement.

Um das optimierte Laden von Qlik bestmöglich auszunutzen, empfiehlt es sich, QVD-Generatoren vorneweg einzubauen, die die Quelldaten abziehen und als QVD speichern. Diese QVDs kann das spätere Qlik-Skript schneller einlesen mit Hilfe des optimized load.

Sobald mehrere unterschiedliche Quellen oder unterschiedliche Tabellen aus einer Quelle abgezogen werden, können die Ladeskripte dafür in verschiedene, voneinander unabhängige QVD-Generatoren geschrieben werden. Diese QVD-Generatoren können dann gleichzeitig laufen und die Daten schnell als QVDs bereitstellen.

Über die Autorin

Daniela Pohl berät und betreut als Senior Consultant Kunden im Bereich Reporting und Analytics. Ihr Schwerpunkt liegt dabei auf den Themen Frontendentwicklung und Konzeption.

Daniela Pohl gehört zum Team Reporting & Analytics.