在QlikView中将多个表存储到QVD中

Dex*_*ter 1 qlikview

是否可以将多个表格的数据存储到单个QVD文档中?

如果是这样,我如何在这个QVD中存储和加载多个表?

i_s*_*nes 5

存储表格

您不能将多个不同的表存储到QVD文件中.原因是QVD格式仅存储单个表的内存"图像",因此不包括任何指向其他表的链接的元数据.

因此,如果您希望在QVD文件中存储多个表,则必须:

  • 将它们存储为单独的QVD
  • 将它们组合成一个表(例如通过JOINs applymap等),然后将表存储到QVD文件中.

例如,假设您有以下架构:

示例具有两个表的表布局

Orders:
LOAD * INLINE [
    Product, Country, Value
    A, USA, 100
    B, UK, 200
    C, FR, 300
];

Products:
LOAD * INLINE [
    Product, Weight, Colour
    A, 10, Red
    B, 50, Yellow
    C, 70, Green
];
Run Code Online (Sandbox Code Playgroud)

您无法将此模型存储到单个QVD文件中.回顾我们的两个选择:

存储为单独的QVD

您可以稍微更改脚本:

Orders:
LOAD * INLINE [
    Product, Country, Value
    A, USA, 100
    B, UK, 200
    C, FR, 300
];

Products:
LOAD * INLINE [
    Product, Weight, Colour
    A, 10, Red
    B, 50, Yellow
    C, 70, Green
];

STORE Orders INTO Orders.qvd (qvd);
STORE Products INTO Products.qvd (qvd);
Run Code Online (Sandbox Code Playgroud)

将它们组合成一个表格

根据您的数据模型,您可以使用JOIN和其他QV函数:

Orders:
LOAD * INLINE [
    Product, Country, Value
    A, USA, 100
    B, UK, 200
    C, FR, 300
];

LEFT JOIN
LOAD * INLINE [
    Product, Weight, Colour
    A, 10, Red
    B, 50, Yellow
    C, 70, Green
];

STORE Orders INTO Orders.qvd (qvd);
Run Code Online (Sandbox Code Playgroud)

载入中

要从存储的QVD加载数据,只需LOAD在脚本中添加一个语句,例如:

Orders:
LOAD
    *
FROM Orders.qvd (qvd);

Products:
LOAD
    *
FROM Products.qvd (qvd);
Run Code Online (Sandbox Code Playgroud)

然后QlikView将根据您的原始模型自动推断字段链接,前提是字段名称与存储表格时相同.