Buffer
QVD 文件可通过 buffer 前缀自动创建和维护。该前缀可用于脚本中大多数 LOAD 和 SELECT 语句。这表示 QVD 文件可用于缓存/缓冲该语句产生的结果。
语法:
Buffer [(option [ , option])] ( loadstatement | selectstatement )
option::= incremental | stale [after] amount [(days | hours)]
如果未使用任何选项,则首次执行脚本时创建的 QVD 缓冲将无限期使用。
默认情况下,QVD 缓冲存储在 C:\ProgramData\QlikTech\QlikView\Buffers 中。
创建脚本的文档在整个脚本执行过程不再引用时,或者创建脚本的文档不再存在时,通常会移除 QVD缓冲。
参数:
参数 | 说明 |
---|---|
incremental | incremental 选项可实现仅读取基础文件的一部分。文件先前大小存储在 QVD 文件中的 XML 页眉中。这对日志文件特别有用。上一步载入的全部记录都可从 QVD 文件读取,而后续新记录可从原始数据源读取,这样就可创建一个 QVD 更新文件。注意,incremental 选项只能与 LOAD 语句和文本文件,以及旧数据发生更改或被删除而导致无法使用增量加载的地方! |
stale [after] amount [(days | hours)] |
amount 即指定时间周期的数字。可能要使用小数。如果省略,则假定单位为天数。 stale after 选项通常与 DB 源一起使用,DB 源在初始数据上并无简单的时间戳。相反,您可以指定 QVD 快照将能用多久。stale after 子句仅陈述自 QVD 缓冲创建时间计起的时间周期,此后其即被视为无效。QVD 缓冲在此之前会被用作数据源,在此之后则使用原始数据源。QVD 缓冲文件随后会自动更新,同时新周期开始。 |
限制:
当然也存在许多限制,最明显的一点就是在任意复杂语句的核心必须有一个文件 LOAD 或 SELECT 语句。
示例 1:
示例 2:
示例 3: