Buffer
Los archivos QVD se pueden crear y mantener automáticamente a través del prefijo buffer. Este prefijo se puede utilizar en la mayoría de las sentencias LOAD y SELECT de scripts. Indica que los archivos QVD se utilizan para almacenar en caché/búfer el resultado de la sentencia.
Sintaxis:
Buffer [(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
Si no se utiliza ninguna opción, el búfer de QVD que crea la primera ejecución del script se utilizará de forma indefinida.
El archivo de buffer se almacena en la subcarpeta Buffers, normalmente C:\ProgramData\Qlik\Sense\Engine\Buffers (instalación del servidor) o C:\Users\{user}\Documents\Qlik\Sense\Buffers (Qlik Sense Desktop).
El nombre del archivo QVD es un nombre calculado, un hash hexadecimal de 160 bits de toda la sentencia LOAD o SELECT siguiente y otra información discriminatoria. Esto significa que el buffer de QVD se mostrará como no válido por cualquier cambio que se produzca en la siguiente sentencia de LOAD o SELECT.
Los búfers de QVD se quitarán normalmente cuando ya no se mencionen en ninguna parte a lo largo de una ejecución completa del script de la app que lo ha creado o cuando la app que lo ha creado ya no exista.
Argumentos:
Argumento | Descripción |
---|---|
incremental |
La opción de incremental activa la capacidad de leer solo parte de un archivo subyacente. El tamaño anterior del archivo se almacena en el encabezado de XML en el archivo de QVD. Esto resulta de especial utilidad con archivos de registro. Todos los registros cargados en alguna ocasión anterior se leen desde el archivo de QVD mientras que los registros nuevos siguientes se leen desde el origen original y por último se crea un archivo de QVD actualizado. La opción incremental solo se puede usar con sentencias LOAD y archivos de texto. La carga incremental no se puede utilizar cuando se modifican o eliminan datos antiguos. |
stale [after] amount [(días | horas)] |
amount es un número que especifica el período de tiempo. Se pueden emplear decimales. Si se omite la unidad se interpreta como days. La opción de stale after se utiliza normalmente con fuentes de bases de datos donde no haya ninguna fecha-hora sencilla en los datos originales. En su lugar, especifique cuánto tiempo se puede usar la captura de QVD. Con la palabra stale tras la cláusula simplemente se establece un período de tiempo a partir de la hora de creación del buffer de QVD tras el cual se dejará de considerar válido. Antes de esa hora, el buffer de QVD se utilizará como origen de los datos, tras lo cual se utilizará el origen de datos original. El archivo del búfer de QVD se actualizará automáticamente y se iniciará un nuevo período. |
Limitaciones:
Existen varias limitaciones. La más notable es que debe haber un archivo LOAD o una sentencia de SELECT en el centro de una sentencia compleja.
Ejemplo 1:
Ejemplo 2:
Ejemplo 3: