当前位置:Gxlcms > mysql > PartialLoad在QlikView中的用途

PartialLoad在QlikView中的用途

时间:2021-07-01 10:21:17 帮助过:22人阅读

问题描述: 诚然,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测试正在开发的脚本还是能非常节省时间。

人气教程排行