Buffer
QVD-bestanden kunnen automatisch worden gemaakt en beheerd met behulp van het prefix buffer. Dit prefix kan worden gebruikt bij de meeste LOAD- en SELECT-opdrachten in een script. Hiermee wordt aangegeven dat QVD-bestanden worden gebruikt als cache/buffer om het resultaat van de opdracht op te slaan.
Syntaxis:
Buffer [(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
Als deze opties niet zijn gedefinieerd, wordt de QVD-buffer die bij de eerste uitvoering van het script werd gemaakt, voor onbepaalde tijd gebruikt.
Het bufferbestand wordt opgeslagen in de submap Buffers, normaliter C:\ProgramData\Qlik\Sense\Engine\Buffers (serverinstallatie) of C:\Gebruikers\{user}\Mijn Documenten\Qlik\Sense\Buffers (Qlik Sense Desktop).
De naam van het QVD-bestand is een berekende naam, een 160-bits hexadecimale hash van de gehele volgende LOAD of SELECT-opdracht en andere onderscheidende informatie. Dit betekent dat de QVD-buffer ongeldig wordt door een wijziging in de volgende LOAD- of SELECT-opdracht.
Een QVD-buffer wordt normaal gesproken verwijderd als er tijdens de volledige uitvoering van het script in de app waarvoor de buffer werd gemaakt, niet langer naar wordt verwezen of als de app waarvoor de buffer werd gemaakt, niet meer bestaat.
Argumenten:
Argument | Beschrijving |
---|---|
incrementeel |
Met de optie incremental wordt aangegeven dat alleen een gedeelte van een onderliggend bestand hoeft te worden gelezen. De vorige grootte van het bestand wordt opgeslagen in de XML-header van het QVD-bestand. Dit is vooral nuttig bij logbestanden. Alle records die eerder zijn geladen, worden gelezen uit het QVD-bestand. Nieuwe bestanden worden gelezen uit de originele bron en vervolgens wordt een bijgewerkt QVD-bestand gemaakt. De optie incremental kan alleen worden gebruikt met LOAD-opdrachten en tekstbestanden. Incrementeel laden kan niet worden gebruikt als oude gegevens zijn gewijzigd of verwijderd. |
stale [after] amount [(days | hours)] |
amount is een getal dat de tijdsperiode aangeeft. Het gebruik van decimalen is toegestaan. Als er geen eenheid is aangegeven, wordt verondersteld dat het om dagen gaat. De optie stale after wordt meestal gebruikt voor DB-bronnen waarbij de gegevens niet zijn voorzien van een tijdsstempel. In plaats daarvan geeft men aan hoe oud een gebruikt QVD-snapshot mag zijn. Een stale after-clausule geeft een tijdsperiode aan. Als de QVD-buffer ouder is dan deze periode, wordt de buffer niet meer als geldig beschouwd. Voor deze tijd wordt de QVD-buffer gebruikt als gegevensbron, daarna wordt de oorspronkelijke gegevensbron gebruikt. Het QVD-bufferbestand wordt dan automatisch bijgewerkt en er begint een nieuwe periode. |
Beperkingen:
Er zijn talloze beperkingen. De belangrijkste is dat er een LOAD- of een SELECT-opdracht voor een bestand moet voorkomen in de "basis" van een complexe opdracht.
Voorbeeld 1:
Voorbeeld 2:
Voorbeeld 3: