Buffer

Il est possible de créer et de gérer automatiquement des fichiers QVD à l'aide du préfixe buffer. Ce préfixe peut être utilisé dans la plupart des instructions LOAD et SELECT du script. Il indique que des fichiers QVD sont utilisés pour mettre en cache/mémoire tampon le résultat de l'instruction.

Syntax:  

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

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

 

Si aucune option n'est utilisée, le tampon (buffer) QVD créé par la première exécution du script est utilisé indéfiniment.

Le fichier de tampon est stocké dans le sous-dossier Buffers, généralement installé sous C:\ProgramData\Qlik\Sense\Engine\Buffers (installation serveur) ou C:\Utilisateurs\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop).

Le nom du fichier QVD est un nom calculé, hachage hexadécimal de 160 bits de toute l'instruction LOAD ou SELECT qui suit et d'autres informations discriminantes. Autrement dit, cela signifie que le tampon QVD ne sera plus valide si l'instruction LOAD ou SELECT qui suit est modifiée.

Les tampons QVD sont normalement supprimés lorsqu'ils ne sont plus référencés nulle part lors d'une exécution de script complète dans l'application qui les a créés ou lorsque l'application qui les a créés n'existe plus.

Arguments:  

Argument Description
incremental L'option incremental permet de ne lire qu'une partie d'un fichier sous-jacent. La taille précédente du fichier est stockée dans l'en-tête XML du fichier QVD. Cette méthode s'avère particulièrement utile dans le cas des fichiers journaux. Tous les enregistrements chargés précédemment sont lus à partir du fichier QVD tandis que les nouveaux enregistrements ultérieurs sont lus à partir de la source d'origine, avant qu'un fichier QVD à jour ne soit créé. Notez toutefois que l'option incremental s'emploie exclusivement avec des instructions LOAD et des fichiers texte, et qu'il est impossible d'utiliser incremental load lorsque d'anciennes données ont été modifiées ou supprimées.
stale [after] amount [(days | hours)] amount est un nombre spécifiant la période. Cet argument admet l'utilisation de décimales. Si l'unité n'est pas précisée, les jours sont utilisés par défaut.

L'option stale after est généralement utilisée avec des sources de base de données qui ne comportent pas d'horodatage simple pour les données d'origine. À la place, vous spécifiez de quand peut dater l'instantané QVD à utiliser. Une clause stale after spécifie simplement une période commençant à la date de création du tampon QVD et après laquelle celui-ci ne sera plus considéré comme valide. Avant l'expiration de ce délai, le tampon QVD est utilisé comme source de données et après ce moment, c'est la source de données d'origine. Le fichier de tampon QVD est alors mis à jour automatiquement et une nouvelle période débute.

Limitations:  

Cette fonction présente de nombreuses limites, la plus notable étant qu'une instruction LOAD de fichier ou une instruction SELECT soit au cœur de toute instruction complexe.

Example 1:  

Buffer SELECT * from MyTable;

Example 2:  

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

Example 3:  

Buffer (incremental) LOAD * from MyLog.log;