Qlikview model

浏览: 2088

经常看到有人对qlikview的model的疑问或者一些组合键或者成环的一些问题,所以下面就探讨一下qlikview建模。

业务背景:有3张事实表分别为采购表、库存表、销售表,4张维度表分别为日期、产品、供应商、客户,我们现在需要搭建模型。

初始模型:直接将所有的数据表load至qlikview,字段内容就不做解释了,都非常简单,如下图:


这个时候就产生了$syn键,也称组合键,这个字段名称相同就自动关联是qlikview的特性,这里就不做太多其他解释,那么这个模型是可以可以被优化的,当然了这个模型不优化也是可以的,但是不是很好的习惯或者说对性能或者其他方面有些影响,所以在这里都不做探讨是不是应该被优化,我只是建议优化,所以下面就探讨如何优化。

优化的重点还是在组合键,我们从模型中看到$syn table中的公用键是产品ID和日期ID,所以我们要优化的就是将$syn table优化为Linktable(这里不对linktable做太多解释),所以我们需要把每张表中的产品ID和日期ID抽象为一个key,即如下:


因为事实表中的产品ID和日期ID都被抽象了,所以这个时候事实表是无法关联日期表和产品表的,下面就开始构造Linktable,代码如下:


这里大概解释一下这些代码的思路,构造linktable的目的就是不让两张或者以上的表公用两个以上的字段,避免$syn table,然后每个 "日期ID&产品ID"这个key与事实表关联,原本每个事实表中的日期ID和产品ID只和维度表关联,如果有更多的公用key都可以按照这种方法处理,优化之后的模型如下图:


结构非常清晰,方便后期扩展等,当然也有其他方法可以处理,比如Join事实表等,但是不是一个很好的做法,如有不妥之处,还望大家给出宝贵的意见,谢谢!

推荐 4
本文由 qjxiaopang 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

4 个评论

谢谢小胖分享,最近也在学QV
兄弟抄袭一下不介意吧!分享给我们同事看下!
谢谢分享,正在学习ing
难得有中文论坛,支持

要回复文章请先登录注册