使用多维数据集数据时,QVW文件大小更大

时间:2017-12-05 06:56:20

标签: sql-server ssas business-intelligence qlikview

我制作了两个QlikView(两个.qvw文件)报告,它们的内容几乎相同。 使用“Microsoft OLE DB Provider for SQL Server”从Data Warehouse加载数据。 另一个使用'Microsoft OLE DB Provider for Analysis Services'从Cube加载数据。

但是,使用Cube数据的文件大小远大于包含DW数据的文件。 我想知道为什么会这样。

感谢您的关注。

2 个答案:

答案 0 :(得分:2)

定义almost the same content:)

QlikView / QlikSense文件大小取决于列数和不同值

一般情况下,Qlik不会按原样存储所有数据。相反,它将数据存储为不同值和内存指针的列表,以及如何构建数据模型。

例如:

如果数据库中有两个字段(均为1M行) - 一个具有timestamp值,另一个仅具有date个值。

在Qlik中,timestamp值的应用会比date应用更大,因为timestamp字段有很多非不同的值(假设80%不相同) date有很多不同的值(比方说80%是不同的),而Qlik只在后台存储不同的值。

在上面的示例中,尽管在具有两个字段的数据库中,但最终将使用800k行(80%非不同)和timestamp文件以及200k(80%不同)行保存date文件。有1M行。

我简化了它,但一般情况下 - 具有大量不同值的较少字段将产生较小的文件。添加1-2个具有大量非不同值的列可能会使文件大小完全不同(特别是对于较大的数据集)。

真实的例子:

  • SO_47650951_1.qvw - 包含1个包含“1M”行的字段。其中的值为floor( rand() * 100)(1,2,3,4 ... 100),文件大小为 968Kb
  • SO_47650951_2.qvw - 包含1个包含“1M”行的字段。其中的值为rand()(0.70505229476839,0.22396470652893,0.59824940375984等),文件大小 7,2Mb

答案 1 :(得分:0)

Stefan的答案非常好,但我想在遇到类似行为后加上自己的两美分。

从Analysis服务多维数据集导入数据时,您很可能会获取维层次结构以及不同的元素。

例如,SQL服务器的查询可能会返回5个日期,但是在分析服务多维数据集中,可能会有50个相关记录,因为日期可以累积到周,月,季度,年等,所有这些都创建了一个独特的点如果包含在出口中。