欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

PartialLoad在QlikView中的用途

程序员文章站 2022-06-13 13:49:20
...

问题描述: 诚然,Partial Load是一个好东西,上一篇博客里面有具体讲到它的使用方法和具体效果。可是,今天和小伙伴讨论之后发现,在实际生产环境中并没有太多其用武之地。 主要原因是: Partial Load确实不会执行没有添加Add或者Replace的Load语句,可是Pa

问题描述:

诚然,Partial Load是一个好东西,上一篇博客里面有具体讲到它的使用方法和具体效果。可是,今天和小伙伴讨论之后发现,在实际生产环境中并没有太多其用武之地。

主要原因是:

Partial Load确实不会执行没有添加Add或者Replace的Load语句,可是Partial Load却会执行其他语句比如判断或者计算某table里面的行数等命令。因此,由于没有执行其他语句所关联的Load语句,比如 LET vRow = RowNo(TableName),Script中有其他条件用于判断这个vRow的,则通不过这个条件。或者某些Concatenate语句需要用到那些没有加载的Table,则程序就会报错。

那么,是否Partial Load的意义就不大了呢?实则不然,即便Partial Load在现在的QlikView 11版本中有诸多不如意,但在我们做开发的时候却仍然可以减少我们很多Load数据的时间。

比如,我的一个Dashboard Load完所有数据之后,已经有500兆了,每次load完所有数据的时间需要四十分钟左右。在Load完之后我发现,我的某一个Script写错了,我就得重新Load所有数据吗?了解Partial Load的小伙伴看到这里也许就恍然大悟了:我们可以暂时在开发阶段使用Partial Load,在上production或者其他稳定环境的时候用Reload加载所有数据。 有的小伙伴会问了,如何暂时避免执行那些不想执行的命令呢? 我的方法是,在所有代码最前面用IsPartialLoad先判断一下:

If IsPartialLoad() Then

your partial load script

Else

other script

EndIf

把你要partial load的语句在这里测试好之后,再进行整个Load,会大大的节省开发时间。

还有一种用途是:由于我们项目现在的solution是将measure写在excel里面的,如此一来测试新写的measure就不需要再重新load所有数据了。大大的提高开发效率有木有。

总结,用QlikView Community上那些大牛们的话说就是:Partial Load is not do nothing. 期待QlikView以后版本中的Partial Load中再遇到引用普通Load的table时能够去获得已经存在于内存中的table值而不要因为本次Partial Load没有加载普通Load的table而使某些值为空导致某些命令报错。

因此,在现阶段,Partial Load并不特别适用于Incremental Load,后面我会介绍Incremental Load 的其他方法。

但是,在开发阶段使用Partial Load测试正在开发的脚本还是能非常节省时间。