Buffer
QVD-filer kan skapas och underhållas automatiskt via prefixet buffer. Detta prefix kan användas på de flesta LOAD- och SELECT-satser i skript. Det anger att en QVD-fil används för att cacha/buffra satsens resultat.
Syntax:
Buffer [(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
Om inget alternativ används så används den QVD-buffert som skapades när skriptet kördes första gången på obegränsad tid.
Buffertfilen sparas i delmappen Buffers, normalt C:\ProgramData\Qlik\Sense\Engine\Buffers (serverinstallation) eller C:\Users\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop).
QVD-filens namn är ett uträknat namn (ett 160-bitars hexadecimalt hash-värde av hela den efterföljande LOAD- eller SELECT-satsen samt annan särskiljande information). Detta innebär att QVD-bufferten blir ogiltig om ändringar görs i den efterföljande LOAD- eller SELECT-satsen.
Normalt avlägsnas QVD-buffertar när de inte längre blir refererade under en fullständig skriptexekvering i den app som skapade dem. De avlägsnas även när den app som skapade dem inte längre finns.
Argument:
Argument | Beskrivning |
---|---|
inkrementell |
Med alternativet incremental öppnas möjligheten att enbart läsa in delar av den underliggande filen. Filens tidigare storlek lagras i XML-huvudet i QVD-filen. Detta är särskilt användbart för loggfiler. Alla tidigare inlästa poster läses in från QVD-filen medan nyare poster läses in från originalkällan och en uppdaterad QVD-fil skapas. Alternativet incremental kan bara användas med LOAD-satser och textfiler. Inkrementell laddning kan inte användas där gamla data ändras eller raderas. |
gammal [efter] belopp [(dagar | timmar)] |
amount är ett tal som anger tidsperioden. Decimaler får användas. Om ingen enhet anges förutsätts dagar. Alternativet stale after används oftast med databaskällor vars originaldata är svåra att förse med en tidsmarkör. Istället anger man hur gammal en QVD-minnesdump kan vara för att få användas. En stale after-sats anger helt enkelt en tidsperiod efter att QVD-bufferten skapades, efter vilken den inte längre kommer att anses vara giltig. Dessförinnan används QVD-bufferten som källa för data och därefter används den ursprungliga datakällan. Därefter uppdateras QVD-buffertfilen automatiskt och en ny period påbörjas. |
Begränsningar:
Det finns flera begränsningar, den mest anmärkningsvärda är att det måste finnas antingen en fil-LOAD- eller en SELECT-sats i basen för alla komplexa satser.
Exempel 1:
Exempel 2:
Exempel 3: