是否可以将多个表的数据存储到单个 QVD 文档中?
如果是这样,我如何才能将多个表存储到此 QVD 或从中加载多个表?
最佳答案
存储表
您不能将多个不同的表格存储到一个 QVD 文件中。这样做的原因是,QVD 格式仅存储单个表的内存“图像”,因此不包含任何指向其他表的链接的元数据。
因此,如果您希望在 QVD 文件中存储多个表,您必须:
- 将它们存储为单独的 QVD
- 将它们组合成一个表(例如通过
JOIN
、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
];
您不能将此模型存储到单个 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);
将它们组合成一个表
根据您的数据模型,您可以使用 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);
正在加载
要从存储的 QVD 加载数据,您只需在脚本中添加 LOAD
语句,例如:
Orders:
LOAD
*
FROM Orders.qvd (qvd);
Products:
LOAD
*
FROM Products.qvd (qvd);
QlikView 随后将根据您的原始模型自动推断字段链接,前提是字段名称与您存储表格时的名称相同。
关于qlikview - 在 QlikView 中将多个表格存储到 QVD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25521936/