Buffer

È possibile creare e gestire automaticamente i file QVD mediante il prefisso buffer. Questo prefisso può essere utilizzato in quasi tutte le istruzioni LOAD e SELECT di uno script e indica che i file QVD vengono utilizzati per memorizzare nella cache/nel buffer il risultato dell'istruzione.

Syntax:  

Buffer [(option [ , option])] ( loadstatement | selectstatement )

option::= incremental | stale [after] amount [(days | hours)]

 

Se nessuna opzione viene utilizzata, il buffer QVD creato alla prima esecuzione dello script verrà utilizzato indefinitamente.

Il file del buffer viene salvato nella sottocartella Buffers solitamente in C:\ProgramData\Qlik\Sense\Engine\Buffers (installazione sul server) o C:\Utenti\{user}\Documenti\Qlik\Sense\Buffers (Qlik Sense Desktop).

Il nome del file QVD è un nome calcolato, un hash esadecimale a 160 bit di tutta l’istruzione LOAD o SELECT successiva e delle altre informazioni discriminanti. Questo significa che il buffer QVD verrà invalidato da qualsiasi modifica apportata all’istruzione LOAD o SELECT seguente.

I buffer QVD vengono normalmente rimossi quando non esistono più riferimenti a essi durante l'intera esecuzione di uno script nell'app che li ha creati oppure quando l'app che li ha creati non esiste più.

Arguments:  

Argomento Descrizione
incremental L'opzione incremental consente di leggere solo parte di un file sottostante. La dimensione precedente del file viene salvata nell'intestazione XML del file QVD. Queste informazioni risultano particolarmente utili con i file di registro. Tutti i record caricati nell'occasione precedente vengono letti dal file QVD, mentre i nuovi record seguenti vengono letti dalla sorgente originale, quindi viene creato un file QVD aggiornato. È bene ricordare che l'opzione incremental può essere utilizzata solo con istruzioni LOAD e con file di testo e che non è possibile utilizzare il carico incrementale quando sono stati modificati o eliminati dati precedenti.
stale [after] amount [(days | hours)] amount è un numero che specifica l'intervallo di tempo. Possono essere utilizzati valori decimali. Se omessa, verrà utilizzata l'unità di misura giorni.

In genere, l'opzione stale after viene utilizzata con sorgenti DB i cui dati originali non dispongono di alcun indicatore temporale semplice. In alternativa, è possibile specificare per quanto tempo conservare lo snapshot QVD. Una clausola stale after dichiara semplicemente l'intervallo di tempo a partire dalla creazione del buffer QVD, trascorso il quale non verrà più considerato valido. Prima di quel tempo, il buffer QVD verrà utilizzato come sorgente dei dati e, trascorso l'intervallo specificato, verrà utilizzata la sorgente dati iniziale. Il file del buffer QVD verrà aggiornato automaticamente, quindi avrà inizio un nuovo intervallo.

Limitations:  

Esistono numerose limitazioni, la più importante delle quali stabilisce che dovrà esistere necessariamente un'istruzione LOAD o SELECT per file alla base di qualsiasi istruzione complessa.

Example 1:  

Buffer SELECT * from MyTable;

Example 2:  

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

Example 3:  

Buffer (incremental) LOAD * from MyLog.log;