Buffer
QVD-Dateien können mit Hilfe des buffer-Zusatzes im Skript automatisch generiert werden. Dieser Zusatz kann zusammen mit den meisten LOAD- und SELECT-Befehlen verwendet werden. Er dient dazu, die eingelesenen Daten in einer QVD-Datei zu cachen bzw. zu buffern.
Syntax:
Buffer [(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
Ist keine Option definiert, wird die bei der ersten Skriptausführung generierte QVD-Datei auf unbestimmte Zeit weiterverwendet.
Die Pufferdatei ist im Unterordner Buffers gespeichert, in der Regel unter C:\ProgramData\Qlik\Sense\Engine\Buffers (Serverinstallation) oder C:\Users\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop).
Der Name der QVD-Datei ist ein generierter Name, ein hexadezimaler 160 bit-String, der den nachfolgenden LOAD- oder SELECT-Befehl und andere Informationen in abgekürzter Form enthält. Wird der nachfolgende QVD- oder LOAD-Befehl verändert, wird der SELECT-Puffer ungültig.
Normalerweise löscht das Programm automatisch QVD-Buffer, auf die während der Ausführung des Skripts nicht mehr zugegriffen wird. Auch beim Löschen der App werden die QVD-Buffer automatisch mitgelöscht.
Argumente:
Argument | Beschreibung |
---|---|
incremental |
Durch die Option incremental wird nur ein Teil der Daten aus der Originaldatenquelle gelesen. Die bisherige Größe der Quelldatei ist im XML-Header der QVD-Datei gespeichert. Dies ist insbesondere für log-Dateien nützlich. Alle bereits in der QVD-Datei vorhandenen Datensätze werden von dort eingelesen, alle neuen Datensätze aus der Originaldatenquelle. Am Ende dieses Vorgangs wird eine aktualisierte Version in der QVD-Datei gespeichert. Die Option incremental kann nur mit LOAD-Befehlen und Textdateien verwendet werden. Inkrementelles Laden kann nicht verwendet werden, wenn alte Daten geändert oder gelöscht werden. |
stale [after] amount [(days | hours)] |
amount ist eine Zahl, die den Zeitraum definiert. Es dürfen Dezimalzahlen verwendet werden. Ist keine Einheit angegeben, nimmt das Programm Tage an. Die Option stale after ist für Datenbanken vorgesehen, deren Originaldaten keinen Zeitstempel enthalten. Stattdessen definiert man, wie alt die QVD-Datei maximal sein darf, um anstelle der Originaldatenquelle eingelesen zu werden. Eine Bedingung stale after gibt einfach einen Zeitraum für das Erstellungsdatum des QVD-Buffers an. Danach ist er nicht mehr gültig. Vor dem Zeitrahmen wird der QVD-Buffer als Quelle für Daten verwendet, und danach gilt die ursprüngliche Datenquelle. In diesem Fall wird eine aktualisierte Version der QVD-Datei gespeichert, und die Zeitspanne beginnt von Neuem. |
Beschränkungen:
Im Gebrauch des buffer-Zusatzes bestehen einige Einschränkungen. Die wichtigste besteht darin, dass der Zusatz nur für LOAD- oder SELECT-Befehle benutzt werden darf, die Daten aus einer Datei lesen.
Beispiel 1:
Beispiel 2:
Beispiel 3: