Buffer

Файлы QVD могут создаваться и обслуживаться автоматически посредством префикса buffer. Этот префикс может использоваться на большинстве операторов LOAD и SELECT в скрипте. Он указывает на то, что файлы QVD используются для кэширования/буферизации результата оператора.

Syntax:  

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

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

 

Если не используется ни один параметр, буфер QVD, созданный при первом выполнении скрипта, будет использоваться в течение неопределенного времени.

Файл буфера находится в подпапке Буферы, обычно это C:\ProgramData\Qlik\Sense\Engine\Buffers (установка сервера) или C:\Users\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop).

Имя файла QVD является вычисляемым именем (160-разрядными шестнадцатеричными случайными данными всего следующего оператора LOAD или SELECT и другой специфической информацией). Это означает, что буфер QVD будет недействительным при любых изменениях в следующем операторе LOAD или SELECT.

Обычно буферы QVD удаляются, если к ним больше не обращаются ни на каком этапе выполнения всего скрипта в приложении, его создавшем, либо в том случае, если приложение, его создавшее, уже не существует.

Arguments:  

Аргумент Описание
incremental Параметр incremental дает возможность прочитать только часть базового файла. Данные о предыдущем размере файла находятся в заголовке XML файла QVD. Это особенно полезно при работе с файлами журнала. Все записи, загруженные в предыдущий раз, считываются из файла QVD, в то время как последующие новые записи считываются из оригинального источника, в результате чего создается обновленный файл QVD. Обратите внимание, что параметр incremental может использоваться только с операторами LOAD и текстовыми файлами, а инкрементальная загрузка не может использоваться там, где устаревшие данные изменены или удалены!
stale [after] amount [(days | hours)] amount — число, обозначающее период времени. Могут использоваться десятичные числа. Единицей измерения являются дни, если не указано.

Параметр stale after обычно используется с источниками баз данных, если нет простой метки времени на оригинальных данных. Вместо этого можно указать, насколько старым может быть описание используемого снимка 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;