Buffer
QVD ファイルは、buffer プレフィックスを使用して、自動的に作成、管理することができます。このプレフィックスは、スクリプトの LOAD ステートメントおよび SELECT ステートメントのほとんどで使用できます。つまり、ステートメントの結果をキャッシュ/バッファする際には、QVD ファイルが使用されます。
Syntax:
Buffer [ ( option [ , option] ) ] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
オプションを使用していない場合、最初のスクリプト実行で作成された QVD バッファが無限に使用されます。
バッファ ファイルは Buffers サブフォルダに保存されます。通常は、C:\ProgramData\Qlik\Sense\Engine\Buffers (サーバー インストール環境) または C:\Users\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop ) となります。
QVD ファイルの名前は計算で求められた名前であり、後続の LOAD または SELECT ステートメントとその他の識別情報の全体の 160 ビットの 16 進ハッシュとなります。つまり、QVD バッファは、後続の LOAD または SELECT ステートメントの変更によって無効になります。
通常、バッファを作成したアプリのスクリプトで一切参照されなくなったり、アプリが存在しなくなると、QVD バッファは削除されます。
Arguments:
incremental
incremental オプションを使用すると、基底ファイルの一部のみを読み取る機能が有効になります。以前のファイル サイズは、QVD ファイルの XML ヘッダーに保存されます。これは、ログ ファイルで特に便利です。過去にロードされたレコードは、すべて QVD ファイルから読み取られますが、以降の新しいレコードについては元のソースから読み取った上で QVD ファイルを更新します。incremental オプションは LOAD ステートメントとテキスト ファイルでのみ使用でき、古いデータが変更されたり削除されている場合、増分ロードは使用できませんのでご注意ください。
stale [after] amount [(days | hours)]
amount は期間を指定する数字で、10 進数を使用できます。単位が省略されている場合は、日数と見なされます。 通常、stale after オプションは、元のデータに一般的なタイムスタンプがない DB ソースで使用します。そのため、それ以外の場合は QVD スナップショットを使用できる期間を指定します。stale after 節は、QVD バッファが作成されてから有効期限切れになるまでの期間を指定します。それまでの間、QVD バッファがデータ ソースとして使用され、期間終了後は元のデータ ソースが使用されます。その後、QVD バッファ ファイルが自動更新され、新しい期間が開始します。
Limitations:
このスクリプトには、多くの制限が存在します。最も代表的な例としては、複雑なステートメントの核にファイル LOAD または SELECT ステートメントを含めなければならないという条件が挙げられます。
Example 1:
Buffer SELECT * from MyTable;
Example 2:
Buffer (stale after 7 days) SELECT * from MyTable;
Example 3:
Buffer (incremental) LOAD * from MyLog.log;