我制作了两个QlikView(两个.qvw文件)报告,它们的内容几乎相同。 使用“Microsoft OLE DB Provider for SQL Server”从Data Warehouse加载数据。 另一个使用'Microsoft OLE DB Provider for Analysis Services'从Cube加载数据。
但是,使用Cube数据的文件大小远大于包含DW数据的文件。 我想知道为什么会这样。
感谢您的关注。
答案 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个具有大量非不同值的列可能会使文件大小完全不同(特别是对于较大的数据集)。
真实的例子:
floor( rand() * 100)
(1,2,3,4 ... 100),文件大小为 968Kb rand()
(0.70505229476839,0.22396470652893,0.59824940375984等),文件大小 7,2Mb
“答案 1 :(得分:0)
Stefan的答案非常好,但我想在遇到类似行为后加上自己的两美分。
从Analysis服务多维数据集导入数据时,您很可能会获取维层次结构以及不同的元素。
例如,SQL服务器的查询可能会返回5个日期,但是在分析服务多维数据集中,可能会有50个相关记录,因为日期可以累积到周,月,季度,年等,所有这些都创建了一个独特的点如果包含在出口中。
杆