本公开涉及大数据领域和金融领域,更具体地,涉及一种基于追加更新模式的数据处理方法、装置、设备、介质和程序产品。
背景技术:
1、在追加更新模式下,新版本数据会被追加到旧版本数据之后,旧版本数据依然存在。例如基于astore存储引擎数据库,数据库中采用新旧版本集中的数据存储方式,新老版本数据存储在相同区域。写新数据时,旧数据不删除,追加插入新数据,通过事务号状态确定事务提交或回滚。
2、当数据库采用追加更新模式时,更新一笔记录,旧版本数据不会被删除、在同一存储区域中追加插入新版本数据,通过事务号状态确定事务提交或回滚。同一条记录随着更新次数增多,访问数据跳转次数会随之增加,访问数据响应时间随之变慢。
3、在实现本公开发明构思的过程中,发明人发现,追加更新模式下依赖数据库中所有在途事务结束后,才可以将各数据库表的旧版本数据删除。若存在长事务,则导致旧版本数据无法及时清理,最终导致查询数据响应时间超时、无法满足业务查询需求等问题。
技术实现思路
1、鉴于上述问题,本公开提供了一种基于追加更新模式的数据处理方法、装置、设备、介质和程序产品。
2、本公开实施例的一个方面,提供了一种基于追加更新模式的数据处理方法,包括:从具有相同表结构的n个数据库表中确定活动表,n为大于或等于2的整数;将所述n个数据库表中至少一个历史表的最新数据合并至所述活动表,所述至少一个历史表分别为除所述活动表之外的数据库表;删除所述至少一个历史表中的全部数据;其中,所述活动表为每个时间周期内基于所述追加更新模式进行数据处理操作的业务表,任两个相邻时间周期使用所述n个数据库表中不同数据库表作为活动表。
3、根据本公开的实施例,所述n个数据库表包括第一数据库表和第二数据库表,任两个相邻时间周期使用所述n个数据库表中不同数据库表作为活动表包括:在第i个时间周期确定所述第一数据库表为所述活动表;在第i+1个时间周期确定所述第二数据库表为所述活动表,i为大于或等于1的奇数。
4、根据本公开的实施例,对于每个时间周期,在确定出所述活动表之后,所述方法还包括:经过预设时间段后,执行所述将所述n个数据库表中至少一个历史表的最新数据合并至所述活动表的操作;其中,所述预设时间段、所述将所述n个数据库表中至少一个历史表的最新数据合并至所述活动表的时间,以及所述删除所述至少一个历史表中的全部数据的时间之和,小于当前时间周期的时间长度。
5、根据本公开的实施例,所述方法还包括确定所述预设时间段,具体包括:获取m个历史事务一一对应的m个事务持续时间,其中任一个事务持续时间小于或等于预设阈值,m为大于或等于1的整数;基于所述m个事务持续时间确定所述预设时间段。
6、根据本公开的实施例,所述数据处理操作包括插入数据操作,在所述预设时间段内,所述方法还包括:对所述活动表执行所述插入数据操作;基于所述插入数据操作,查询所述至少一个历史表中相同的主键记录;若查询到所述相同的主键记录,对所述活动表执行针对所述插入数据操作的回滚操作。
7、根据本公开的实施例,所述数据处理操作包括更新数据操作,在所述预设时间段内,所述方法还包括:查询所述活动表中所述更新数据操作所针对的第一目标数据;若在所述活动表中未查询到所述第一目标数据,查询所述至少一个历史表中的所述第一目标数据;若在所述至少一个历史表中查询到所述第一目标数据,在所述第一目标数据所在的历史表中执行所述更新数据操作;将更新后的所述第一目标数据插入到所述活动表。
8、根据本公开的实施例,将所述n个数据库表中至少一个历史表的最新数据合并至所述活动表包括:若在合并过程中存在相冲突的主键记录,跳过所述相冲突的主键记录不予合并,所述相冲突包括所述活动表与所述至少一个历史表存在相同的主键记录。
9、根据本公开的实施例,所述数据处理操作包括删除数据操作,在所述预设时间段内,所述方法还包括:分别对所述活动表和所述至少一个历史表执行所述删除数据操作。
10、根据本公开的实施例,所述数据处理操作包括查询数据操作,在所述预设时间段内,所述方法还包括:对所述活动表执行所述查询数据操作;若在所述活动表中未查询到所述查询数据操作针对的第二目标数据,对所述至少一个历史表执行所述查询数据操作。
11、本公开实施例的另一方面提供了一种基于追加更新模式的数据处理装置,包括:活动表确定模块,用于从具有相同表结构的n个数据库表中确定活动表,n为大于或等于2的整数;表数据合并模块,用于将所述n个数据库表中至少一个历史表的最新数据合并至所述活动表,所述至少一个历史表分别为除所述活动表之外的数据库表;表数据清理模块,用于删除所述至少一个历史表中的全部数据;其中,所述活动表为每个时间周期内基于所述追加更新模式进行数据处理操作的业务表,任两个相邻时间周期使用所述n个数据库表中不同数据库表作为活动表。
12、本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
13、本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
14、本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
15、上述一个或多个实施例具有如下有益效果:提供了两个以上的数据库表交替使用、交替清理的方式,在各时间周期内确定一个活动表作为正使用的业务表,其余至少一个历史表的数据可以合并到活动表中以满足业务访问数据要求,并能够及时删除至少一个历史表中的数据。可以不受数据库内其他表的长事务影响、且不影响查询访问,周期性地进行旧版本数据清理,从而一定程度上解决过多的旧版本数据导致查询耗时的明显增长,影响访问数据速度的问题。
1.一种基于追加更新模式的数据处理方法,包括:
2.根据权利要求1所述的方法,其中,所述n个数据库表包括第一数据库表和第二数据库表,任两个相邻时间周期使用所述n个数据库表中不同数据库表作为活动表包括:
3.根据权利要求2所述的方法,其中,对于每个时间周期,在确定出所述活动表之后,所述方法还包括:
4.根据权利要求3所述的方法,其中,所述方法还包括确定所述预设时间段,具体包括:
5.根据权利要求3所述的方法,其中,所述数据处理操作包括插入数据操作,在所述预设时间段内,所述方法还包括:
6.根据权利要求3所述的方法,其中,所述数据处理操作包括更新数据操作,在所述预设时间段内,所述方法还包括:
7.根据权利要求6所述的方法,其中,将所述n个数据库表中至少一个历史表的最新数据合并至所述活动表包括:
8.根据权利要求3所述的方法,其中,所述数据处理操作包括删除数据操作,在所述预设时间段内,所述方法还包括:
9.根据权利要求3所述的方法,其中,所述数据处理操作包括查询数据操作,在所述预设时间段内,所述方法还包括:
10.一种基于追加更新模式的数据处理装置,包括:
11.一种电子设备,包括:
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~9中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~9中任一项所述的方法。