跳到主要内容 跳到补充内容

QVD 文件

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

QVD 文件可以用两种模式读取:标准(快速)和优化(超快)。所选模式由 Qlik Sense 脚本引擎自动确定。尽管字段可以重命名,但仅当全部加载字段在无任何转换的形式下读取(操作字段公式)时才可以使用优化模式。导致 Qlik Sense 解压记录的 Where 子句也将禁用优化加载。

QVD 文件正好包含一个数据表,由三个部分组成:

  • 在表格中描述字段的 XML 标题(UTF-8 字符集)、后续信息的布局以及一部分其他元数据。
  • 字节填充格式符号表。
  • 位填充格式实际表。

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

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

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

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

信息注释

要了解 Qlik 社区是如何使用 Qlik 应用程序自动化 来改善 QVD 加载时间的,请参阅如何使用自动化来分割 QVD 以改善重新加载

创建 QVD 文件

可以使用脚本中的 store 命令创建和命名 QVD 文件。在脚本中说明要将先前读取的表格或其部分导出到您选定位置上的一个明确命名文件。

Store

该脚本语句创建显式命名的 QVDParquetCSVTXT 文件。

语法:  

Store[ *fieldlist from] table into filename [ format-spec ];

该语句仅会从一个数据表格中导出字段。如果要从多个表格中导出字段,必须明确命名之前在脚本中生成的联接以创建应导出的数据表。

文本值将以 UTF-8 格式导出至 CSV 文件。可以指定一个分隔符,请参阅 LOAD。store 语句不支持将 BIFF 导出至 CSV 文件。

Store mytable into [lib://DataFiles/xyz.qvd]; Store * from mytable into [lib://DataFiles/xyz.qvd]; Store myfield from mytable into [lib://DataFiles/xyz.qvd]; Store myfield as renamedfield, myfield2 as renamedfield2 from mytable into [lib://DataFiles/xyz.qvd]; Store mytable into [lib://DataFiles/myfile1.txt]; Store mytable into [lib://DataFiles/myfile2.csv];

  1. 打开高级脚本编写教程应用程序。
  2. 单击 Product 脚本段。
  3. 将以下内容添加至脚本的末尾:
  4. Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

    您的脚本应如下所示:

    CrossTable(Month, Sales)
    LOAD
        Product,
        "Jan 2014",
        "Feb 2014",
        "Mar 2014",
        "Apr 2014",
        "May 2014"
    FROM [lib://DataFiles/Product.xlsx] 
    (ooxml, embedded labels, table is Product);
    
    Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

  5. 单击加载数据
  6. Product.qvd 文件现在将会出现在文件列表中。

    此数据文件是 Crosstable 脚本的结果且也是一个包含三列的表格,每个类别都拥有一列 (Product, Month, Sales)。此数据文件现在可用于替换整个 Product 脚本部分。

QVD 文件读取数据

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

  • 加载 QVD 文件作为显式数据源。QVD 文件可由 Qlik Sense 脚本中的 load 语句引用,与任何其他类型的文本文件一样(csvfixdifbiff 等)。
  • LOAD * from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1, fieldname2 from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1 as newfieldname1, fieldname2 as newfieldname2 from [lib://DataFiles/xyz.qvd](qvd);
  • 通过脚本访问 QVD 文件。许多脚本函数(都以 QVD 开头)都可用于检索在 QVD 文件的 XML 标题中发现的数据的不同信息。

  1. Product 脚本段中注释掉整个脚本。
  2. 输入以下脚本:
  3. Load * from [lib://DataFiles/ProductData.qvd](qvd);			

  4. 单击加载数据
  5. 将数据从 QVD 文件加载。

    数据加载进度窗口

    数据加载进度窗口。
信息注释要了解有关将 QVD 文件用于增量加载的信息,请参阅Qlik Community中的该文章:Qlik 增量加载的概览

 

谢谢!

现在,您已完成本教程的学习,希望您已获得有关 Qlik Sense 的脚本编译的更多知识。请访问我们的网站,了解有关提供进一步培训的更多信息。

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!