数据库分片数据处理方法、装置、计算机设备和存储介质与流程

未命名 07-23 阅读:86 评论:0
1.本技术涉及计算机技术
技术领域
:以及金融科技
技术领域
:,特别是涉及一种数据库分片数据处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
::2.随着计算机技术的发展,分布式系统广泛应用于各个业务系统。3.目前,在对分布式系统的数据库进行扩容时,常常将原来的数据库分片上的数据复制至新的数据库分片上。在数据库扩容完成后,需要对数据库分片之间存在的重复数据进行处理,避免重复数据占用较大的存储空间。然而,在对冗余数据进行清理时,由于数据库分片的增多,常常出现数据被误删或数据被错误保留的情况,使得对数据库分片数据的处理效率不高。4.因此,传统技术中存在对扩容后的数据库分片数据的处理效率不高的问题。技术实现要素:5.基于此,有必要针对上述技术问题,提供一种能够提高对扩容后的数据库分片数据的处理效率的数据库分片数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。6.一种数据库分片数据处理方法,其特征在于,方法包括:7.在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片;8.在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表;9.对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中。10.在其中一个实施例中,方法还包括:11.重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组;12.获取第一业务服务器组和第二业务服务器组的业务服务数据;业务服务数据为第一业务服务器组和第二业务服务器组上的任一业务服务所产生的数据;13.获取针对业务服务数据的数据路由策略配置信息,在业务服务数据对应的实际路由数据库分片号与数据路由策略配置信息所指示的理论路由数据库分片号一致的情况下,确定数据库分片扩容任务的任务状态为分片扩容完成。14.在其中一个实施例中,方法还包括:15.在业务服务数据对应的实际路由数据库分片号与理论路由数据库分片号不一致的情况下,修改数据路由策略配置信息;16.返回重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组的步骤,直至业务服务数据对应的实际路由数据库分片号和理论路由数据库分片号一致。17.在其中一个实施例中,在获取针对数据库分片扩容任务的数据处理配置表的步骤之后,方法还包括:18.将基于数据处理配置表中的目标数据处理配置记录创建的数据处理任务放入预创建的线程池中;目标数据处理配置记录为未完成处理的数据处理配置记录;19.在线程池内存在空闲线程的情况下,将任务执行优先级最高的数据处理任务对应的数据处理配置值传入至空闲线程中;空闲线程用于根据数据处理配置值执行数据处理任务,并生成数据回补语句;20.根据各空闲线程所生成的数据回补语句,生成数据回补文件;数据回补文件用于在接收到数据处理报错信息的情况下执行数据回补批量处理。21.在其中一个实施例中,数据处理报错信息包括数据误清理报错信息,数据误清理报错信息表征相应的数据表被错误清理,在接收到数据误清理过多报错信息的情况下,方法还包括:22.获取回补表配置文件;回补表配置文件包括至少一个待回补数据表;23.根据回补表配置文件和数据回补文件,将各待回补数据表重新插入至相应的数据库分片中。24.在其中一个实施例中,数据处理报错信息还包括数据漏清理报错信息,数据漏清理报错信息表征相应的数据表被错误保留,在接收到数据漏清理报错信息的情况下,方法还包括:25.根据数据漏清理报错信息,确定误保留数据表;26.将数据回补文件中的误保留数据表重新插入至相应的数据库分片中,并将数据处理配置表中各误保留数据表对应的数据处理配置记录的处理状态更改为未完成状态。27.在其中一个实施例中,数据处理配置记录包括数据保留方式字段值、指定保留数据库分片号字段值,对于任一数据处理配置记录,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中,包括:28.对于任一数据处理配置记录,根据数据保留方式字段值,确定目标数据路由方式;目标数据路由方式包括一致性哈希计算数据路由方式和尾号取模计算数据路由方式;29.按照目标数据路由方式计算待保留数据的数据路由值;30.根据数据路由值,将待保留数据路由至指定保留数据库分片号字段值所指示的数据库分片中。31.一种数据库分片数据处理装置,其特征在于,装置包括:32.检测模块,用于在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片;33.获取模块,用于在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表;34.保留模块,用于对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中。35.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现上述的方法的步骤。36.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述的方法的步骤。37.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现上述的方法的步骤。38.上述数据库分片数据处理方法、装置、计算机设备、存储介质和计算机程序产品,通过在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片;在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表;对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中;如此,可以在数据库分片扩容完成后,对各个数据库分片上的数据设置数据处理配置表,从而对各个数据库分片上的数据进行相应的处理,实现了对各个数据库表的处理可配置化,提高了对扩容后的数据库分片数据的处理效率。附图说明39.图1为一个实施例中数据库分片数据处理方法的应用环境图;40.图2为一个实施例中数据库分片数据处理方法的流程示意图;41.图3为一个实施例中一种数据库分片扩容前的业务系统数据同步方式图;42.图4为一个实施例中一种数据库停机扩容方法的流程示意图;43.图5为一个实施例中一张数据库的表结构图;44.图6为一个实施例中一种冗余数据清理处理流程图;45.图7为一个实施例中一种数据误清理时的数据处理流程图;46.图8为一个实施例中一种数据漏清理时的数据处理流程图;47.图9为另一个实施例中数据库分片数据处理方法的流程示意图;48.图10为一个实施例中数据库分片数据处理装置的结构框图;49.图11为一个实施例中计算机设备的内部结构图。具体实施方式50.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。51.需要说明的是,本技术公开的是一种数据库分片数据处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品可应用于金融科技
技术领域
:。52.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是本公开的一些方面相一致的装置和方法的例子。53.本技术实施例提供的数据库分片数据处理方法,可以应用于如图1所示的应用环境中。其中,业务系统102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片;服务器104在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表;服务器104对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中。服务器104确定业务系统102的数据处理任务完成。其中,业务系统102可以是各个业务容器、数据库容器。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。54.在一个实施例中,如图2所示,提供了一种数据库分片数据处理方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:55.步骤s202,在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片。56.其中,数据库分片扩容任务可以是指在原有数据库上进行分片扩容对应的任务。57.其中,任务状态可以是指数据库分片扩容完成或数据库分片未扩容完成的状态。58.其中,第一数据库分片可以是指原来的数据库分片。59.其中,第二数据库分片可以是指在原来的数据库分片的基础上进行扩容而得到的新的数据库分片。60.具体实现中,在执行数据库分片扩容任务的过程中,服务器检测数据库分片扩容任务的任务状态。61.为了便于本领域技术人员的理解,图3示例性地提供了一种数据库分片扩容前的业务系统数据同步方式图,其中,包括业务服务器组302、304、数据库服务器组306、308、310、312,注册中心314。62.其中,业务服务器组302和304是业务系统中完成业务模块功能的服务器群组,每个业务服务器群组包括三个容器,其中,两个容器为联机容器,一个容器为批量容器,各个联机容器的功能一样,用于完成联机业务c,接受rp请求,各个批量容器的功能一样,用于完成批量业务,执行耗时间、大数据量的任务。业务服务器组302中的1、2和业务服务器组304中的4、5为联机容器,业务服务器组302中的3和业务服务器组中的6是批量容器。63.其中,业务服务器组302的容器与数据库服务器组306相连,业务服务器组304的容器与数据库服务器组308相连,数据库服务器组306为数据库分片1,数据库服务器组308为数据库分片2,业务服务器组302内的容器为数据库分片1上的容器,业务服务器304内的容器为数据库分片2上的容器。64.其中,各联机容器与注册中心314相连,联机容器在注册中心314上注册和订阅服务,调用方可根据注册中心314上提供的服务进行rpc调用,并根据设置的分片算法路由到对应分片的联机容器上。65.其中,数据库服务器组306、308、310、312,是指一个一主三备的高可用数据库集群。正常情况下,每个容器读和写操作都是在主数据库上进行。当发生异常时,系统可以进行主备切换,使得读和写操作都在备库进行。主库与备库之间采用半同步的方式同步数据,以保障数据的实时性和最终一致性。数据库通常使用关系型数据库来保存数据,如mysql、oracle、db2等。数据库服务器组306、308分别与业务服务器组302、304相连,数据库服务器组306中的数据库服务器为数据库分片1,数据库服务器组308中的数据库服务器为数据库分片2。数据库服务器组310与数据库服务器组306相连,即数据库服务器组306内的主库下挂了三个半同步备库,还下挂一个异步备库,该异步备库是数据库服务器组310的主库。数据库服务器组312同数据库服务器组310一样,只是与数据库服务器组308进行相连。66.其中,注册中心314是服务的注册中心,记录了服务和服务地址的映射关系,常见分布式注册中心有zookeeper、eureka、consul、nacos,其具有服务分析、服务配置、服务健康检查等功能。注册中心314是一个高可用的注册中心集群,进行跨园区部署,保证当一个园区发生灾难性问题时,另一个园区仍可以正常运行。或者单个注册中心出现异常的时候,其他注册中心还可以提供稳定的功能,保证系统稳定运行。67.上述业务系统数据同步方式图中,在投产前,调用方通过注册中心314按照每个业务服务预设的分片算法进行rpc服务(一种针对大型企业的服务调用)调用,将交易请求路由到业务服务器组302和304内的一个容器。业务服务器组302和304的容器分别与数据库服务器组306和308相连结,在其上面进行数据的增删查改操作。在数据库服务器组306、308主库上做的数据变化会异步同步到数据库服务器组310、312的主库上,以此保证在投产前两主库数据的一致性。在投产停机时,容器下线,交易无法进入,数据库分片1、2的主库数据不会再变化。数据库服务器组310、312的主库会再将停机前秒级内的数据同步完成,到此完成全量数据的复制。数据库服务器组308的主库可以成为数据库分片3,数据库服务器组310的主库可以成为数据库分片4。68.步骤s204,在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表。69.其中,数据处理配置表可以是对数据库扩容完成后各个数据库分片上的冗余数据进行清理时对应的数据清理配置信息表。70.其中,目标数据表可以是指各个数据库分片上存储的数据库表。71.其中,数据处理配置记录可以是指数据处理配置表上的各条记录。每一条数据处理配置记录对应一个数据表的数据处理配置信息。72.具体实现中,服务器在确定数据库分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表,即确定对数据库分片扩容完成后的各个数据库分片上的数据表进行处理的数据处理配置信息。73.为了便于本领域技术人员理解,图4示例性地提供了一种数据库停机扩容方法的流程示意图。具体步骤包括:74.步骤1:当前已经到达预先定好的时间,开始停机扩容。75.步骤2:将图3的联机容器实施优雅停机,禁止新交易进入,等待旧交易执行完成,然后,将所有联机和批量容器下线。76.步骤3:观察各容器是否已经下线,下线后还需要查询图3的数据库服务器组306和308主库的表,观察是否还有新数据产生。若容器还未下线,则回到步骤2;若容器已经下线,表中没有新交易数据产生,则跳转到步骤4。77.步骤4:检查图3的数据库服务器组306主库与数据库服务器组310主库的数据是否一致,数据库服务器组308主库与数据库服务器组312主库的数据是否一致。若不一致,则表示还在同步中,等待同步完成,再次回到步骤4。若已经同步一致,则跳转到步骤5。78.步骤5:断开图3的数据库服务器组306主库与数据库服务器组310主库的异步复制,断开图3数据库服务器组308主库与数据库服务器组312主库的异步复制。数据库服务器组310主库为数据库分片3,数据库服务器组312主库为数据库分片4。79.步骤6:修改系统数据库参数和一致性哈希算法路由策略配置。80.步骤7:在启动业务服务器组302、304容器的基础上,增加两组业务服务器组,组内的这些容器分别与数据库分片3、分片4相连。81.步骤8:所有新容器启动后,按照不同业务服务的分片算法计算分片号,查询分片1~4中新产生的数据是否符合预期。若发现不符合,则跳转到步骤9;否则跳转到步骤10。82.步骤9:修改一致性哈希算法路由策略配置,策略实时生效,然后回到步骤8。83.步骤10:当数据库分片1与数据库分片3、数据库分片2与数据库分片4数据是一致的,且路由正确,表示当前数据库扩容已完成。84.上述的数据库扩容方法中,可以采用mysql的异步复制技术将原分片数据持续同步到新分片上,减轻了大容量数据库数据移行的操作难度,减少了系统的停机时间,降低业务影响。85.步骤s206,对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中。86.其中,待保留数据可以是指需要在对应的数据库分片中进行保留的数据。87.其中,数据路由方式可以是指将数据保留到哪一个数据库分片所对应的任务。88.具体实现中,对于任意一条数据处理配置记录,服务器在任一数据处理配置记录中的“指定保留分片号”字段值不为空的情况下,服务器将该数据处理配置记录指示的数据路由方式,将待保留数据路由至该数据处理配置记录指示的数据库分片中。89.为了便于本领域技术人员理解,图5示例性提供了一张数据库的表结构图,该表用于在数据库扩容完成后配置各个被清理表的冗余数据清理策略方法。该表中包括13个字段,具体包括:90.table_name:中文含义为表名,表示被清理表的表名。91.save_sets:中文含义为指定保留分片号,表示被清理表的数据需要保留在哪些分片中,多个分片使用英文逗号分割。例如,配置“1,2,3,4”表示分片1~4都需要保留被清理表的数据,配置“1,2”表示只保留分片1、2上的数据,若该字段留空则表示所有分片都不保留该被清理表的数据。92.save_type:中文含义为保留数据的方式,表示若被清理表的数据需要保留,则按照怎样的方式去保留。配置0表示不删除,全部保留,配置1表示按路由保留。当save_sets字段为空不保留该数据时候,save_type可以为空。93.route_type:中文含义为计算路由方式,表示当save_type为1按照路由保留数据时,该字段指定被清理表的每条数据的路由计算规则。配置0表示按照一致性哈希计算,1表示按照尾号取模计算,2表示两种都存在,需要根据情况判断。94.route_key_name:中文含义为计算路由的字段名,表示当save_type为1按照路由保留数据时候,根据该字段配置的字段名,从被清理表的每条数据的该字段中得到实际的路由值。当route_type为2表示两种分片算法都存在时候,该route_key_name字段需要填写两个路由字段名,两个字段名使用”|”进行分割。“|”符号前配置一致性哈希的字段名,符号后配置尾号取模字段名。95.route_condition:中文含义为尾号取模判断条件,表示当route_type为2两种分片算法都存在时候,根据该字段配置的内容判断被清理表的这条数据是否应该使用尾号取模计算路由。该字段格式为“尾号取模判断字段名|满足字段值”(多个值时使用英文逗号分割),即当被清理表的每条数据的尾号取模判断字段名的值符合"|"后面配置的字段值时,才使用尾号取模计算路由,否则使用一致性哈希计算路由。96.query_key_name:中文含义为查询字段,表示被清理表的全部字段名,多个字段使用英文逗号分割,该字段用于生成回补数据sql。97.query_where:中文含义为查询出要删除数据的where条件,表示被清理表中哪些数据需要进行删除。若需要全部删除,该字段可以为空。98.deal_status:中文含义为处理状态,表示被清理表的清理完成情况,0表示未完成清理,1表示已完成清理。99.cur_sn_id:中文含义为当前处理到的snid,表示被清理表已经处理过的snid,即比该字段的值少的snid都已经处理完成。在查询被清理表要清理的数据时候,按照snid升序排序,同时查询条件中增加判断snid必须大于该字段的值,即可完成哪些数据已经处理过的判断逻辑。通过该字段可以实现断点再续功能。100.insert_date:中文含义为插入时间,表示参数表中该被清理表记录登记的时间。101.last_upd_date:中文含义为最后修改时间,表示参数表中该被清理表记录最后处理过的时间。102.priority:中文含义为优先级,表示参数表中被清理表的数据处理任务优先级,数值越小优先级越高,即优先对该被清理表进行冗余数据清理。103.上述数据库分片数据处理方法、装置、计算机设备、存储介质和计算机程序产品,通过在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片;在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表;对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中;如此,可以在数据库分片扩容完成后,对各个数据库分片上的数据设置数据处理配置表,从而对各个数据库分片上的数据进行相应的处理,实现了对各个数据库表的可配置化数据处理,提高了对扩容后的数据库分片数据的处理效率。104.在另一个实施例中,方法还包括:重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组;获取第一业务服务器组和第二业务服务器组的业务服务数据;业务服务数据为第一业务服务器组和第二业务服务器组上的任一业务服务所产生的数据;获取针对业务服务数据的数据路由策略配置信息,在业务服务数据对应的实际路由数据库分片号与数据路由策略配置信息所指示的理论路由数据库分片号一致的情况下,确定数据库分片扩容任务的任务状态为分片扩容完成。105.其中,第一业务服务器组可以是指第一数据库分片所连接的业务服务器组,即是原来的数据库分片上连接的原来的业务服务器组,第一业务服务器组中包括多个业务容器。106.其中,第二业务服务器组可以是指第二数据库分片所连接的业务服务器组,即是新的数据库分片上连接的新的业务服务器组,第二业务服务器组中包括多个业务容器。107.其中,业务服务可以是在业务服务器上部署的业务。108.其中,业务服务数据可以是指在各个业务服务器上进行的业务服务所产生的业务处理数据。109.其中,数据路由策略配置信息可以是指扩容后的各个业务服务的数据路由方式进行配置时所对应的配置信息。110.其中,实际路由数据库分片号可以是指在重新启动各业务服务器后所产生的业务服务数据实际路由到的数据库分片号。111.其中,理论路由数据库分片号可以是指数据路由策略配置信息上设置的业务服务数据理论路由到的数据库分片号。112.具体实现中,服务器重新启动第一数据库分片所连接的第一业务服务器组和第二数据库分片所连接的第二业务服务器组,服务器获取第一业务服务器组和第二业务服务器组重新启动后不同业务服务的业务服务数据,在业务服务数据实际路由到的数据库分片号与数据路由策略配置信息上业务服务数据理论上路由到的数据库分片号一致的情况下,服务器确定数据库分片扩容任务的任务状态为分片扩容完成。113.本实施例的技术方案,通过重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组;获取第一业务服务器组和第二业务服务器组的业务服务数据;业务服务数据为第一业务服务器组和第二业务服务器组上的任一业务服务所产生的数据;获取针对业务服务数据的数据路由策略配置信息,在业务服务数据对应的实际路由数据库分片号与数据路由策略配置信息所指示的理论路由数据库分片号一致的情况下,确定数据库分片扩容任务的任务状态为分片扩容完成;如此,可以实现根据业务服务数据实际路由到的数据库分片和理论路由到的数据库分片,准确地确定当前数据库扩容是否完成。114.在另一个实施例中,方法还包括:在业务服务数据对应的实际路由数据库分片号与理论路由数据库分片号不一致的情况下,修改数据路由策略配置信息;返回重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组的步骤,直至业务服务数据对应的实际路由数据库分片号和理论路由数据库分片号一致。115.具体实现中,服务器在业务服务数据实际路由到的数据库分片号与数据路由策略配置信息上业务服务数据理论上路由到的数据库分片号不一致的情况下,服务器返回重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组的步骤,直至业务服务数据实际路由到的数据库分片号与数据路由策略配置信息上业务服务数据理论上路由到的数据库分片号一致。116.本实施例的技术方案,通过在业务服务数据对应的实际路由数据库分片号与理论路由数据库分片号不一致的情况下,修改数据路由策略配置信息;返回重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组的步骤,直至业务服务数据对应的实际路由数据库分片号和理论路由数据库分片号一致;如此,可以在数据路由策略配置信息出错导致数据扩容失败的情况下,重新修改数据路由策略配置信息,重新进行数据路由信息校验,提高了数据库分片扩容效率。117.在另一个实施例中,在获取针对数据库分片扩容任务的数据处理配置表的步骤之后,方法还包括:将基于数据处理配置表中的目标数据处理配置记录创建的数据处理任务放入预创建的线程池中;目标数据处理配置记录为未完成处理的数据处理配置记录;在线程池内存在空闲线程的情况下,将任务执行优先级最高的数据处理任务对应的数据处理配置值传入至空闲线程中;空闲线程用于根据数据处理配置值执行数据处理任务,并生成数据回补语句;根据各空闲线程所生成的数据回补语句,生成数据回补文件;数据回补文件用于在接收到数据处理报错信息的情况下执行数据回补批量处理。118.其中,数据处理任务可以是指线程接收到的数据处理配置记录所对应的数据处理任务。119.其中,数据处理配置值可以是指对需要处理的数据进行数据处理时对应的处理规则。120.其中,数据回补语句可以是sql语句。121.其中,数据回补文件可以是指由所有数据回补语句所组成的文件,数据回补文件可以是sql文件,其中包括各个被清理表的update语句(一种数据库结构化查询语句)。122.其中,数据处理报错信息可以是指数据误清理报错信息和数据漏清理保存信息。123.具体实现中,服务器将数据处理配置表中未完成处理的数据处理配置记录作为一个数据处理任务放入至预先创建的线程池中,服务器在确定线程池内存在空闲线程的情况下,将任务执行优先级最高的数据处理任务优先放入空闲线程中,其中,空闲线程在接收到数据处理任务后,会根据相应的数据处理配置记录所对应的数据处理配置值执行数据处理任务,并生成数据回补语句,服务器根据各空闲线程所生成的数据回补语句,生成数据回补文件。124.实际应用中,为了便于本领域技术人员理解,图6示例性地提供了一种根据图5的数据库的表结构图进行冗余数据清理处理流程图,其具体步骤包括:125.步骤1:数据库扩容完成,在批量容器上执行冗余数据清理批量作业。126.步骤2:将数据处理配置表中处理状态是0的未完成数据处理配置记录,按照优先级升序排序查询出来。127.步骤3:创建一个固定大小的线程池。128.步骤4:将查询出来的未完成数据处理配置记录当做一个任务放入线程池中。129.步骤5:线程池内的空闲线程获取到一个任务,根据任务传入的未完成数据处理配置记录,按照记录配置的数据处理配置值进行冗余数据清理,被清理的数据会生成一个sql语句上传到文件服务器中做回补使用。清理完成后,将该数据处理配置记录的处理状态更新为1已完成。若当前线程池中暂无空闲线程,则等待其他任务执行完成。130.步骤6:判断线程池中是否还存在未执行的任务,如果都已执行完成则跳转到步骤7;否则,返回步骤5。131.步骤7:清理结束,冗余数据清理批量作业运行完成。132.通过上述步骤1-7,完成对扩容后数据库分片的冗余数据清理。133.本实施例的技术方案,通过将基于数据处理配置表中的目标数据处理配置记录创建的数据处理任务放入预创建的线程池中;目标数据处理配置记录为未完成处理的数据处理配置记录;在线程池内存在空闲线程的情况下,将任务执行优先级最高的数据处理任务对应的数据处理配置值传入至空闲线程中;空闲线程用于根据数据处理配置值执行数据处理任务,并生成数据回补语句;根据各空闲线程所生成的数据回补语句,生成数据回补文件;数据回补文件用于在接收到数据处理报错信息的情况下执行数据回补批量处理;如此,可以通过多线程执行数据处理任务,提高了扩容后数据库分片的数据处理效率。134.在另一个实施例中,数据处理报错信息包括数据误清理报错信息,数据误清理报错信息表征相应的数据表被错误清理,在接收到数据误清理过多报错信息的情况下,方法还包括:获取回补表配置文件;回补表配置文件包括至少一个待回补数据表;根据回补表配置文件和数据回补文件,将各待回补数据表重新插入至相应的数据库分片中。135.其中,回补表配置文件可以是一个txt文件,回补表配置文件中配置了需要回补的被清理表的表名,其中,每一行配置一个数据库表名。136.其中,待回补数据表可以是相应数据库分片上应当保留但被错误清理的数据表。137.具体实现中,服务器获取回补表配置文件,服务器读取回补表配置文件中每一行的数据库表名,并判断回补表配置文件是否读取完成,在回补表配置文件读取完成的情况下,服务器执行数据回补文件,更新数据处理配置表各待回补数据表对应的数据处理配置记录中的数据处理配置值和处理状态,服务器重新调用空闲线程执行该数据处理配置记录对应的数据处理任务,以将待回补数据表重新插入至相应的数据库分片中。138.为了便于本领域技术人员理解,图7示例性地提供了一种数据误清理时的数据处理流程图,具体包括:139.步骤1:当某个被清理表清理完成后,在确定数据配置的清理规则有误或系统开始出现大量原记录找不到的报错时候,批量容器开始执行数据回补处理批量。140.步骤2:登录回补sql文件所在的文件服务器,切换到/clean/backoff目录。141.步骤3:在/clean/backoff目录上传回补表配置文件和清理参数表sql文件。其中,回补表配置文件是一个txt文件,该txt文件配置了需要回补的被清理表的表名,每一行配置一个表名。清理参数表sql文件是被清理表的update语句,用于更新清理参数表该记录的配置参数和状态。142.步骤4:使用通过linux的cat命令读取回补表配置文件并使用read命令读取文件的每一行内容。143.步骤5:判断回补表配置文件是否读取完成,若读取完成则跳转到步骤8,若没有读取完成则跳转到步骤s406。144.步骤6:切换到“/clean/当前执行日期/读取到的表名”目录。145.步骤7:获取“/clean/当前执行日期/读取到的表名”目录下的所有属于当前批量容器对应分片号(回补文件的文件名中含有当时执行清理的批量容器分片号)的回补sql文件,使用mysql命令执行这些sql文件,重新将数据插入回数据库中。全部文件执行完成后,回到步骤5。146.步骤8:使用mysql命令执行清理参数表sql文件,更新清理参数表这些被清理表的配置参数和状态。147.步骤9:重新执行冗余数据清理批量作业,重新清理步骤8所涉及的被清理表。148.步骤10:数据回补处理批量执行完成。149.本实施例的技术方案,通过获取回补表配置文件;回补表配置文件包括至少一个待回补数据表;根据回补表配置文件和数据回补文件,将各待回补数据表重新插入至相应的数据库分片中;如此,可以将被错误清理的数据表重新插入相应数据库分片中,并重新执行相应的数据处理任务,提高了数据处理效率,使得各业务服务更为稳定和安全。150.在另一个实施例中,数据处理报错信息还包括数据漏清理报错信息,数据漏清理报错信息表征相应的数据表被错误保留,在接收到数据漏清理报错信息的情况下,方法还包括:根据数据漏清理报错信息,确定误保留数据表;将数据回补文件中的误保留数据表重新插入至相应的数据库分片中,并将数据处理配置表中各误保留数据表对应的数据处理配置记录的处理状态更改为未完成状态。151.其中,误保留数据表可以是在数据清理过程中需要删除但没有正确删除的数据库表。152.其中,处理状态可以是未完成状态和完成状态,其中,未完成状态表征数据处理配置记录对应的数据处理任务未执行完成,完成状态表征数据处理配置记录对应的数据处理任务执行完成。153.具体实现中,服务器确定被错误保留在相应数据库分片上的数据表,即服务器确定误保留数据表,服务器将数据回补文件中的误保留数据表重新插入至相应数据库分片上,再将数据处理配置表中各误保留数据表对应的数据处理配置记录的处理状态更改为未完成状态。154.为了便于本领域技术人员的理解,图8示例性地提供了一种数据漏清理时的数据处理流程图,该数据处理方法的步骤具体包括:155.步骤1:在检测到对业务有影响的表数据未被清理(如涉及账务的表,若两个分片都有一样的数据,则日终会同时入账两笔导致账务异常),开始执行数据补清理批量。156.步骤2:登录回补sql文件所在的文件服务器,切换到/clean/backoff目录。157.步骤3:在/clean/backoff目录上传清理参数表sql文件。其中,清理参数表sql文件是被清理表的update语句,用于更新清理参数表该记录的配置参数和状态,或者新增被清理表的记录。158.步骤4:使用mysql命令执行清理参数表sql文件。159.步骤5:重新执行冗余数据清理批量作业,重新清理步骤4所涉及的被清理表。160.步骤6:数据补清理批量执行完成。161.上述图7和图8所示的数据误清理和漏清理时的数据回退方法,能够对不同场景的不同情况执行不同的回退方法,能够降低业务风险,保证生产的稳定性和安全性。162.本实施例的技术方案,通过根据数据漏清理报错信息,确定误保留数据表;将数据回补文件中的误保留数据表重新插入至相应的数据库分片中,并将数据处理配置表中各误保留数据表对应的数据处理配置记录的处理状态更改为未完成状态;如此,可以将被错误保留的的数据表重新进行清理,提高了数据处理效率,使得各业务服务更为稳定和安全。163.在另一个实施例中,数据处理配置记录包括数据路由方式字段值、指定保留数据库分片号字段值,对于任一数据处理配置记录,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中,包括:对于任一数据处理配置记录,根据数据路由方式字段值,确定目标数据路由方式;目标数据路由方式包括一致性哈希计算数据路由方式和尾号取模计算数据路由方式;按照目标数据路由方式计算待保留数据的数据路由值;根据数据路由值,将待保留数据路由至指定保留数据库分片号字段值所指示的数据库分片中。164.其中,数据路由方式字段值可以取0、1、2,当该字段值配置“0”时表示按照一致性哈希计算数据路由方式,当该该字段值配置“1”时表示按照尾号取模计算数据路由方式,当该字段值配置“2”时表示按照一致性哈希计算数据路由方式和按照尾号取模计算数据路由方式,而具体采用哪一种需要根据情况进行确定。165.其中,指定保留数据库分片号字段值可以取1,2,3,4,当该字段值配置“1,2,3,4”时表示数据库分片1~4需要保留待保留数据,当该字段值配置“1,2”时表示数据库分片1和2需要保留待保留数据,当该字段值为空则表示所有数据库分片都不保留该数据。166.其中,数据路由方式可以是指确定如何将待保留数据路由到相应数据库分片的方式。167.具体实现中,对于任一数据处理配置记录,服务器根据该数据处理配置记录中的数据路由方式字段值,确定该数据处理配置记录所对应的待保留数据所需采用的数据路由方式是一致性哈希计算数据路由方式或尾号取模计算数据路由方式,服务器按照相应的数据路由方式计算待保留数据的数据路由值,服务器根据数据路由值,将待保留数据路由至该数据处理配置记录中指定保留数据库分片号字段值所指示的数据库分片中。168.为了便于本领域技术人员理解,下述提供了一种线程进行冗余数据清理的具体步骤,包括:169.步骤1:空闲线程接收到任务,开始工作。170.步骤2:根据当前任务传入的数据处理配置记录a,获取a的“指定保留分片号值”的值。171.步骤3:判断当前批量容器所在的分片号是否在a的“指定保留数据库分片号字段值”中,若在表示该分片中a对应“表名”的数据需要保留,则跳转到4;若不在表示这些数据需要全部删除,则跳转到5。172.步骤4:判断a的“数据路由方式字段值”是否为1,若是表示需要按照分片算法来计算a对应“表名”的数据的最终分片号,则跳转到步骤5;若不是,则表示这些数据全部保留不清理,跳转到步骤21。173.步骤5:根据a的“当前处理到的snid”(cur_sn_id)、“查询出要删除数据的where条件”(query_where)、“表名”(table_name)、“查询字段”(query_key_name),开始按照snid升序排序查询被清理表的记录,每次取500条。对应的mybatis(java的持久层框架,用于对数据库进行增删查改等操作)语法语句为:[0174][0175]步骤6:判断是否能查询到被清理表的数据,若能查到表示该表数据还没有遍历完成,则跳转到步骤7;若不能查到,表示被清理表的数据已经全部遍历处理完成,则跳转到步骤21。[0176]步骤7:遍历步骤5查到的全部记录(最多500条),判断这些记录是否遍历完成,若遍历完成跳转到步骤19;若没有遍历完成则跳转步骤8。下面称每次遍历的单条记录为记录b。[0177]步骤8:再次判断当前批量容器所在的分片号是否在a的“指定保留数据库分片号字段值”中,若在表示被清理表在当前分片中的数据需要保留,那么跳转步骤9进一步判断a的“计算路由方式”的值;若不在表示该分片里被清理表的数据需要全部删除,则走步骤s317。[0178]步骤9:判断a的“数据路由方式字段值”的值,若是1表示记录b需要使用“按照尾号取模计算数据路由方式”分片算法来计算最终分片号,则跳转到步骤12;若2表示被清理表的数据使用了两种分片算法落库,需要进一步判断哪种情况使用“按照尾号取模计算数据路由方式”分片算法,跳转至步骤10;若是0表示被记录b需要使用“一致性哈希计算数据路由方式”分片算法来计算最终分片号,则跳转到步骤13。[0179]步骤10:获取a的“尾号取模判断条件”的值,使用“|”对值进行分割得到两部分内容。第一部分是被清理表中的某个字段名n,用于获取记录b中该字段名的值。第二部分为条件值列表l,多个值时候使用英文逗号分割,即记录b中该字段名的值符合条件值列表的时候才使用“按照尾号取模计算数据路由方式”分片算法。[0180]步骤11:判断记录b对应字段名n的值是否在条件值列表l中,若在则表示当前记录b需要使用“按照尾号取模计算数据路由方式”分片算法来计算最终分片号,跳转到步骤12;若不在则表示记录b需要使用“一致性哈希计算数据路由方式”分片算法来计算最终分片号,跳转到步骤13。[0181]步骤12:根据a的“计算路由的字段名”的值,获取记录b在该字段的实际值v1。若a的“计算路由的字段名”为2时候,“计算路由的字段名”的值需要使用“|”进行分割得到两部分内容。第一部分是使用“一致性哈希计算数据路由方式”分片算法来计算的字段名;第二部分是使用“尾号取模计算数据路由方式”分片算法来计算的字段名,该步骤使用的是第二部分的字段名。[0182]步骤13:根据a的“计算路由的字段名”的值,获取记录b在该字段的实际值v2。若a的“计算路由方式”为2时候,“计算路由的字段名”的值需要使用“|”进行分割得到两部分内容。第一部分是使用“一致性哈希计算数据路由方式”分片算法来计算的字段名,该步骤使用的是第一部分的字段名;第二部分是使用“尾号取模计算数据路由方式”分片算法来计算的字段名。[0183]步骤14:截取v1的后3位对分片总数取模得到最终的分片号。[0184]步骤15:对v2使用“一致性哈希”算法得到哈希值,再根据一致性哈希算法路由策略配置得到最终的分片号。[0185]步骤16:判断最终的分片号是否与当前批量容器的分片号一致,若是则表示记录b在扩容后按照新的分片算法还是路由到当前的分片号,记录b无需删除,回到步骤7;若不是,则表明记录b在扩容后不属于当前分片,应该进行删除,跳转到步骤17。[0186]步骤17:根据a的“查询字段”和记录b在这些字段上对应的值,生成一个insert类型的sql语句,并将该语句写到回补文件中。回补文件的命名为:a的“表名”+”_”+当前批量容器分片号+当前时间戳+”.bin”,后续可以根据文件名就得知是哪个被清理表在哪个分片上何时被清理的数据。该文件中最多只有500条insert语句,因为每次只查询最多500条记录。在每次遍历完一批数据后,都会再次生成一个新的sql文件。[0187]步骤18:删除记录b,回到步骤7,重新取下一条记录。[0188]步骤19:步骤5查到的全部记录都已经遍历完成,更新a的“当前处理到的snid”为最后一条记录b的snid值。这样有利于即使批量容器崩溃或任务停止等问题出现,后续重新执行批量也可以从当前snid开始,达到一个断点再续的功能,避免资源的浪费。[0189]步骤20:步骤5查到的全部记录都已经遍历完成,将本次循环的sql文件上传到文件服务器上作为后续回补数据使用(上传的文件服务器文件夹命名为/clean/当前执行日期/a的“表名”),回到步骤5,继续查询记录。[0190]步骤21:a对应的被清理表已经全部遍历完成,更新a的“处理状态”为1已完成。[0191]步骤22:任务结束。[0192]本实施例的技术方案,对于任一数据处理配置记录,通过根据数据路由方式字段值,确定目标数据路由方式;目标数据路由方式包括一致性哈希计算数据路由方式和尾号取模计算数据路由方式;按照目标数据路由方式计算待保留数据的数据路由值;根据数据路由值,将待保留数据路由至指定保留数据库分片号字段值所指示的数据库分片中;如此,可以将待保留数据准确地路由到指定数据库分片中,将除了指定数据库分片外的其他数据库分片上的待保留数据进行清理,提高了扩容后数据库分片数据的数据处理效率。[0193]在另一个实施例中,如图9所示,提供了一种数据库分片数据处理方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:[0194]步骤s902,在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片。[0195]步骤s904,在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表。[0196]步骤s906,对于任一所述数据处理配置记录,根据所述数据路由方式字段值,确定目标数据路由方式;所述目标数据路由方式包括一致性哈希计算数据路由方式和尾号取模计算数据路由方式。[0197]步骤s908,按照所述目标数据路由方式计算所述待保留数据的数据路由值。[0198]步骤s910,根据所述数据路由值,将所述待保留数据路由至所述指定保留数据库分片号字段值所指示的数据库分片中。[0199]需要说明的是,上述步骤的具体限定可以参见上文对一种数据库分片数据处理方法的具体限定。[0200]应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。[0201]基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的数据库分片数据处理方法的数据库分片数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库分片数据处理装置实施例中的具体限定可以参见上文中对于数据库分片数据处理方法的限定,在此不再赘述。[0202]在一个实施例中,如图10所示,提供了一种数据库分片数据处理装置,包括:[0203]检测模块1002,用于在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容第一数据库分片;[0204]获取模块1004,用于在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;目标数据表为第一数据库分片和第二数据库分片中的任意一个数据表;[0205]保留模块1006,用于对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中。[0206]在其中一个实施例中,装置还包括:重启模块,具体用于重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组;获取第一业务服务器组和第二业务服务器组的业务服务数据;业务服务数据为第一业务服务器组和第二业务服务器组上的任一业务服务所产生的数据;获取针对业务服务数据的数据路由策略配置信息,在业务服务数据对应的实际路由数据库分片号与数据路由策略配置信息所指示的理论路由数据库分片号一致的情况下,确定数据库分片扩容任务的任务状态为分片扩容完成。[0207]在其中一个实施例中,装置还包括:修改模块,具体用于在业务服务数据对应的实际路由数据库分片号与理论路由数据库分片号不一致的情况下,修改数据路由策略配置信息;返回重启第一数据库分片连接的第一业务服务器组以及第二数据库分片连接的第一业务服务器组的步骤,直至业务服务数据对应的实际路由数据库分片号和理论路由数据库分片号一致。[0208]在其中一个实施例中,装置还包括:执行模块,具体用于将基于数据处理配置表中的目标数据处理配置记录创建的数据处理任务放入预创建的线程池中;目标数据处理配置记录为未完成处理的数据处理配置记录;在线程池内存在空闲线程的情况下,将任务执行优先级最高的数据处理任务对应的数据处理配置值传入至空闲线程中;空闲线程用于根据数据处理配置值执行数据处理任务,并生成数据回补语句;根据各空闲线程所生成的数据回补语句,生成数据回补文件;数据回补文件用于在接收到数据处理报错信息的情况下执行数据回补批量处理。[0209]在其中一个实施例中,数据处理报错信息包括数据误清理报错信息,数据误清理报错信息表征相应的数据表被错误清理,在接收到数据误清理过多报错信息的情况下,装置还包括:插入模块,具体用于获取回补表配置文件;回补表配置文件包括至少一个待回补数据表;根据回补表配置文件和数据回补文件,将各待回补数据表重新插入至相应的数据库分片中。[0210]在其中一个实施例中,数据处理报错信息还包括数据漏清理报错信息,数据漏清理报错信息表征相应的数据表被错误保留,在接收到数据漏清理报错信息的情况下,装置还包括:确定模块,具体用于根据数据漏清理报错信息,确定误保留数据表;将数据回补文件中的误保留数据表重新插入至相应的数据库分片中,并将数据处理配置表中各误保留数据表对应的数据处理配置记录的处理状态更改为未完成状态。[0211]在其中一个实施例中,数据处理配置记录包括数据路由方式字段值、指定保留数据库分片号字段值,保留模块1006,具体用于对于任一数据处理配置记录,根据数据路由方式字段值,确定目标数据路由方式;目标数据路由方式包括一致性哈希计算数据路由方式和尾号取模计算数据路由方式;按照目标数据路由方式计算待保留数据的数据路由值;根据数据路由值,将待保留数据路由至指定保留数据库分片号字段值所指示的数据库分片中。[0212]上述数据库分片数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。[0213]在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据库分片数据处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库分片数据处理方法。[0214]本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0215]在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数据库分片数据处理方法的步骤。此处一种数据库分片数据处理方法的步骤可以是上述各个实施例的一种数据库分片数据处理方法中的步骤。[0216]在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数据库分片数据处理方法的步骤。此处一种数据库分片数据处理方法的步骤可以是上述各个实施例的一种数据库分片数据处理方法中的步骤。[0217]在一个实施例中,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种数据库分片数据处理方法的步骤。此处一种数据库分片数据处理方法的步骤可以是上述各个实施例的一种数据库分片数据处理方法中的步骤。[0218]需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。[0219]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistiverandomaccessmemory,mram)、铁电存储器(ferroelectricrandomaccessmemory,fram)、相变存储器(phasechangememory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。[0220]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0221]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。当前第1页12当前第1页12
技术特征:
1.一种数据库分片数据处理方法,其特征在于,所述方法包括:在执行数据库分片扩容任务的过程中,检测所述数据库分片扩容任务的任务状态;所述数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容所述第一数据库分片;在所述任务状态表征分片扩容完成的情况下,获取针对所述数据库分片扩容任务的数据处理配置表;所述数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;所述目标数据表为所述第一数据库分片和所述第二数据库分片中的任意一个数据表;对于任一所述数据处理配置记录,在所述任一数据处理配置记录表征所述目标数据表存在待保留数据的情况下,按照所述任一数据处理配置记录指示的数据路由方式,将所述待保留数据路由至所述任一数据处理配置记录所指示的数据库分片中。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:重启所述第一数据库分片连接的第一业务服务器组以及所述第二数据库分片连接的第一业务服务器组;获取所述第一业务服务器组和所述第二业务服务器组的业务服务数据;所述业务服务数据为所述第一业务服务器组和所述第二业务服务器组上的任一业务服务所产生的数据;获取针对所述业务服务数据的数据路由策略配置信息,在所述业务服务数据对应的实际路由数据库分片号与所述数据路由策略配置信息所指示的理论路由数据库分片号一致的情况下,确定所述数据库分片扩容任务的任务状态为分片扩容完成。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述业务服务数据对应的实际路由数据库分片号与所述理论路由数据库分片号不一致的情况下,修改所述数据路由策略配置信息;返回所述重启所述第一数据库分片连接的第一业务服务器组以及所述第二数据库分片连接的第一业务服务器组的步骤,直至所述业务服务数据对应的所述实际路由数据库分片号和所述理论路由数据库分片号一致。4.根据权利要求1所述的方法,其特征在于,在所述获取针对所述数据库分片扩容任务的数据处理配置表的步骤之后,所述方法还包括:将基于所述数据处理配置表中的目标数据处理配置记录创建的数据处理任务放入预创建的线程池中;所述目标数据处理配置记录为未完成处理的所述数据处理配置记录;在所述线程池内存在空闲线程的情况下,将任务执行优先级最高的所述数据处理任务对应的数据处理配置值传入至所述空闲线程中;所述空闲线程用于根据所述数据处理配置值执行所述数据处理任务,并生成数据回补语句;根据各所述空闲线程所生成的数据回补语句,生成数据回补文件;所述数据回补文件用于在接收到数据处理报错信息的情况下执行数据回补批量处理。5.根据权利要求4所述的方法,其特征在于,所述数据处理报错信息包括数据误清理报错信息,所述数据误清理报错信息表征相应的数据表被错误清理,所述在接收到所述数据误清理过多报错信息的情况下,所述方法还包括:获取回补表配置文件;所述回补表配置文件包括至少一个待回补数据表;根据所述回补表配置文件和所述数据回补文件,将各所述待回补数据表重新插入至相应的数据库分片中。
6.根据权利要求4所述的方法,其特征在于,所述数据处理报错信息还包括数据漏清理报错信息,所述数据漏清理报错信息表征所述相应的数据表被错误保留,在接收到所述数据漏清理报错信息的情况下,所述方法还包括:根据所述数据漏清理报错信息,确定误保留数据表;将所述数据回补文件中的误保留数据表重新插入至相应的数据库分片中,并将所述数据处理配置表中各所述误保留数据表对应的所述数据处理配置记录的处理状态更改为未完成状态。7.根据权利要求1所述的方法,其特征在于,所述数据处理配置记录包括数据保留方式字段值、指定保留数据库分片号字段值,所述对于任一所述数据处理配置记录,按照所述任一数据处理配置记录指示的数据路由方式,将所述待保留数据路由至所述任一数据处理配置记录所指示的数据库分片中,包括:对于任一所述数据处理配置记录,根据所述数据保留方式字段值,确定目标数据路由方式;所述目标数据路由方式包括一致性哈希计算数据路由方式和尾号取模计算数据路由方式;按照所述目标数据路由方式计算所述待保留数据的数据路由值;根据所述数据路由值,将所述待保留数据路由至所述指定保留数据库分片号字段值所指示的数据库分片中。8.一种数据库分片数据处理装置,其特征在于,所述装置包括:检测模块,用于在执行数据库分片扩容任务的过程中,检测所述数据库分片扩容任务的任务状态;所述数据库分片扩容任务用于采用异步复制方式将第一数据库分片中的数据复制至第二数据库分片以扩容所述第一数据库分片;获取模块,用于在所述任务状态表征分片扩容完成的情况下,获取针对所述数据库分片扩容任务的数据处理配置表;所述数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;所述目标数据表为所述第一数据库分片和所述第二数据库分片中的任意一个数据表;保留模块,用于对于任一所述数据处理配置记录,在所述任一数据处理配置记录表征所述目标数据表存在待保留数据的情况下,按照所述任一数据处理配置记录指示的数据路由方式,将所述待保留数据路由至所述任一数据处理配置记录所指示的数据库分片中。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请涉及一种数据库分片数据处理方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:在执行数据库分片扩容任务的过程中,检测数据库分片扩容任务的任务状态;在任务状态表征分片扩容完成的情况下,获取针对数据库分片扩容任务的数据处理配置表;数据处理配置表包括至少一个目标数据表对应的数据处理配置记录;对于任一数据处理配置记录,在任一数据处理配置记录表征目标数据表存在待保留数据的情况下,按照任一数据处理配置记录指示的数据路由方式,将待保留数据路由至任一数据处理配置记录所指示的数据库分片中。采用本方法能够提高对扩容后的数据库分片数据的处理效率。理效率。理效率。


技术研发人员:苏志康 孙韶 杨乐 孙敏茜
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.04.23
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐