数据采集系统

1、如何保证执行脚本不重复

每个脚本都带有一个key.在执行脚本的时候,key都会维护到一个聊表中,在执行前,先确定列表中是否有这个key,对key的数量也有限制,防止太多语句执行

2、如何保证数据的同步

每天都会去查询业务库中的id,和绩效库匹配,如果没有这个id,就认为这条数据已删,每天都会采集两天的数据(因为有些表只到日期,没有小时),脚本设置业务主键,用于同步’

3、登录有效期是8小时,使用session和kokke实现自动登录

4、如何执行sql语句

为了提高处理脚本的灵活性,使用了java.sql进行连接,

5、增量采集的实现

采集两天前的数据,使用数据的业务主键去删除绩效库的数据,再重新采集这个时间段的数据

6、全量采集

删除库中的所有数据,然后重新采集

7、加载绩效表的时候很慢

因为这个表的多个字段都关联了其他表,所以查询比较慢;使用延迟加载的方式,每次查询,只获取需要的数据

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "pid")
private TOrganization org;

在使用的时候,

 每个医院,一天都会产生上万条数据,有三十多家医院,需要使用线程池,进行多线程的数据采集工作

原文地址:https://www.cnblogs.com/zj-xu/p/11754063.html