Buffer

QVD-bestanden kunnen automatisch worden gemaakt en beheerd met behulp van het prefix buffer. Deze 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.

Syntax:  

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.

QVD-buffers worden standaard opgeslagen in C:\ProgramData\QlikTech\QlikView\Buffers.

Een QVD-buffer wordt normaal gesproken verwijderd als er tijdens de volledige uitvoering van het script in het document waarvoor de buffer werd gemaakt, niet langer naar wordt verwezen of als het document waarvoor de buffer werd gemaakt, niet meer bestaat.

Arguments:  

Argument Beschrijving
incremental 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. Let op! De optie incremental kan alleen worden gebruikt met LOAD-opdrachten en tekstbestanden, en incremental load 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 gebruikte QVD-momentopname 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.

Limitations:  

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.

Example 1:  

Buffer SELECT * from MyTable;

Example 2:  

Buffer (stale after 7 days) SELECT * from MyTable;

Example 3:  

Buffer (incremental) LOAD * from MyLog.log;