Buffer
Os arquivos QVD podem ser criados e mantidos automaticamente usando o prefixo buffer. Esse prefixo pode ser usado com a maioria dos comandos LOAD e SELECT no script. Ele indica se os arquivos QVD serão usados para armazenar em cache/buffer o resultado do comando.
Sintaxe:
Buffer [(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
Se não for usada nenhuma opção, o buffer de QVD criado pela primeira execução do script será usado indefinidamente.
O arquivo de buffer é armazenado na subpasta Buffers, em geral C:\ProgramData\Qlik\Sense\Engine\Buffers (instalação do servidor) ou C:\Users\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop).
O nome do arquivo QVD é um nome calculado, um hash hexadecimal de 160 bits do seguinte comando LOAD ou SELECT inteiro e outras informações distintas. Isso significa que o buffer QVD buffer será invalidado por qualquer alteração no comando LOAD ou SELECT.
Os buffers de QVD normalmente serão excluídos quando deixarem de ser referenciados durante a execução completa do script no aplicativo que os criou ou quando o aplicativo que os criou não existir mais.
Argumentos:
Argumento | Descrição |
---|---|
incremental |
A opção incremental permite a leitura apenas de parte de um arquivo subjacente. O tamanho anterior do arquivo é armazenado no cabeçalho XML no arquivo QVD. Isso é especificamente útil com arquivos de log. Todos os registros carregados anteriormente são lidos no arquivo QVD, ao passo que os novos registros subsequentes são lidos na fonte original e, por fim, é criado um arquivo QVD atualizado. A opção incremental só pode ser usada com instruções de LOAD e arquivos de texto. O carregamento incremental não pode ser usado quando dados antigos são alterados ou excluídos. |
stale [after] amount [(days | hours)] |
amount é um número que especifica o período de tempo. Os decimais podem ser utilizados. A unidade adotada será dias, se for omitida. A opção stale after é geralmente usada com fontes de DB nas quais não há nenhum carimbo de data/hora simples nos dados originais. Especifica-se por quanto tempo os snapshots capturados no último QVD poderão ser utilizados. Uma cláusula stale after simplesmente determina um período de tempo a partir da hora de criação do buffer de QVD, após a qual o buffer deixará de ser considerado válido. Antes desse período, o buffer de QVD será usado como fonte dos dados e, após o período, será usada a fonte de dados original. O arquivo do buffer de QVD será automaticamente atualizado e um novo período será iniciado. |
Limitações:
Existem várias limitações. A mais evidente é que deve haver uma declaração LOAD ou SELECT de arquivo na base de qualquer declaração complexa.
Exemplo 1:
Exemplo 2:
Exemplo 3: