基于数据库的数据清理方法、装置、存储介质及电子设备与流程
未命名
10-28
阅读:90
评论:0
1.本发明涉及大数据技术领域,具体而言,涉及一种基于数据库的数据清理方法、装置、存储介质及电子设备。
背景技术:
2.目前,大多数金融机构主要以厂商提供的大型主机和数据库解决方案来进行系统构建,而以大型主机和数据库为核心的传统集中式架构已无法满足日益增长的大规模交易和数据处理。传统的集中式架构一方面性能无法满足业务爆发式增长的处理需求,存在系统过载风险,另一方面,价格比较昂贵,维护成本居高不下。随着技术发展对金融服务模式带来越来越大的影响,金融行业逐渐向数字化、分布式架构转型。
3.但是,在分布式架构转型的过程中,需要将大型主机的全量数据同步并更新到平台分布式数据库中。然而,金融机构的数据规模庞大,业务表数据量多在千万级别以上,数据表存储量会不断增加,因此,金融机构中的数据库的清理工作变的尤为重要。
4.金融机构中分布式数据库大表中通常存放协议记录、交易记录、客户信息等大规模数据,业务场景使用较多,会频繁地去修改表记录。但是,在分布式架构转型的过程中,平台分布式数据库会存在一些不属于该库的数据。此类落错库的数据无实际业务用途,若不及时清理会消耗数据库容量,降低数据库性能。
5.相关技术中,用存储时间作为判断依据,将存储时间大于时间阈值的数据确定为待清理数据;然后,对待清理的数据执行关联操作,确定需要关联清理的数据量,若数据量小于阈值,则批量删除数据,进行清理,否则保留该数据。但是,该方法在金融业不符合实际业务场景,且批量删除数据会造成数据库较长时间的锁表,影响联机交易。某个库该类数据的清理量和落错库的时间都是未知的,若使用该方法进行清理可能无法精确的筛选到需要清理的数据,且较长时间的锁表,容易堵塞联机交易,引起大规模交易超时失败,影响金融机构系统的稳定。
6.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
7.本发明实施例提供了一种基于数据库的数据清理方法、装置、存储介质及电子设备,以至少解决相关技术中难以精准清理分布式数据库中需要清理的数据的技术问题。
8.根据本发明实施例的一个方面,提供了一种基于数据库的数据清理方法,包括:响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,所述目标业务数据包括:用于标识所述目标业务数据的主键数据,n为正整数;基于每条所述目标业务数据的主键数据,对每条所述目标业务数据和所述数据库中的业务数据进行匹配,得到匹配结果;基于所述匹配结果对所述数据库中存储的业务数据进行清理。
9.进一步地,基于所述匹配结果对所述数据库中存储的业务数据进行清理,包括:若所述匹配结果指示所述数据库中存在未匹配到n条所述目标业务数据中的至少一个所述主
键数据,则在所述数据库中删除该主键数据的业务数据;若所述匹配结果指示n条所述目标业务数据中任一所述主键数据与所述数据库中的主键数据匹配成功,且该主键数据关联的所述目标业务数据的字段数据和该主键数据在数据库中的字段数据一致,则比较该主键数据关联的目标业务数据的最晚修改时刻和所述数据库中该主键数据关联的业务数据的修改时刻,并在该主键数据关联的目标业务数据的最晚修改时刻晚于所述数据库中该主键数据关联的业务数据的修改时刻的情况下,在所述数据库中删除该主键数据关联的业务数据;若所述匹配结果指示n条所述目标业务数据中任一所述主键数据与所述数据库中的主键数据匹配成功,且该主键数据关联的所述目标业务数据的字段数据和该主键数据在数据库中的字段数据不一致,则将该主键数据关联的所述数据库中的业务数据添加至目标数据表,其中,所述目标数据表用于存储需重新核对的业务数据。
10.进一步地,在将该主键数据关联的所述数据库中的业务数据添加至目标数据表之后,还包括:对所述目标数据表中的业务数据进行核对,得到核对结果,并在所述数据库中锁定该主键数据关联的业务数据;在所述数据库中锁定该主键数据关联的业务数据之后,基于所述核对结果更新所述数据库中该主键数据关联的业务数据,并在所述数据库中该主键数据关联的业务数据更新后,在所述数据库中对该主键数据关联的业务数据进行解锁。
11.进一步地,在从消息队列中获取目标主机的n条目标业务数据之前,还包括:获取n条第一业务数据,并更新每条所述第一业务数据的最晚修改时刻,得到n条第二业务数据,其中,所述第一业务数据包括:所述目标主机中的原始业务数据;对每条所述第二业务数据进行解析,得到n条所述目标业务数据,并将每条所述目标业务数据添加至消息队列。
12.进一步地,所述第一业务数据至少包括:用户编号,获取n条第一业务数据,包括:获取目标主机中的m条第一业务数据,其中,m为大于n的正整数;基于每条所述第一业务数据中的用户编号,确定每条所述第一业务数据关联的区域信息;筛选m条所述第一业务数据中关联的区域信息为指定区域信息的第一业务数据,得到n条所述第一业务数据。
13.进一步地,对每条所述第二业务数据进行解析,得到n条目标业务数据,包括:对n条所述第二业务数据中每条所述第二业务数据进行解析,得到该条第二业务数据的字段数据和该条第二业务数据的主键数据;基于每条所述第二业务数据的所述字段数据和该条第二业务数据的所述主键数据,确定n条所述目标业务数据。
14.进一步地,在从消息队列中获取目标主机的n条目标业务数据之后,还包括:基于每条目标业务数据中目标字段的字段数据,确定每条所述目标业务数据关联的路由数据;基于每条所述目标业务数据关联的路由数据,将每条所述目标业务数据存储至的数据库中。
15.根据本发明实施例的另一方面,还提供了一种基于数据库的数据清理装置,包括:获取单元,用于响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,所述目标业务数据包括:用于标识所述目标业务数据的主键数据,n为正整数;匹配单元,用于基于每条所述目标业务数据的主键数据,对每条所述目标业务数据和所述数据库中的业务数据进行匹配,得到匹配结果;清理单元,用于基于所述匹配结果对所述数据库中存储的业务数据进行清理。
16.进一步地,清理单元包括:第一删除子单元,用于若所述匹配结果指示所述数据库中存在未匹配到n条所述目标业务数据中的至少一个所述主键数据,则在所述数据库中删
除该主键数据的业务数据;第二删除子单元,用于若所述匹配结果指示n条所述目标业务数据中任一所述主键数据与所述数据库中的主键数据匹配成功,且该主键数据关联的所述目标业务数据的字段数据和该主键数据在数据库中的字段数据一致,则比较该主键数据关联的目标业务数据的最晚修改时刻和所述数据库中该主键数据关联的业务数据的修改时刻,并在该主键数据关联的目标业务数据的最晚修改时刻晚于所述数据库中该主键数据关联的业务数据的修改时刻的情况下,在所述数据库中删除该主键数据关联的业务数据;添加子单元,用于若所述匹配结果指示n条所述目标业务数据中任一所述主键数据与所述数据库中的主键数据匹配成功,且该主键数据关联的所述目标业务数据的字段数据和该主键数据在数据库中的字段数据不一致,则将该主键数据关联的所述数据库中的业务数据添加至目标数据表,其中,所述目标数据表用于存储需重新核对的业务数据。
17.进一步地,清理子单元还包括:核对子单元,用于在将该主键数据关联的所述数据库中的业务数据添加至目标数据表之后,对所述目标数据表中的业务数据进行核对,得到核对结果,并在所述数据库中锁定该主键数据关联的业务数据;更新子单元,用于在所述数据库中锁定该主键数据关联的业务数据之后,基于所述核对结果更新所述数据库中该主键数据关联的业务数据,并在所述数据库中该主键数据关联的业务数据更新后,在所述数据库中对该主键数据关联的业务数据进行解锁。
18.进一步地,数据清理装置还包括:处理单元,用于在从消息队列中获取目标主机的n条目标业务数据之前,获取n条第一业务数据,并更新每条所述第一业务数据的最晚修改时刻,得到n条第二业务数据,其中,所述第一业务数据包括:所述目标主机中的原始业务数据;解析单元,用于对每条所述第二业务数据进行解析,得到n条所述目标业务数据,并将每条所述目标业务数据添加至消息队列。
19.进一步地,所述第一业务数据至少包括:用户编号,获取单元包括:获取子单元,用于获取目标主机中的m条第一业务数据,其中,m为大于n的正整数;第一确定子单元,用于基于每条所述第一业务数据中的用户编号,确定每条所述第一业务数据关联的区域信息;筛选子单元,用于筛选m条所述第一业务数据中关联的区域信息为指定区域信息的第一业务数据,得到n条所述第一业务数据。
20.进一步地,解析单元包括:解析子单元,用于对n条所述第二业务数据中每条所述第二业务数据进行解析,得到该条第二业务数据的字段数据和该条第二业务数据的主键数据;第二确定子单元,用于基于每条所述第二业务数据的所述字段数据和该条第二业务数据的所述主键数据,确定n条所述目标业务数据。
21.进一步地,基于数据库的数据清理装置还包括:确定单元,用于在从消息队列中获取目标主机的n条目标业务数据之后,基于每条目标业务数据中目标字段的字段数据,确定每条所述目标业务数据关联的路由数据;存储单元,用于基于每条所述目标业务数据关联的路由数据,将每条所述目标业务数据存储至的数据库中。
22.根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的基于数据库的数据清理方法。
23.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设
备执行上述任意一项的基于数据库的数据清理方法。
24.在本发明中,响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,目标业务数据包括:用于标识目标业务数据的主键数据,n为正整数;基于每条目标业务数据的主键数据,对每条目标业务数据和数据库中的业务数据进行匹配,得到匹配结果;基于匹配结果对数据库中存储的业务数据进行清理。进而解决了相关技术中难以精准清理分布式数据库中需要清理的数据的技术问题。在本发明中,获取消息队列目标主机中的目标业务数据,根据主键唯一原则与数据库中的数据进行匹配,并根据匹配结果清理数据库中业务数据,避免了相关技术中只根据时间阈值确定数据库中需要清理的业务数据,精准度低,且容易造成锁表时间过长的情况,从而实现了提高数据清理效率和清理精准度的技术效果。
附图说明
25.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
26.图1是根据本发明实施例的一种可选的基于数据库的数据清理方法的流程图;
27.图2是根据本发明实施例的另一种可选的基于数据库的数据清理方法的流程图;
28.图3是根据本发明实施例的一种可选的基于数据库的数据清理装置的示意图;
29.图4是根据本发明实施例的一种电子设备的示意图。
具体实施方式
30.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
31.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
32.需要说明的是,本公开中的基于数据库的数据清理方法、装置、存储介质及电子设备可用于大数据领域在对数据库中的数据进行清理的情况下,也可用于除大数据领域之外的任意领域在对数据库中的数据进行清理的情况下,本公开中对基于数据库的数据清理方法、装置、存储介质及电子设备的应用领域不做限定。
33.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据,业务数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需
要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
34.本发明可以应用于各金融机构的各种软件产品、控制系统、客户端(包括但不限于:移动客户端、pc机等)控制系统,以软件产品为例进行示意说明,通过移动客户端上安装的软件产品,可以在数据库中对金融机构的业务内容(包括但不限于:转账、理财、基金、缴费、查账、广告、推荐等业务功能)的数据进行清理。
35.实施例一
36.根据本发明实施例,提供了一种可选的基于数据库的数据清理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
37.图1是根据本发明实施例的一种可选的基于数据库的数据清理方法的流程图,如图1所示,该方法包括如下步骤:
38.步骤s101,响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,目标业务数据包括:用于标识目标业务数据的主键数据,n为正整数。
39.上述的目标业务数据可以包括:用于标识目标业务数据的主键数据,目标业务数据可以为目标主机中涉及待清理范围的数据,是否涉及待清理范围可以基于业务数据中关联的用户编号所在的地区确定。为了精准清理数据库中的数据,避免数据落错库的情况,目标业务数据还可以包括在主机中的最晚修改时刻,以基于该最晚修改时刻对数据库中的数据进行清理。
40.步骤s102,基于每条目标业务数据的主键数据,对每条目标业务数据和数据库中的业务数据进行匹配,得到匹配结果。
41.上述的数据库的类型可以包括:分布式平台的数据库,在本实施例中,可以将大型主机通过消息队列发送到分布式数据库平台的数据进行解析后,与数据库中的业务数据根据唯一标识进行匹配。
42.需要说明的是,本实施例可以将每条目标业务数据的主键数据作为该目标业务数据的唯一标识,根据分布式平台数据和大型主机数据主键唯一的原则,将该目标业务数据与数据库中的业务数据进行匹配,匹配的内容可以包括但不限于:主键数据是否相同;在主键数据一致的情况下,还可以比较目标业务数据的各个字段的数据与该主键数据对应的数据库中的业务数据对应的各个字段的数据是否一致,在主键数据一致的情况下,还可以比较目标业务数据最晚修改时刻与该主键数据对应的数据库中的业务数据对应的最晚修改时刻,以得到该匹配结果。
43.步骤s103,基于匹配结果对数据库中存储的业务数据进行清理。
44.在本实施例中,可以依据该匹配是否成功,匹配成功的情况下,对应的业务数据的最后修改时间的先后,确定是否对数据库中的数据进行删除、更新、再次进行核对,根据核对结果对数据库中的业务数据进行处理等。
45.通过上述步骤,在本实施例中,获取消息队列中目标主机中的目标业务数据,根据主键唯一原则与数据库中的数据进行匹配,并根据匹配结果清理数据库中业务数据,避免了相关技术中只根据时间阈值确定数据库中需要清理的业务数据,精准度低,且容易造成
锁表时间过长的情况,从而实现了提高数据清理效率和清理精准度的技术效果。进而解决了相关技术中难以精准清理分布式数据库中需要清理的数据的技术问题。
46.可选地,基于匹配结果对数据库中存储的业务数据进行清理,包括:若匹配结果指示数据库中存在未匹配到n条目标业务数据中的至少一个主键数据,则在数据库中删除该主键数据的业务数据;若匹配结果指示n条目标业务数据中任一主键数据与数据库中的主键数据匹配成功,且该主键数据关联的目标业务数据的字段数据和该主键数据在数据库中的字段数据一致,则比较该主键数据关联的目标业务数据的最晚修改时刻和数据库中该主键数据关联的业务数据的修改时刻,并在该主键数据关联的目标业务数据的最晚修改时刻晚于数据库中该主键数据关联的业务数据的修改时刻的情况下,在数据库中删除该主键数据关联的业务数据;若匹配结果指示n条目标业务数据中任一主键数据与数据库中的主键数据匹配成功,且该主键数据关联的目标业务数据的字段数据和该主键数据在数据库中的字段数据不一致,则将该主键数据关联的数据库中的业务数据添加至目标数据表,其中,目标数据表用于存储需重新核对的业务数据。
47.下面以数据库为分布式平台的数据库为例进行说明:可以根据分布式平台数据库的业务数据和大型主机数据主键唯一的原则,匹配唯一索引(即主键数据),在数据成功匹配后,立即放开该索引字段,减少锁表时间。
48.具体地,唯一标识(即主键数据)匹配成功后,对比其他主要字段(对应于字段数据),若全部一致,则匹配成功;若主要字段不一致且唯一标识一致,则分布式平台数据库的数据存疑,将平台数据暂存到一张临时表(对应于目标数据表),后续核对后可进行清理。在分布式平台数据库筛选对应清理地区对应于最晚修改时刻早于当前大型主机原始数据(对应于目标业务数据)的最晚修改时刻的数据,并进行删除,例如:在分布式平台数据库筛选对应清理地区最后更新日期小于当前大型主机原始数据最后修改日期的数据,并进行删除。
49.若存在分布式平台数据库存在未匹配到大型主机原始数据(对应于目标业务数据)的数据,则该数据为错误冗余数据,可以直接进行删除,实现了降低数据库的锁表时长,提高数据清理的精准度和清理效率的技术效果。
50.可选地,在将该主键数据关联的数据库中的业务数据添加至目标数据表之后,还包括:对目标数据表中的业务数据进行核对,得到核对结果,并在数据库中锁定该主键数据关联的业务数据;在数据库中锁定该主键数据关联的业务数据之后,基于核对结果更新数据库中该主键数据关联的业务数据,并在数据库中该主键数据关联的业务数据更新后,在数据库中对该主键数据关联的业务数据进行解锁。
51.在本实施例中,可以对目标数据表中的业务数据进行核对,可以基于预设规则核对目标数据表中的业务数据是否为最新的数据,是否存在数据缺失、是否存在数据错误等,得到核对结果,在核对结果指示数据库中的业务数据有误,该业务数据需要更新的情况下,可以基于该业务数据的主键数据,在对应的数据库中锁定该主键数据关联的业务数据,并更新该业务数据,在数据库中该主键数据关联的业务数据更新后,在数据库中对该主键数据关联的业务数据进行解锁,避免了分布式数据库中的数据清理过程中,数据表锁定时间过长的情况,实现了降低数据锁定时间的技术效果。
52.可选地,在从消息队列中获取目标主机的n条目标业务数据之前,还包括:获取n条
第一业务数据,并更新每条第一业务数据的最晚修改时刻,得到n条第二业务数据,其中,第一业务数据包括:目标主机中的原始业务数据;对每条第二业务数据进行解析,得到n条目标业务数据,并将每条目标业务数据添加至消息队列。
53.在本实施例中,上述的n条第一业务数据可以为目标主机(例如:大型主机)中涉及待清理地区的业务数据,可以更新待清理地区的n条第一业务数据的最后修改时间,确保当前包含n条第一业务数据的数据表的时间戳最新。然后将目标主机中将涉及清理地区的数据用数据解析工具解析后得到的目标业务数据写入到消息队列中。
54.可选地,第一业务数据至少包括:用户编号,获取n条第一业务数据,包括:获取目标主机中的m条第一业务数据,其中,m为大于n的正整数;基于每条第一业务数据中的用户编号,确定每条第一业务数据关联的区域信息;筛选m条第一业务数据中关联的区域信息为指定区域信息的第一业务数据,得到n条第一业务数据。
55.在本实施例中,可以根据客户编号所在地区划分每次清理的范围,例如:可以获取目标主机中的m条第一业务数据,然后基于每条第一业务数据中的用户编号,确定每条第一业务数据关联的区域信息,若该条第一业务数据的区域信息涉及指定区域信息(即待清理范围的信息),则可以将第一业务数据作为n条第一业务数据中的其中之一,实现了精准确定涉及数据清理范围的业务数据的技术效果。
56.可选地,对每条第二业务数据进行解析,得到n条目标业务数据,包括:对n条第二业务数据中每条第二业务数据进行解析,得到该条第二业务数据的字段数据和该条第二业务数据的主键数据;基于每条第二业务数据的字段数据和该条第二业务数据的主键数据,确定n条目标业务数据。
57.在本实施例中,可以通过建立一条线程储存和传输某业务数据的唯一主键的全部信息,并将其作为该唯一主键的消息(即主键数据)。该线程可以将此消息由目标主机发送至分布式平台进行解析,得到第二业务数据的各个字段的字段数据,由每条第二业务数据的字段数据和该条第二业务数据的主键数据,组成该条第二业务数据对应的目标业务数据,达到了精准确定目标业务数据的目的,便于后续提高数据清理的精准度。
58.可选地,在从消息队列中获取目标主机的n条目标业务数据之后,还包括:基于每条目标业务数据中目标字段的字段数据,确定每条目标业务数据关联的路由数据;基于每条目标业务数据关联的路由数据,将每条目标业务数据存储至的数据库中。
59.在本实施例中,可以按照指定的字段确定对应目标业务数据的路由值(对应于路由数据),根据所得的路由值,将对应的目标业务数据写到具体的数据库(例如:分布式平台数据库),例如:目标业务数据中指定字段的数据(例如:指定字段内编号中某几位数字)可以用于指示存储该目标业务数据的对应分布式平台数据库。
60.将每条目标业务数据的主键数据作为该条目标业务数据的标识。基于该条目标业务数据的路由值,将所有的目标业务数据存储至各个平台分布式数据库,还可以新增字段记录该条目标业务数据所在的分布式数据库具体信息,后续存在含有该标识(主键数据)的数据,可以进行解析后直接发送到对应的分布式数据库,减少再次计算的耗时,并避免分布式数据库找不到旧数据,实现了提高业务数据落效率的技术效果。
61.图2是根据本发明实施例的另一种可选的基于数据库的数据清理方法的流程图,如图2所示,包括:
62.主机修改时间更新:更新大型主机的涉及清理地区的业务数据的最后修改时刻;
63.工具解析:通过解析工具解析大型主机中涉及清理地区的业务数据,并将解析得到的目标业务数据发送至消息队列;
64.数据落库:将消息队列中的目标业务数据根据该数据对应的路由存储至分布式平台数据库;
65.匹配索引:根据主键唯一原则,将目标业务数据中的主键数据域数据库中的业务数据进行匹配;在匹配到分布式平台数据库中的数据,删除更新时间小于主机时间的数据;在匹配结果后,即刻放开该字段,减少锁表时间,正常进行业务更新(更新过程中锁表,更新后解锁);在未匹配到分布式平台数据,删除该数据。
66.在本实施例中,可以通过客户编号所在地区划分每次清理的范围,更新大型主机待清理地区数据的最后修改时间,利用消息队列将数据写到分布式平台数据库。然后,对比分布式平台数据库的最后更新时间,即可判断出落错库的数据。判断出对应数据后,删除该行数据后立刻放开表数据,有效的减少锁表时间,也能同步提升分布式数据库性能容量。
67.通过大型主机表和分布式平台数据库表的核对,有效避免了只通过判断分布式平台数据库数据最后更新时间而删除实际有效数据的场景,利用大型主机表和分布式平台数据库单条且匹配唯一索引数据核对的方式,有效减少了数据占用时间,减少锁表时长,提升交易性能。通过消息队列的方式核对大型主机表与临时表数据,可以对增量数据进行实时核对。通过本实施例可以为各类分布式数据库系统提供冗余数据的优化方式。
68.实施例二
69.本技术实施例二提供了一种可选的基于数据库的数据清理装置,该数据清理装置中的各个实施单元对应于实施例一中的各个实施步骤。
70.图3是根据本发明实施例的一种可选的基于数据库的数据清理装置的示意图,如图3所示,该数据清理装置包括:获取单元31、匹配单元32以及清理单元33。
71.获取单元31,用于响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,目标业务数据包括:用于标识目标业务数据的主键数据,n为正整数;
72.匹配单元32,用于基于每条目标业务数据的主键数据,对每条目标业务数据和数据库中的业务数据进行匹配,得到匹配结果;
73.清理单元33,用于基于匹配结果对数据库中存储的业务数据进行清理。
74.在本技术实施例二提供的基于数据库的数据清理装置中,可以通过获取单元31,响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,目标业务数据包括:用于标识目标业务数据的主键数据,n为正整数,然后通过匹配单元32基于每条目标业务数据的主键数据,对每条目标业务数据和数据库中的业务数据进行匹配,得到匹配结果,之后通过清理单元33基于匹配结果对数据库中存储的业务数据进行清理。进而解决了相关技术中难以精准清理分布式数据库中需要清理的数据的技术问题。在本实施例中,获取消息队列中目标主机中的目标业务数据,根据主键唯一原则与数据库中的数据进行匹配,并根据匹配结果清理数据库中业务数据,避免了相关技术中只根据时间阈值确定数据库中需要清理的业务数据,精准度低,且容易造成锁表时间过长的情况,从而实现了提高数据清理效率和清理精准度的技术效果。
75.可选地,在本技术实施例二提供的基于数据库的数据清理装置中,清理单元包括:
第一删除子单元,用于若匹配结果指示数据库中存在未匹配到n条目标业务数据中的至少一个主键数据,则在数据库中删除该主键数据的业务数据;第二删除子单元,用于若匹配结果指示n条目标业务数据中任一主键数据与数据库中的主键数据匹配成功,且该主键数据关联的目标业务数据的字段数据和该主键数据在数据库中的字段数据一致,则比较该主键数据关联的目标业务数据的最晚修改时刻和数据库中该主键数据关联的业务数据的修改时刻,并在该主键数据关联的目标业务数据的最晚修改时刻晚于数据库中该主键数据关联的业务数据的修改时刻的情况下,在数据库中删除该主键数据关联的业务数据;添加子单元,用于若匹配结果指示n条目标业务数据中任一主键数据与数据库中的主键数据匹配成功,且该主键数据关联的目标业务数据的字段数据和该主键数据在数据库中的字段数据不一致,则将该主键数据关联的数据库中的业务数据添加至目标数据表,其中,目标数据表用于存储需重新核对的业务数据。
76.可选地,在本技术实施例二提供的基于数据库的数据清理装置中,清理子单元还包括:核对子单元,用于在将该主键数据关联的数据库中的业务数据添加至目标数据表之后,对目标数据表中的业务数据进行核对,得到核对结果,并在数据库中锁定该主键数据关联的业务数据;更新子单元,用于在数据库中锁定该主键数据关联的业务数据之后,基于核对结果更新数据库中该主键数据关联的业务数据,并在数据库中该主键数据关联的业务数据更新后,在数据库中对该主键数据关联的业务数据进行解锁。
77.可选地,在本技术实施例二提供的基于数据库的数据清理装置中,数据清理装置还包括:处理单元,用于在从消息队列中获取目标主机的n条目标业务数据之前,获取n条第一业务数据,并更新每条第一业务数据的最晚修改时刻,得到n条第二业务数据,其中,第一业务数据包括:目标主机中的原始业务数据;解析单元,用于对每条第二业务数据进行解析,得到n条目标业务数据,并将每条目标业务数据添加至消息队列。
78.可选地,在本技术实施例二提供的基于数据库的数据清理装置中,第一业务数据至少包括:用户编号,获取单元包括:获取子单元,用于获取目标主机中的m条第一业务数据,其中,m为大于n的正整数;第一确定子单元,用于基于每条第一业务数据中的用户编号,确定每条第一业务数据关联的区域信息;筛选子单元,用于筛选m条第一业务数据中关联的区域信息为指定区域信息的第一业务数据,得到n条第一业务数据。
79.可选地,在本技术实施例二提供的基于数据库的数据清理装置中,解析单元包括:解析子单元,用于对n条第二业务数据中每条第二业务数据进行解析,得到该条第二业务数据的字段数据和该条第二业务数据的主键数据;第二确定子单元,用于基于每条第二业务数据的字段数据和该条第二业务数据的主键数据,确定n条目标业务数据。
80.可选地,在本技术实施例二提供的基于数据库的数据清理装置中,基于数据库的数据清理装置还包括:确定单元,用于在从消息队列中获取目标主机的n条目标业务数据之后,基于每条目标业务数据中目标字段的字段数据,确定每条目标业务数据关联的路由数据;存储单元,用于基于每条目标业务数据关联的路由数据,将每条目标业务数据存储至的数据库中。
81.上述的基于数据库的数据清理装置还可以包括处理器和存储器,上述的获取单元31、匹配单元32以及清理单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
82.上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来获取消息队列中目标主机中的目标业务数据,根据主键唯一原则与数据库中的数据进行匹配,并根据匹配结果清理数据库中业务数据,避免了相关技术中只根据时间阈值确定数据库中需要清理的业务数据,精准度低,且容易造成锁表时间过长的情况,从而实现了提高数据清理效率和清理精准度的技术效果。
83.上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
84.根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的基于数据库的数据清理方法。
85.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的基于数据库的数据清理方法。
86.图4是根据本发明实施例的一种电子设备的示意图,如图4所示,本发明实施例提供了一种电子设备40,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述任意一项的基于数据库的数据清理方法。
87.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
88.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
89.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
90.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
91.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
92.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的
介质。
93.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种基于数据库的数据清理方法,其特征在于,包括:响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,所述目标业务数据包括:用于标识所述目标业务数据的主键数据,n为正整数;基于每条所述目标业务数据的主键数据,对每条所述目标业务数据和所述数据库中的业务数据进行匹配,得到匹配结果;基于所述匹配结果对所述数据库中存储的业务数据进行清理。2.根据权利要求1所述的数据清理方法,其特征在于,基于所述匹配结果对所述数据库中存储的业务数据进行清理,包括:若所述匹配结果指示所述数据库中存在未匹配到n条所述目标业务数据中的至少一个所述主键数据,则在所述数据库中删除该主键数据的业务数据;若所述匹配结果指示n条所述目标业务数据中任一所述主键数据与所述数据库中的主键数据匹配成功,且该主键数据关联的所述目标业务数据的字段数据和该主键数据在数据库中的字段数据一致,则比较该主键数据关联的目标业务数据的最晚修改时刻和所述数据库中该主键数据关联的业务数据的修改时刻,并在该主键数据关联的目标业务数据的最晚修改时刻晚于所述数据库中该主键数据关联的业务数据的修改时刻的情况下,在所述数据库中删除该主键数据关联的业务数据;若所述匹配结果指示n条所述目标业务数据中任一所述主键数据与所述数据库中的主键数据匹配成功,且该主键数据关联的所述目标业务数据的字段数据和该主键数据在数据库中的字段数据不一致,则将该主键数据关联的所述数据库中的业务数据添加至目标数据表,其中,所述目标数据表用于存储需重新核对的业务数据。3.根据权利要求2所述的数据清理方法,其特征在于,在将该主键数据关联的所述数据库中的业务数据添加至目标数据表之后,还包括:对所述目标数据表中的业务数据进行核对,得到核对结果,并在所述数据库中锁定该主键数据关联的业务数据;在所述数据库中锁定该主键数据关联的业务数据之后,基于所述核对结果更新所述数据库中该主键数据关联的业务数据,并在所述数据库中该主键数据关联的业务数据更新后,在所述数据库中对该主键数据关联的业务数据进行解锁。4.根据权利要求1所述的数据清理方法,其特征在于,在从消息队列中获取目标主机的n条目标业务数据之前,还包括:获取n条第一业务数据,并更新每条所述第一业务数据的最晚修改时刻,得到n条第二业务数据,其中,所述第一业务数据包括:所述目标主机中的原始业务数据;对每条所述第二业务数据进行解析,得到n条所述目标业务数据,并将每条所述目标业务数据添加至消息队列。5.根据权利要求4所述的数据清理方法,其特征在于,所述第一业务数据至少包括:用户编号,获取n条第一业务数据,包括:获取目标主机中的m条第一业务数据,其中,m为大于n的正整数;基于每条所述第一业务数据中的用户编号,确定每条所述第一业务数据关联的区域信息;筛选m条所述第一业务数据中关联的区域信息为指定区域信息的第一业务数据,得到n
条所述第一业务数据。6.根据权利要求4所述的数据清理方法,其特征在于,对每条所述第二业务数据进行解析,得到n条目标业务数据,包括:对n条所述第二业务数据中每条所述第二业务数据进行解析,得到该条第二业务数据的字段数据和该条第二业务数据的主键数据;基于每条所述第二业务数据的所述字段数据和该条第二业务数据的所述主键数据,确定n条所述目标业务数据。7.根据权利要求1所述的数据清理方法,其特征在于,在从消息队列中获取目标主机的n条目标业务数据之后,还包括:基于每条目标业务数据中目标字段的字段数据,确定每条所述目标业务数据关联的路由数据;基于每条所述目标业务数据关联的路由数据,将每条所述目标业务数据存储至的数据库中。8.一种基于数据库的数据清理装置,其特征在于,包括:获取单元,用于响应数据清理请求,从消息队列中获取目标主机的n条目标业务数据,其中,所述目标业务数据包括:用于标识所述目标业务数据的主键数据,n为正整数;匹配单元,用于基于每条所述目标业务数据的主键数据,对每条所述目标业务数据和所述数据库中的业务数据进行匹配,得到匹配结果;清理单元,用于基于所述匹配结果对所述数据库中存储的业务数据进行清理。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的基于数据库的数据清理方法。10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的基于数据库的数据清理方法。
技术总结
本发明公开了一种基于数据库的数据清理方法、装置、存储介质及电子设备。涉及大数据技术领域。其中,该方法包括:响应数据清理请求,从消息队列中获取目标主机的N条目标业务数据,其中,目标业务数据包括:用于标识目标业务数据的主键数据,N为正整数;基于每条目标业务数据的主键数据,对每条目标业务数据和数据库中的业务数据进行匹配,得到匹配结果;基于匹配结果对数据库中存储的业务数据进行清理。本发明解决了相关技术中难以精准清理分布式数据库中需要清理的数据的技术问题。据库中需要清理的数据的技术问题。据库中需要清理的数据的技术问题。
技术研发人员:马丽
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.08.23
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/