使用定时任务增量导入数据,每天只导入前一天新增的数据。前提是数据库中有这样一个字段标明数据是哪一天的。 实现步骤: 1.首先新建定时任务增量导入数据不勾选增量,将某个查询的所有数据放到数据集市,其中会填写文件夹和文件前缀,这个在后面还会使用到。可以在定时任务中设置执行时间,选择系统空闲的时间执行定时任务。
2.步骤1完成后新建另一个定时任务增量导入数据,实现每天新增前一天的数据。勾选增量,其中文件夹和步骤1中的一致,前缀可以不一致。定时任务的时间执行设置为每天晚上空闲时间执行一次。需要在定时任务脚本中写如下脚本: var b=formatDate(dateAdd(today(),'dayofmonth',-1),'yyyy-MM-dd') param['sdate']=parseDate(b,'yyyy-MM-dd') //参数sdate表示开始时间,昨天 param['edate']=parseDate(formatDate(today(),'yyyy-MM-dd'),'yyyy-MM-dd') //参数edate表示结束时间 ,今天。
3.定时任务建好保存之后,打开这个定时任务增量导入数据的sql数据集 .在sql中使用定时任务中定义的两个参数。sql如下: select * from test where 1=1 and date >= ?{sdate} and date
4.定时任务每天执行之后会在永洪安装目录下对应位置生成一个zb文件,保存的就是定时任务增量的导入的数据。如图:
5.使用增量导入的数据,在数据集处新建集市查询,文件夹选择步骤1中定时任务设置的文件夹,刷新元数据,保存数据集之后就可以愉快的使用这个数据集制作报表了,每天数据集的数据会自动新增前一天的数据,报表中的数据也是每天都可以更新的,不需要每天手动更新。
操作过程中需要注意的问题: 1.定时任务执行成功了,但是数据集和报表的数据没有更新,原因可能是昨天没有数据库中没有新增数据,这种情况定时任务可以执行成功,但是底层不会生成zb文件。 2.脚本中开始时间和结束时间的定义需要根据需要修改,比如每月或每周导入一次数据。 3.定时任务执行的时间需要根据需要设置,最好选在空闲时候,比如晚上。
|