永洪社区

标题: 数据库中的数据每天更新,如何实现每天将前一天的数据... [打印本页]

作者: 王静静    时间: 2021-4-13 18:37
标题: 数据库中的数据每天更新,如何实现每天将前一天的数据...
数据库中的数据每天更新,如何实现每天将前一天的数据追加到数据集市?

作者: Yonghong-Club    时间: 2021-4-13 19:20
使用定时任务增量导入数据,每天只导入前一天新增的数据。前提是数据库中有这样一个字段标明数据是哪一天的。
实现步骤:
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.定时任务执行的时间需要根据需要设置,最好选在空闲时候,比如晚上。


作者: 雨淋的猫    时间: 2022-9-1 14:08
1




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4