天天看点

QlikView 笔记(五) 通过Partial Reload实现增量抽取

偶然在群里看到QV能不能做增量抽取的功能,遂翻了一下官方文档,找到了围绕Partial Reload的几个相关性比较大的可能实现增量抽取的函数。如有错误欢迎指正,谢谢。

Qlikview里有一个功能很少用到,Partial Reload(部分重新加载),因为在脚本编辑页,QMC(QlikView Management Console)页面默认的都是Reload(常规重新加载),所以很少有开发者会注意到部分加载。

QlikView 笔记(五) 通过Partial Reload实现增量抽取

我们要用到的方法分别有add、exist()、IsPartialReload()。

做个简单的例子:

我有一个employee.csv文件,本来里面有1个员工ID为9999,为了让性能差一点,这边用For循环加载5000条记录,第一次刷新会load5001条记录,如果我更新了employee.csv文件,则实现增量的话就得实现只加载employee里新加入的记录。

下面是脚本: 先创建变量记录开始和结束的时间并打印在log中,for循环加载5000条记录,add后可加only关键字,意为只在partial reload模式下执行,若不加则两种模式都执行。

QlikView 笔记(五) 通过Partial Reload实现增量抽取

下面是第一次常规加载执行的结果:耗时11秒,加载5001条记录。

QlikView 笔记(五) 通过Partial Reload实现增量抽取
QlikView 笔记(五) 通过Partial Reload实现增量抽取

下面给employee.csv文件加一条记录,然后执行部分加载操作,看这次的duration是不是11sec以下:

id name
9999 name9999
add1 add1

部分加载执行结果:用时2秒,足以说明实现了增量加载的操作。

QlikView 笔记(五) 通过Partial Reload实现增量抽取
QlikView 笔记(五) 通过Partial Reload实现增量抽取

当然也可以用IsPartialReload()和if.. then ..elseif..then..enif来判断当前是否使用的部分加载操作,来实现更多的需求。

继续阅读