PartialLoad在QlikView中的用途
问题描述: 诚然,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测试正在开发的脚本还是能非常节省时间。
上一篇: 关于网站上传不成功有关问题
下一篇: 分页函数,自动识别链接追加跳转参数