QVD 文件

QVD (QlikView 数据)是包含从 QlikView 中导出的数据表的文件。QVD 是本地 QlikView 格式只可由 QlikView 写入及读取。当从 QlikView 脚本中读取数据时该文件格式可提升速度,同时又非常紧凑。从 QVD 文件读取数据通常比从其他数据源读取快 10 到 100 倍。

QVD 文件可以用两种模式读取: 标准(快速)和优化(超快)。所选模式由 QlikView 脚本引擎自动确定。尽管字段可以重命名,但仅当全部加载字段在无任何转换的形式下读取(操作字段公式)时才可以使用优化模式。导致 QlikView 解压记录的 WHERE 子句也将禁用优化加载。在执行字段转换时会提取优化的 .qvd 并根据标准提取-转化-加载 (ETL ) 对其进行处理,这会导致效能下降。不会保留指定的格式,而是使用并识别底层原始数字格式。允许对 .qvd 中的字段进行转换,之前“优化的” .qvd 随即变成标准未优化的 .qvd。

QVD 文件中正好有一个数据表,包含三个部分:

  1. 在表格中描述字段且格式完整的 XML 页眉(UTF-8 字符集)、后续信息的布局以及其他元数据。
  2. 字节填充格式符号表
  3. 位填充格式实际表。

QVD 文件的目的

QVD 文件具有许多用途。至少可轻易识别四种主要的用途。在任何给定的情况下都可以应用不只一个:

提高加载速度

通过缓冲 QVD 文件中输入数据的不改变或缓慢改变部分,执行大型数据集脚本可变得相当快。

降低数据库服务器上的加载量

从外部数据源提取的数据量也可大幅度降低。这可减少外部数据库的工作量和网络流量。而且,当几个 QlikView 脚本共享相同的数据时,只需要将这些数据从源数据库加载到 QVD 文件一次即可。其他应用程序可以利用此 QVD 文件中相同的数据。

合并多个 QlikView 应用程序数据

使用二进制脚本语句,可能只能从单个 QlikView 应用程序加载数据到另一个应用程序,但使用 QVD 文件,QlikView 脚本可以合并任何数量的 QlikView 应用程序数据。例如,这使在一个应用程序中合并不同企业单位的相似数据等成为可能。

增量加载

在许多常见情况下,QVD 功能可用于简化增量加载,即独家从不断扩大的数据库中加载新记录。

使用 QVD 文件进行增量加载

创建 QVD 文件

可以通过三个不同的方法创建一个 QVD 文件:

  1. 使用 QlikView 脚本中的 store 命令进行显式创建并命名。只需在脚本中说明要将先前读取的表格或其部分导出到您选定位置上的一个明确命名文件。
  2. 从脚本中自动创建并维护。通过为 loadselect 语句加入前缀 buffer,QlikView 将自动创建 QVD 文件,但重新加载数据时需使用某些条件代替初始数据源。
  3. 从布局或通过内部宏解释器显式手动创建或命名。通过 GUI 命令或自动宏工具可从 QlikView 布局导出数据。在 GUI 中,您将在导出...命令下发现 QVD 是可能输出格式之一。大多数工作表对象中的对象菜单都有这个命令。

    内部宏解释器

在结果 QVD 文件之间没有不同,如在阅读速度方面等。

从 QVD 文件中读取数据

可以通过以下方法由 QlikView 读入或访问 QVD 文件:

  1. 加载 QVD 文件作为显式数据源。QVD 文件可由 QlikView 脚本中的加载语句引用,与其他类型号的文本文件一样(csv,fix,dif,biff 等)。文件向导:类型以同样的原则处理 QVD 文件。

    文件向导:类型

  2. Examples:  

    load * from xyz.qvd (qvd);

    load Name, RegNo from xyz.qvd (qvd);

    load Name as a, RegNo as b from xyz.qvd (qvd);

  3. 自动加载缓冲 QVD 文件。在 loadselect 语句中使用 buffer 前缀时,无需明确说明读取的语句。QlikView 将自行确定使用 QVD 文件数据的程度这一点同通过原始载入选择语句获取数据相反。
  4. 通过脚本访问 QVD 文件。许多脚本函数 (都以qvd开头)都可用于检索一个 QVD 文件的 XML 标题中发现的数据的不同信息。

    文件函数

不再支持导入包含星号的 QVD。