[数据处理]
<永洪tech>定时任务增量导入数据(按天导入)
问题:数据库中的数据每天更新,如何实现每天将前一天的数据追加到数据集市?
实现方法:使用定时任务增量导入数据,每天只导入前一天新增的数据。前提是数据库中有这样一个字段标明数据是哪一天的。
实现步骤:
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
<sdate> and date >= ?{sdate} </sdate>
<edate> and date <?{edate} </edate>
4.定时任务每天执行之后会在永洪安装目录下对应位置生成一个zb文件,保存的就是定时任务增量的导入的数据。如图:
5.使用增量导入的数据,在数据集处新建集市查询,文件夹选择步骤1中定时任务设置的文件夹,刷新元数据,保存数据集之后就可以愉快的使用这个数据集制作报表了,每天数据集的数据会自动新增前一天的数据,报表中的数据也是每天都可以更新的,不需要每天手动更新。
操作过程中需要注意的问题:
1.定时任务执行成功了,但是数据集和报表的数据没有更新,原因可能是昨天没有数据库中没有新增数据,这种情况定时任务可以执行成功,但是底层不会生成zb文件。
2.脚本中开始时间和结束时间的定义需要根据需要修改,比如每月或每周导入一次数据。
3.定时任务执行的时间需要根据需要设置,最好选在空闲时候,比如晚上。
|
|
|
|
|
nicolezyyyy
发表于 2020-5-8 11:05:59
你好,如果我使用的是自服务数据集,里面很多个表,那么每个表都需要写这一段sql传递时间参数吗
|
|
|
|
|
有问题不能下班
显示全部楼层
发表于 2022-5-1 20:03:22
|
|
|
|