CN113641498A - 一种数据核对方法、系统、设备及存储介质 - Google Patents

一种数据核对方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN113641498A
CN113641498A CN202110936778.3A CN202110936778A CN113641498A CN 113641498 A CN113641498 A CN 113641498A CN 202110936778 A CN202110936778 A CN 202110936778A CN 113641498 A CN113641498 A CN 113641498A
Authority
CN
China
Prior art keywords
data
task
checking
server
check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110936778.3A
Other languages
English (en)
Inventor
秦政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110936778.3A priority Critical patent/CN113641498A/zh
Publication of CN113641498A publication Critical patent/CN113641498A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据核对方法、系统、设备及存储介质,所述方法包括任务中转服务器响应于各数据核对服务器发送的核对任务获取请求,确定每个数据核对服务器对应的待处理核对任务,待处理核对任务包括核对范围信息和数据分块参数,数据分块参数为任务控制服务器基于数据库延迟信息确定的;每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据;基于数据分块参数进行数据分块,并创建与多个待核对数据块的数量对应的多个数据核对线程,分别对多个待核对数据块执行数据核对。利用本申请提供的技术方案能够结合任务中转服务器和多个数据核对服务器,大大提升数据核对的效率和灵活性,且能够实现灵活可靠的并发控制。

Description

一种数据核对方法、系统、设备及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种数据核对方法、系统、设备及存储介质。
背景技术
随着业务数据量不断增长,通常线上业务数据会先记录在用于进行实时业务数据管理的数据库中(例如MySQL数据库中),但由于服务器容量限制,会在一段时间后对历史数据进行清理以释放可用空间,因此在将线上业务数据记录在用于进行实时业务数据管理的数据库之后,可以通过数据同步操作将其同步至其他类型的数据库(例如Elasticsearch数据库、HBase数据库)中,以供后续实现业务数据查询和重复利用等。但在数据同步的过程中,可能出现漏传、错传等问题,因此有必要对传输前后的数据进行核对以保证数据的可靠性。
相关技术在进行数据库间的数据核对时,一般利用单一固定的服务器来配置数据核对的需求,并从数据库拉取数据进行数据核对,数据核对效率较低,进而存在影响业务正常使用的情况,且若负责核对的服务器发生故障,需要人工恢复,影响核对效率和可靠性。因此,需要提供更加可靠高效的方案。
发明内容
为了解决现有技术的问题,本申请提供了一种数据核对方法、系统、设备及存储介质。所述技术方案如下:
本申请一方面提供了一种数据核对方法,所述方法包括:
多个数据核对服务器分别向任务中转服务器发送核对任务获取请求;
所述任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务,所述待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的;
所述任务中转服务器将所述待处理核对任务发送到对应的数据核对服务器;
所述每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据;
所述每个数据核对服务器基于对应的待处理核对任务的数据分块参数,对所述目标待核对数据进行数据分块,得到多个待核对数据块;
所述每个数据核对服务器创建与所述多个待核对数据块的数量对应的多个数据核对线程;
所述每个数据核对服务器基于所述多个数据核对线程,分别对所述多个待核对数据块执行数据核对。
本申请另一方面提供了一种数据核对系统,所述系统包括任务中转服务器和多个数据核对服务器;
所述多个数据核对服务器用于分别向所述任务中转服务器发送核对任务获取请求;以及基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据;以及基于对应的待处理核对任务的数据分块参数,对所述目标待核对数据进行数据分块,得到多个待核对数据块;以及创建与所述多个待核对数据块的数量对应的多个数据核对线程;以及基于所述多个数据核对线程,分别对多个待核对数据块执行数据核对;
所述任务中转服务器用于响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务,所述待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的;以及将所述待处理核对任务发送到对应的数据核对服务器。
本申请另一方面提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现上述的数据核对方法。
本申请另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述的数据核对方法。
本申请提供的数据核对方法、系统、设备及存储介质,具有如下技术效果:
本申请中多个数据核对服务器分别向任务中转服务器发送核对任务获取请求;任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务,待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的;然后,任务中转服务器将上述待处理核对任务发送到对应的数据核对服务器,接着,每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据,每个数据核对服务器可以基于对应的待处理核对任务的数据分块参数,对所述目标待核对数据进行数据分块,得到多个待核对数据块,再创建与所述多个待核对数据块的数量对应的多个数据核对线程,基于所述多个数据核对线程,分别对所述多个待核对数据块执行数据核对;能够结合任务中转服务器和多个数据核对服务器,大大提升数据核对的效率和灵活性,且及时根据数据库延迟信息确定数据分块参数,按照数据核对需求和数据库实际情况灵活调整数据核对线程的数量,控制并发度,提升数据核对时数据库的安全性和稳定性。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一种数据核对方法的流程图;
图3是本申请实施例提供的另一种数据核对方法的流程图;
图4是本申请实施例提供的另一种数据核对方法的流程图;
图5是本申请实施例提供的另一种数据核对方法的流程图;
图6是本申请实施例提供的数据核对方法的一个架构示意图;
图7是本申请实施例提供的另一种数据核对方法的流程图;
图8是本申请实施例提供的一种存在数据核对服务器故障时的架构示意图;
图9是本申请实施例提供的数据核对方法的另一个架构示意图;
图10是本申请实施例提供的一种当每个数据核对服务器创建多个数据核对线程进行数据核对时的架构示意图;
图11是本申请实施例提供的另一种数据核对方法的流程图;
图12是本申请实施例提供的另一种数据核对方法的流程图;
图13是本申请实施例提供的数据核对系统的一种实施例的结构示意图;
图14是本申请实施例提供的一种数据核对的服务器的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
如本申请所公开的数据核对方法,其所涉及到的数据可保存在区块链上,例如待核对数据可保存在区块链上。
请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以包括任务控制服务器01、任务中转服务器02和多个数据核对服务器03。
在本申请实施例中,任务控制服务器01可以用于每隔预设时间,或在每周期内(例如,每天内)固定重复的时间点生成对应的数据核对任务,上述的预设时间可以结合实际应用需求进行设定,并将生成的数据核对任务下发到任务中转服务器02进行存储,后续可以由多个数据核对服务器03从任务中转服务器02获取对应的待处理核对任务进而进行相应数据的数据核对。任务控制服务器01还可以获取历史数据核对任务对应的数据库延迟信息,来确定数据核对任务的数据分块参数,进而控制数据核对服务器在执行数据核对任务时的线程数量,能够在保障数据库安全的情况下提升并发度,避免并发请求过量对数据库负载安全带来的隐患(例如导致数据库崩溃),保障其他业务的正常运行。在一个实施例中,任务控制服务器01还可以用于监控各数据核对任务的任务执行状态信息,进而确定各数据库的并发访问数量,在任一数据库的并发访问数量大于或等于预设阈值的情况下,任务控制服务器01可以将与该数据库相关联的数据核对任务暂存于本地,即暂停下发至任务中转服务器02,等待该数据库的并发访问数量小于预设阈值时再下发,上述的预设阈值可以结合并发测试结果和实际应用需求进行设定,能够从任务控制服务器的角度实现并发度的宏观调控,避免并发请求过量对数据库负载安全带来的隐患(例如导致数据库崩溃),保障其他业务的正常运行。任务控制服务器01可以包括有网络通信单元、处理器和存储器等等。在本申请实施例中,任务控制服务器01可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,在一些实施例中,任务控制服务器01可以包括具有处理单元的电子设备,例如笔记本电脑、台式计算机等。
在本申请实施例中,任务中转服务器02可以用于接收任务控制服务器01发送的数据核对任务并进行存储,以及响应于各数据核对服务器发送的核对任务获取请求,确定各数据核对服务器对应的待处理核对任务,以使各数据核对服务器根据对应的待处理核对任务实现相应数据的数据核对。利用任务中转服务器02存储并实现数据核对任务的中转,能够充分解耦数据核对任务的生成过程和执行过程,使得任务控制服务器01和多个数据核对服务器03互不影响,有利于提升并发度,进而提升数据核对效率。具体的,任务中转服务器02可以包括有网络通信单元、处理器和存储器等等。在本申请实施例中,任务中转服务器02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。在一个具体的实施例中,任务中转服务器02可以为消息队列服务器,其中包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务,即每次接收到任务控制服务器01生成并发送的数据核对任务时,会将其存入消息队列的队尾,进而能够使得先存入的数据核对任务优先执行。
在本申请实施例中,多个数据核对服务器03可以用于分别向任务中转服务器02发送核对任务获取请求,进而领取任务中转服务器02中的任务执行数据核对,这多个数据核对服务器各自独立互不影响,每个数据核对服务器处理完成当前的核对任务后即可从任务中转服务器02领取新的任务,多个数据核对服务器能够同时执行数据核对,并发量高,数据吞吐量大,能够大大提升数据核对效率,且能够灵活实现扩缩容。具体的,数据核对服务器能够基于对应的待处理核对任务的数据分块参数,对待核对数据进行数据分块,得到多个待核对数据块,然后创建与多个待核对数据块的数量对应的多个数据核对线程,在多线程中并发核对。具体的,每个数据核对服务器03可以包括有网络通信单元、处理器和存储器等等。在本申请实施例中,每个数据核对服务器03可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
请参照图1,在实际应用中,任务控制服务器01生成对应的数据核对任务,并将生成的数据核对任务下发到任务中转服务器02进行存储,多个数据核对服务器03分别向任务中转服务器02发送核对任务获取请求,任务中转服务器02响应于每个数据核对服务器03发送的核对任务获取请求,从多个数据核对任务中,确定每个数据核对服务器03对应的待处理核对任务,上述的待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器01生成数据核对任务时,基于数据库延迟信息确定的;然后,任务中转服务器02可以将待处理核对任务发送到对应的数据核对服务器03;接着,每个数据核对服务器03可以基于对应的待处理核对任务的数据分块参数,对待核对数据进行数据分块,得到多个待核对数据块,然后创建与多个待核对数据块的数量对应的多个数据核对线程,在多线程中并发核对。
此外,需要说明的是,图1仅仅是本申请实施例提供的一种应用环境的示意图,在一个实施例中,该应用环境还可以包括至少两个数据存储系统(每个数据存储系统可以包括相应的数据库),这至少两个数据存储系统利用数据传输方案保存相同的业务数据,例如,当包括两个数据存储系统时,第一数据存储系统可以用于进行实时业务的数据管理,以支持实时业务正常运行,第一数据存储系统具体可以为,例如,MySQL;第二数据存储系统可以为异构数据源,用于实现更为海量持久的数据存储,能够适用于准实时数据查询、分析等场景,第二数据存储系统具体可以为,例如,Elasticsearch、HBase、MongoDB等。由于第一数据存储系统容量限制,为避免对实时业务产生影响,会在一段时间后对历史数据进行清理以释放可用空间,因此可以利用数据传输方案将第一数据存储系统中的数据传输至第二数据存储系统进行备份存储,由于数据传输可能存在漏传、错传的情况,有必要进行数据核对,以保障第一数据存储系统和第二数据存储系统的数据总量一致、且数据内容一致。每个数据核对服务器在执行数据核对时,需从上述的至少两个数据存储系统获取相应的待核对数据。上述的任务控制服务器01、任务中转服务器02以及多个数据核对服务器03可以通过有线或无线通信方式进行直接或间接地连接,本申请并不以此为限。
图2是本申请实施例提供的一种数据核对方法的流程图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201:多个数据核对服务器分别向任务中转服务器发送核对任务获取请求。
在本申请实施例中,上述的核对任务获取请求可以为各数据核对服务器在当前执行的待处理核对任务完成后,向任务中转服务器发送的。
在实际应用中,多个数据核对服务器可以分别执行其对应的数据核对任务,各数据核对服务器相互独立,互不影响。每个数据核对服务器在完成一个数据核对任务后,可以向任务中转服务器发送核对任务获取请求,以领取新的数据核对任务,实现数据核对。利用多个相互独立的数据核对服务器能够实现并行的数据核对任务执行,大大提升数据核对的效率,且能够根据业务需求和数据量灵活实现数据核对业务的扩缩容,例如在业务需求和数据量增大时,能够通过增加数据核对服务器的方式迅速提升数据核对效率。
S203:任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定上述每个数据核对服务器对应的待处理核对任务。
在本申请实施例中,上述的任务中转服务器可以为消息队列服务器,其中包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务,即任务队列,该任务队列可以为一种消息队列。在一个具体的实施例中,多个数据核对服务器可以在不同的时间分别向任务中转服务器发送核对任务获取请求,任务中转服务器可以响应于每个数据核对服务器发送的核对任务获取请求,从多个按照任务生成时间由早到晚的顺序排列的数据核对任务(任务队列)中确定任务生成时间最早的数据核对任务,作为该数据核对服务器对应的待处理核对任务,进而能够优先处理生成时间较早的数据核对任务,实现合理有序的数据核对。
在一个具体的实施例中,任务中转服务器中的数据核对任务为任务控制服务器预先生成并发送的,利用任务中转服务器存储任务控制服务器生成的数据核对任务,并实现数据核对任务的中转,起到缓冲和衔接的作用,能够充分解耦数据核对任务的生成过程和执行过程,使得任务控制服务器和多个数据核对服务器之间互不影响。当处于数据高峰期,数据核对服务器无法及时处理大量的数据核对任务时,数据核对任务会存储在任务中转服务器的任务队列中等待数据核对服务器获取并执行,但不会影响任务控制服务器继续生成数据核对任务,有利于提升并发度,进而提升数据核对效率,实现任务控制服务器高可用,且能够根据实际数据核对的需求通过灵活增减数据核对服务器的数量,提升数据核对的灵活性,大大提升运维效率。
在一个具体的实施例中,上述待处理核对任务可以包括核对范围信息,以及数据分块参数,上述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的。
在一个实施例中,请参阅图3,上述方法还可以包括:
S301:任务控制服务器每隔预设时间生成对应的数据核对任务。
在本申请实施例中,生成的每个数据核对任务可以包括核对范围信息,上述的核对范围信息可以表征对应的数据核对任务需要核对的数据范围,具体的,上述的核对范围信息可以包括至少一个维度的范围信息,例如,上述至少一个维度的范围信息可以包括时间范围信息和数据库范围信息。
任务控制服务器每隔预设时间生成对应的数据核对任务可以包括:任务控制服务器每隔预设时间按照预设任务划分规则,生成对应的数据核对任务,且确定该对应的数据核对任务的核对范围信息。其中,预设任务划分规则可以为结合实际应用需求预先配置的,具体的,任务控制服务器每隔预设时间生成对应的数据核对任务可以包括:任务控制服务器可以每隔预设时间,生成对应的数据核对任务,按照预设核对时间段信息确定数据核对任务对应的历史时间段。上述的预设时间可以表征任务控制服务器生成两个相邻数据核对任务的时间间隔,上述的预设核对时间段信息可以表征根据当前时间确定生成的数据核对任务对应的历史时间段的规则;此时该核对范围信息可以包括时间范围信息。在一个具体的实施例中,上述预设时间可以为10分钟,上述预设核对时间段信息可以为:当前时间的前30分钟至当前时间的前20分钟,此时可以例如分别于10:00、10:10、10:20…生成数据核对任务,针对10:00生成的数据核对任务,其对应的核对范围信息可以包括,9:30~9:40,在实际应用中,上述预设时间还可以为5分钟,上述预设核对时间段信息可以为:当前时间的前30分钟至当前时间的前25分钟,本申请并不以此为限。
在本申请实施例中,除了从时间维度之外,还可以进一步从其他维度细分总的核对任务,例如,上述的核对范围信息还可以包括数据库范围信息,任务控制服务器每隔预设时间生成对应的数据核对任务可以包括:任务控制服务器可以每隔预设时间,生成对应的多个数据核对任务,按照预设核对时间段信息确定各数据核对任务对应的历史时间段,且根据各待核对数据库的标识信息确定每个数据核对任务对应的数据库标识信息。在上述实施例中,10:00可以生成多个数据核对任务,各数据核对任务对应的核对范围信息可以包括,“9:30~9:40,数据库A”、“9:30~9:40,数据库B”“9:30~9:40,数据库C”…在实际应用中,可以根据各待核对的MySQL实例,确定各待核对数据库的标识信息。在其他实施例中,还可以从其他维度(除时间段和数据库这两个维度之外),进一步实现总体核对任务的细分,例如,其他维度可以包括机房等,本申请并不以此为限。
通过任务控制服务器每隔预设时间生成对应的数据核对任务,生成的每个数据核对任务可以包括核对范围信息,且上述的核对范围信息可以包括至少一个维度的范围信息,进而能够从任务控制服务器侧实现多维度(例如时间和数据库)的总体任务划分,使得各数据核对服务器每次需完成的数据核对任务较为轻量,进而能够利用包括多个数据核对服务器的分布式架构并行实现数据核对,有利于充分提升数据核对的并发度,进而提升数据核对的效率和吞吐量。
S303:任务控制服务器获取历史数据核对任务对应的数据库延迟信息。
在本申请实施例中,上述历史数据核对任务可以指示距离当前时间最近的,已经执行完成的数据核对任务,上述数据库延迟信息可以指示执行该历史数据核对任务执行过程中的数据库平均访问延时。任务控制服务器能够获取其生成的各数据核对任务的执行结果,执行结果中包含该历史数据核对任务执行过程中的数据库平均访问延时,即核对服务器访问数据库,数据的响应延时的平均值;数据库平均访问延时越高,表示数据库承担的访问量或请求数越大。
S305:任务控制服务器在生成对应的数据核对任务时,根据所述数据库延迟信息,确定所述对应的数据核对任务的数据分块参数。
在一个具体的实施例中,上述数据分块参数可以包括目标分块数据量,即数据分块的大小。请参阅图4,上述任务控制服务器在生成对应的数据核对任务时,根据所述数据库延迟信息,确定所述对应的数据核对任务的数据分块参数可以包括:
S401:任务控制服务器在生成对应的数据核对任务时,获取上述对应的数据核对任务的初始分块数据量。
在本申请实施例中,上述的初始分块数据量可以为根据实际应用需求设定的数据分块大小,例如,1万条;也可以为上述历史数据核对任务的目标分块数据量。
S403:当任务控制服务器确定上述数据库延迟信息满足预设调节条件时,根据上述初始分块数据量进行数据量调节,得到上述对应的数据核对任务的目标分块数据量。
具体的,上述预设调节条件可以包括:上述数据库延迟信息大于或等于第一延迟阈值;或;上述数据库延迟信息小于或等于第二延迟阈值。
在一个实施例中,上述的当任务控制服务器确定上述数据库延迟信息满足预设调节条件时,根据上述初始分块数据量进行数据量调节,得到上述对应的数据核对任务的目标分块数据量可以包括:
当任务控制服务器确定上述数据库延迟信息大于或等于第一延迟阈值时,根据上述初始分块数据量进行数据量增加处理,得到上述对应的数据核对任务的目标分块数据量。
具体的,根据上述初始分块数据量进行数据量增加处理可以包括但不限于:在上述初始分块数据量的基础上增大一倍;或;在上述初始分块数据量的基础上增加第一预设数据量,上述第一预设数据量可以结合实际应用需求和调节测试结果确定,例如,1万条。
由于数据库除了为数据核对任务提供服务外,还需支持各类前台实时业务,因此数据库需保障安全稳定的运行。当数据库延迟信息大于或等于第一延迟阈值时,表示数据库负载压力大,可能带来其他业务延迟,甚至数据库崩溃。此时可以根据上述初始分块数据量进行数据量增加处理,例如,原本初始分块数据量为1万条,而核对任务对应的待核对数据总量为10万条,则原本数据核对服务器会创建10个线程并发核对,可以将初始分块数据量增大一倍,得到目标分块数据量为2万条,则在核对任务对应的待核对数据总量为10万条的情况下,数据核对服务器会创建5个线程并发核对,减少数据库的访问并发度,提升数据库的安全性和稳定性,进而确保其他业务的正常运行。
在另一个实施例中,上述的当任务控制服务器确定上述数据库延迟信息满足预设调节条件时,根据上述初始分块数据量进行数据量调节,得到上述对应的数据核对任务的目标分块数据量可以包括:
当任务控制服务器确定上述数据库延迟信息小于或等于第二延迟阈值时,根据上述初始分块数据量进行数据量减少处理,得到上述对应的数据核对任务的目标分块数据量。
具体的,根据上述初始分块数据量进行数据量增加处理可以包括但不限于:在上述初始分块数据量的基础上减少一倍;或;在上述初始分块数据量的基础上减少第二预设数据量,上述第二预设数据量可以结合实际应用需求和调节测试结果确定,例如,1万条。
当数据库延迟信息小于或等于第二延迟阈值时,表示数据库负载压力小,此时可以根据上述初始分块数据量进行数据量减少处理,例如,原本初始分块数据量为2万条,而核对任务对应的待核对数据总量为10万条,则原本数据核对服务器会创建5个线程并发核对,可以将初始分块数据量减少一倍,得到目标分块数据量为1万条,则在核对任务对应的待核对数据总量为10万条的情况下,数据核对服务器会创建10个线程并发核对,能够在保障数据库并发安全的情况下,提升数据核对并发度,进而提升数据核对效率。
通过任务控制服务器在生成对应的数据核对任务时获取初始分块数据量;且在上述数据库延迟信息满足预设调节条件时进行数据量调节,得到数据核对任务的目标分块数据量,能够结合数据库负载情况,灵活调节数据核对的并发度,在保障数据库安全稳定的情况下,提升数据核对效率,进而保障其他需要结合数据实现的业务正常进行。
S307:任务控制服务器将上述对应的数据核对任务发送到任务中转服务器。
在本申请实施例中,任务控制服务器每次生成了数据核对任务后,即可发送到任务中转服务器存储至任务队列中,具体的,任务中转服务器可以包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务,任务控制服务器每次生成了新的数据核对任务后,可发送至任务中转服务器存入任务队列的队尾,进而能够使得先存入的数据核对任务优先执行,实现合理有序的数据核对。且任务控制服务器在生成对应的数据核对任务时,能够根据数据库延迟信息确定数据分块参数,进而后续能够实现灵活的并发控制。
S205:任务中转服务器将所述待处理核对任务发送到对应的数据核对服务器。
在本申请实施例中,任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定上述每个数据核对服务器对应的待处理核对任务之后,可以将待处理核对任务,发送到对应的数据核对服务器以实现后续的数据核对。
在一个可选的实施例中,上述的任务中转服务器中可以包括多个任务中转分区,每个任务中转分区可以包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务。请参阅图5,上述的任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定上述每个数据核对服务器对应的待处理核对任务可以包括:
S501:任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,基于预设映射信息确定所述每个数据核对服务器对应的任务中转分区。
具体的,上述的预设映射信息可以表征所述多个任务中转分区与所述多个数据核对服务器之间的关联关系,一个任务中转分区仅可与唯一的数据核对服务器关联,即对于一个任务中转分区而言,仅可存在一个数据核对服务器从中领取数据核对任务,而一个数据核对服务器可以与至少一个任务中转分区关联,在实际应用中的初始情况下,任务中转分区的数量与数据核对服务器的数量一致,即多个任务中转分区与多个数据核对服务器之间是一一对应的,这样每个数据核对服务器可以固定访问其对应的任务中转分区合理有序领取任务。
S503:任务中转服务器从所述每个数据核对服务器对应的任务中转分区中,确定任务生成时间最早的数据核对任务。
在本申请实施例中,每个任务中转分区可以包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务。在一个具体的实施例中,每个任务中转分区中的数据核对任务可以为由任务控制服务器通过轮询发送的方式发送的。当任务中转服务器中存在多个任务中转分区时,任务控制服务器可以通过轮询的方式轮流向这多个任务中转分区发送生成的数据核对任务,实现数据核对任务分配的负载均衡,且使得先生成的数据核对任务先被相应的数据核对服务器领取并执行,实现合理有序的数据核对。如图6所示,图6为本申请实施例提供的一个数据核对方法的架构示意图,其中,任务中转服务器中的虚线框(如601)为各任务中转分区,各包含数字的方块为存储的各数据核对任务(如602),方块中的数字表征任务生成时间,数字越小表示任务生成时间越早,由图6可见,每个任务中转分区包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务,多个任务中转分区与多个数据核对服务器之间存在关联关系,各数据核对服务器可以访问对应的任务中转分区以获取数据核对任务并执行。
S505:任务中转服务器将所述任务生成时间最早的数据核对任务,作为对应的数据核对服务器的待处理核对任务。
在本申请实施例中,任务中转服务器在每个数据核对服务器对应的任务中转分区中,确定任务生成时间最早的数据核对任务之后,可以将任务生成时间最早的数据核对任务,作为对应的数据核对服务器的待处理核对任务。请继续参照图6,例如此时可以将数据核对任务1作为数据核对服务器1的待处理核对任务;将数据核对任务2作为数据核对服务器2的待处理核对任务;将数据核对任务3作为数据核对服务器3的待处理核对任务。
在实际应用中,一般当存在多个数据核对服务器向任务中转服务器发送核对任务获取请求时,任务中转服务器需要按照请求时间依次将任务队列中队头的数据发送至对应的数据核对服务器,即多个数据核对服务器无法并发访问任务中转服务器领取任务;通过利用任务中转服务器中的多个任务中转分区,每个任务中转分区包括多个按照任务生成时间顺序排列的数据核对任务,任务中转服务器可以响应于每个数据核对服务器发送的核对任务获取请求,基于预设映射信息确定所述每个数据核对服务器对应的任务中转分区,即可以存在多个数据核对服务器同时访问任务中转服务器获取数据核对任务,有利于进一步提升数据核对并发度,提升数据核对效率和吞吐量,实现合理有序的数据核对。
在实际应用中,由于数据核对服务器所处的实际运行环境较为复杂,可能存在数据核对服务器宕机、网络异常、线程异常、内存用完等情况,进而导致数据核对服务器无法执行数据核对任务,需要人工介入处理,耗时费力。因此在本申请实施例中,请参阅图7,上述方法还可以包括:
S701:任务中转服务器监控上述多个数据核对服务器的运行状态。
在一个具体的实施例中,任务中转服务器可以基于心跳机制监控上述多个数据核对服务器的运行状态,具体可以由各数据核对服务器每隔预设时间间隔向任务中转服务器发送存活消息,当任务中转服务器检测到等待任一数据核对服务器发送存活消息的时间超过预设时间阈值时,确定该数据核对服务器存在运行状态异常。
S703:在任务中转服务器检测到任一数据核对服务器存在运行状态异常的情况下,基于所述预设映射信息确定运行状态异常的数据核对服务器对应的目标任务中转分区。
S705:任务中转服务器从所述多个数据核对服务器中,确定目标数据核对服务器。
具体的,所述目标数据核对服务器为运行状态正常的数据核对服务器。在本申请实施例中,上述的目标数据核对服务器可以为上述多个数据核对服务器中任一运行状态正常的数据核对服务器。在一个可选的实施例中,任务中转服务器可以为Kafka服务器,上述多个数据核对服务器可以在相同的Kafka消费者组中,进而能够实现从同组的数据核对服务器中确定目标数据核对服务器。
S707:任务中转服务器建立所述目标数据核对服务器与所述目标任务中转分区之间的关联关系。
S709:任务中转服务器基于所述目标数据核对服务器与所述目标任务中转分区之间的关联关系,更新所述预设映射信息。
在本申请实施例中,任务中转服务器可以建立上述目标数据核对服务器与上述目标任务中转分区之间的关联关系,进而基于目标数据核对服务器与目标任务中转分区之间的关联关系,更新上述的预设映射信息,进而后续可以由目标数据核对服务器接管目标任务中转分区中的数据核对任务并执行。请参照图8,假设此时数据核对服务器1发生了故障,任务中转服务器从这多个数据核对服务器中确定数据核对服务器2为目标数据核对服务器,则可建立数据核对服务器2与原本数据核对服务器1负责的分区间的关联关系,进而更新原本的预设映射信息。即数据核对服务器2可以接管原本数据核对服务器1负责的分区,后续数据核对服务器2能够轮流从其对应的两个任务中转分区中领取数据核对任务并执行。
通过任务中转服务器监控上述多个数据核对服务器的运行状态,在任务中转服务器检测到任一数据核对服务器存在运行状态异常的情况下,使得其他数据核对服务器接管该异常数据核对服务器对应的分区,能够实现自动化故障转移,不影响数据核对任务的执行,有利于提升系统整体可用性,进而提升数据核对的可靠性和稳定性,避免对正常业务带来不利影响。
S207:每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据。
在本申请实施例中,上述的目标待核对数据可以包括至少两个数据存储系统中相对应的业务数据,这至少两个数据存储系统利用数据传输方案保存相同的业务数据。具体的,上述的业务数据可以为经过预设操作产生的业务信息,且每条业务数据可以包括数据主键和多个数据字段的字段取值。例如,业务数据可以包括交易订单数据,每条交易订单数据的数据主键可以为订单唯一编号,数据字段可以包括但不限于订单时间、用户ID、支付金额、收款商户。
在本申请实施例中,当包括两个数据存储系统时,第一数据存储系统可以用于进行实时业务的数据管理,以支持实时业务正常运行(例如支持上述的实时交易业务),第一数据存储系统具体可以为,例如,MySQL;在一个具体的实施例中,第二数据存储系统可以为异构数据源,用于实现更为海量持久的数据存储,能够适用于准实时数据查询、分析等场景,第二数据存储系统具体可以为,例如,Elasticsearch、HBase、MongoDB等。一般由于第一数据存储系统容量限制,为避免对实时业务产生影响,会在一段时间后对历史数据进行清理以释放可用空间,因此可以利用数据传输方案(数据同步操作)将第一数据存储系统中的数据传输至第二数据存储系统进行备份存储以供后续查询等应用,例如实现历史订单查询和退款等,此时MySQL中的数据已经被清除,需要在Elasticsearch中查询存储的数据。但由于数据传输过程可能存在漏传、错传的情况,有必要对传输前后的数据进行数据核对,以保障第一数据存储系统和第二数据存储系统的数据总量一致、且数据内容一致,进而为后续数据查询等操作提供可靠的数据支撑。每个数据核对服务器在执行数据核对时,可以基于对应的待处理核对任务中的核对范围信息,获取目标待核对数据,其中,目标待核对数据可以包括两部分,即第一数据存储系统中与上述核对范围信息对应的业务数据,以及第二数据存储系统中与上述核对范围信息对应的业务数据。
在一个可选的实施例中,上述方法还包括预先对第一数据存储系统中的业务数据进行数据同步操作,得到第二数据存储中的业务数据的步骤,上述预先对第一数据存储系统中的业务数据进行数据同步操作,得到第二数据存储中的业务数据的步骤具体可以包括:采集第一数据存储系统的增量日志,经过中转机将其存入消息队列,在第二数据存储系统对上述的增量日志进行解析,实现业务数据的同步写入。具体的,上述的增量日志可以表征数据库的变化信息,在实际应用中,上述的增量日志可以为MySQL的binlog。
在本申请实施例中,由于每个待处理核对任务包括核对范围信息,每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,获取目标待核对数据。例如,一个待处理核对任务的核对范围信息可以包括时间范围信息和数据库范围信息,例如:“9:30~9:40,数据库A”,而每条业务数据包括数据属性信息例如,存储时间、存储位置(所位于的数据库标识),进而可以分别在第一数据存储系统和第二数据存储系统中,利用上述的核对范围信息筛选出对应的业务数据,作为上述的目标待核对数据。请参照图9,图9为本申请实施例提供的一个数据核对架构的示意图。可以快速准确地确定任务对应的数据以实现数据核对,提升数据核对的可靠性。
S209:每个数据核对服务器基于对应的待处理核对任务的数据分块参数,对上述目标待核对数据进行数据分块,得到多个待核对数据块。
具体的,上述数据分块参数可以包括目标分块数据量,每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据之后,还能够确定目标待核对数据的数据总量,例如,目标待核对数据的数据总量为10万条。
在本申请实施例中,每个数据核对服务器基于对应的待处理核对任务的数据分块参数,对上述目标待核对数据进行数据分块,得到多个待核对数据块可以包括:每个数据核对服务器确定上述目标待核对数据的数据总量,根据上述数据总量和目标分块数据量对上述目标待核对数据进行数据分块,得到多个待核对数据块。例如,目标待核对数据的数据总量为10万条,目标分块数据量为1万条,则数据分块后得到了10个待核对数据块。
S211:每个数据核对服务器创建与所述多个待核对数据块的数量对应的多个数据核对线程。
在本申请实施例中,数据核对服务器创建的数据核对线程的数量与待核对数据块的数量一致。
S213:每个数据核对服务器基于上述多个数据核对线程,分别对上述多个待核对数据块执行数据核对。
在本申请实施例中,数据核对服务器创建与待核对数据块的数量一致的数据核对线程之后,就能分别在每个数据核对线程中对一个待核对数据库执行数据核对。
如图10所示,图10为本申请实施例提供的一种当每个数据核对服务器创建多个数据核对线程进行数据核对时的架构示意图,图中每个数据核对服务器后的短线(例如1001)表示数据核对线程,为避免线条过多,此处仅示出1001这个线程分别从两个数据存储系统获取数据的过程,实际应用中,各数据核对线程可以同时从两个数据存储系统拉取数据。
通过任务控制服务器生成数据核对任务时,基于数据库延迟信息确定数据分块参数,能够结合数据库负载情况,灵活调节数据核对的并发度,进而在数据核对服务器进行实际的数据核对时,结合数据分块参数创建对应数量的线程,利用多个数据核对线程实现并行处理,能够在保障数据库安全稳定的情况下,提升数据核对并发度,进而提升数据核对效率,避免核对资源浪费,且能够保障其他需要结合数据实现的业务正常进行。
在一个实施例中,上述数据核对线程的数量可以为根据实际应用需求设定的,每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据之后,上述方法还可以包括:
1)每个数据核对服务器创建预设数量的数据核对线程;
具体的,上述预设数量可以为结合实际应用需求设定的,在一个实施例中,上述预设数量与目标待核对数据中数据表的个数一致。
2)每个数据核对服务器基于每个数据核对线程确定对应的待核对数据块;
3)每个数据核对服务器在每个数据核对线程中,根据上述数据分块参数对对应的待核对数据块进行重切块,得到多个子数据块;
4)每个数据核对线程创建多个子线程,分别在每个子线程中对对应的子数据块执行数据核对。
在一些场景中,数据核对线程有时是根据实际应用需求设定的固定值,或为与数据表个数一致的值,此时可以在每个数据核对线程确定对应的待核对数据块(例如,某个数据表的数据)之后,利用数据分块参数对对应的待核对数据块进行重切块,得到多个子数据块,也能够实现并发度的灵活调整。能够在保障数据库安全稳定的情况下,提升数据核对并发度,进而提升数据核对效率,避免核对资源浪费,且能够保障其他需要结合数据实现的业务正常进行。
在一个具体的实施例中,上述的目标待核对数据可以包括第一待核对数据和第二待核对数据,上述第二待核对数据为预先对上述第一待核对数据进行数据同步操作得到的,在上述实施例中,上述第一待核对数据可以为第一数据存储系统与上述核对范围信息对应的业务数据,第二待核对数据可以为第二数据存储系统与上述核对范围信息对应的业务数据。即上述的第二待核对数据为与上述第一待核对数据对应的备份数据。进而对目标待核对数据进行数据分块之后,得到多个待核对数据块,每个待核对数据块也包括第一待核对数据和第二待核对数据,上述第二待核对数据为预先对上述第一待核对数据进行数据同步操作得到的。待核对数据块中的第一待核对数据为与部分核对范围信息对应的业务数据,第二待核对数据可以为第二数据存储系统与上述部分核对范围信息对应的业务数据(第二待核对数据为与上述第一待核对数据对应的备份数据)。
在一个具体的实施例中,请参阅图11,上述每个数据核对服务器基于上述多个数据核对线程,分别对多个待核对数据块执行数据核对可以包括:
S1101:每个数据核对服务器在每个数据核对线程中,确定所述第一待核对数据中的每条数据的数据标识信息。
具体的,上述的每条数据可以为业务数据,上述的数据标识信息可以表征该条数据区分于其他数据的唯一标识。具体的,上述的数据标识信息可以为数据主键,例如订单唯一编号。
S1103:每个数据核对服务器在每个数据核对线程中,基于所述每条数据的数据标识信息,从所述第二待核对数据中,确定所述每条数据的关联数据。
具体的,可以基于第一待核对数据中每条数据的数据标识信息,在第二待核对数据中,确定第一待核对数据中每条数据的关联数据,上述每条数据的关联数据可以为第二待核对数据中,与该条数据的数据标识信息相同的数据。在理想情况下,第一待核对数据中的每条数据,与其在第二待核对数据中的关联数据应该完全相同。
在本申请实施例中,对于第一待核对数据中的任一条数据,当第二待核对数据中不存在与其数据标识信息相同的数据时(即不存在它的关联数据时),可以对第一待核对数据中的该条数据进行记录,生成核对异常日志。在实际应用中,当第二待核对数据中不存在与其数据标识信息相同的数据时,即第一数据存储系统中存在,而第二数据存储系统中不存在的数据,此时可能是数据同步操作时出现了漏传的情况,可以对其进行记录并进行数据重传,提升数据同步的可靠性。
S1105:每个数据核对服务器在每个数据核对线程中,对所述每条数据和所述每条数据的关联数据进行数据字段比对。
在一个可选的实施例中,上述第二待核对数据可以为异构数据源中的数据(即第二数据存储系统可以为异构数据源),有必要通过逐字段比对的方式确定数据的一致性。具体的,在确定每条数据和所述每条数据的关联数据之后,可以进行数据字段比对,具体可以包括对齐各数据字段类型,然后对相对应的字段取值进行一致性比对。例如,对于一条交易订单数据,数据字段可以包括但不限于订单时间、用户ID、支付金额、收款商户,可以对于第一待核对数据中的每条数据和它在第二待核对数据中的关联数据,逐个核对订单时间是否一致、用户ID是否一致、支付金额是否一致、收款商户是否一致。以确保传输前后的数据内容相同。
在本申请实施例中,对于第一待核对数据中的任一条数据,当检测到任一条数据与关联数据存在字段不一致的情况时(任一对应的字段取值不同),可以对第一待核对数据中的该条数据进行记录,生成核对异常日志。在实际应用中,当存在字段不一致的情况时,可能是数据同步操作时出现了错传的情况,可以对其进行记录并进行数据重传,进而提升数据同步的可靠性,以为后续的数据使用(例如数据查询、历史订单退款等业务)提供更加可靠的数据支撑。
在本申请实施例中,通过每个数据核对服务器对所述每条数据和所述每条数据的关联数据进行数据字段比对,能够更加细致可靠地实现数据核对,提升数据核对的可靠性。
在一个具体的实施例中,每个数据核对任务包括任务关联数据库信息,具体的,上述任务关联数据库信息可以表征该数据核对任务需要访问的数据库标识信息,在一个可选的实施例中,上述的任务关联数据库信息可以为对应的核对范围信息中的数据库范围信息。且任务控制服务器每隔预设时间生成对应的数据核对任务,请参阅图12,上述方法还可以包括:
S1201:任务控制服务器监控多个数据核对任务的任务执行状态信息。
具体的,上述的任务执行状态信息可以表征对应的数据核对任务是否处于执行中,上述的任务执行状态信息具体可以包括执行中、未执行、已执行等。
S1203:任务控制服务器基于所述多个数据核对任务的任务执行状态信息和任务关联数据库信息,确定多个数据库的并发访问数量。
在本申请实施例中,上述任务控制服务器基于所述多个数据核对任务的任务执行状态信息和任务关联数据库信息,确定多个数据库的并发访问数量可以包括:任务控制服务器基于所述多个数据核对任务的任务执行状态信息和任务关联数据库信息,确定每个数据库对应的执行中任务数量,将上述的执行中任务数量作为该数据库的并发访问数量。
S1205:在任务控制服务器检测到任一数据库的并发访问数量大于或等于预设阈值的情况下,将与所述并发访问数量大于或等于预设阈值的数据库相关联的数据核对任务存储于本地。
在本申请实施例中,上述的预设阈值可以结合实际访问测试结果和应用需求进行设定,例如,上述的预设阈值可以为5个。在任务控制服务器检测到任一数据库的并发访问数量大于或等于预设阈值的情况下,表示数据库系统负载较高,严重时存在数据库瘫痪的隐患,进而可能影响正常业务的使用,因此可以从任务控制服务器一侧实现并发控制,将与所述并发访问数量大于或等于预设阈值的数据库相关联的数据核对任务存储于本地暂不下发,当检测到该数据库的并发访问数量小于预设阈值时,再将存储于本地的与该数据库关联的数据核对任务发送到任务中转服务器继续投入执行。有利于从宏观实现并发控制,调节力度较大,能够迅速缓解数据库的负载压力,避免数据库系统因高负载而崩溃,确保业务安全,能够在数据库系统的性能安全上限之下实现最高的核对性能,进而提升数据核对的安全性和可靠性。
在本说明书实施例中,利用任务中转服务器存储任务控制服务器生成的数据核对任务,并实现数据核对任务的中转,起到缓冲和衔接的作用,能够充分解耦数据核对任务的生成过程和执行过程,使得任务控制服务器和多个数据核对服务器之间互不影响。利用多个相互独立的数据核对服务器能够实现并行的数据核对任务执行,大大提升数据核对的效率,且能够根据业务需求和数据量灵活实现数据核对业务的扩缩容。任务控制服务器在生成对应的数据核对任务时,能够根据数据库延迟信息确定数据分块参数,进而后续能够实现灵活的并发控制。通过任务控制服务器在生成对应的数据核对任务时获取初始分块数据量;且在上述数据库延迟信息满足预设调节条件时进行数据量调节,得到数据核对任务的目标分块数据量,能够结合数据库负载情况,灵活调节数据核对的并发度,在保障数据库安全稳定的情况下,提升数据核对效率,进而保障其他需要结合数据实现的业务正常进行。基于预设映射信息确定所述每个数据核对服务器对应的任务中转分区,即可以存在多个数据核对服务器同时访问任务中转服务器获取数据核对任务,有利于进一步提升数据核对并发度,提升数据核对效率和吞吐量,实现合理有序的数据核对。通过任务中转服务器监控上述多个数据核对服务器的运行状态,在任务中转服务器检测到任一数据核对服务器存在运行状态异常的情况下,使得其他数据核对服务器接管该异常数据核对服务器对应的分区,能够实现自动化故障转移,不影响数据核对任务的执行,有利于提升系统整体可用性,进而提升数据核对的可靠性和稳定性,避免对正常业务带来不利影响。通过为每个数据核对服务器创建多个数据核对线程,对待处理核对任务进行划分,开启多个数据核对线程实现并行处理,有利于提升数据核对的并发度,进而提升数据核对的效率。
本申请实施例还提供了一种数据核对系统的实施例,如图13所示,所述系统可以包括:
任务中转服务器1310和多个数据核对服务器1320;
所述多个数据核对服务器1320用于分别向所述任务中转服务器发送核对任务获取请求;以及基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据;以及基于对应的待处理核对任务的数据分块参数,对所述目标待核对数据进行数据分块,得到多个待核对数据块;以及创建与所述多个待核对数据块的数量对应的多个数据核对线程;以及基于所述多个数据核对线程,分别对多个待核对数据块执行数据核对;
所述任务中转服务器1310用于响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务,所述待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的;以及将所述待处理核对任务发送到对应的数据核对服务器。
在一个具体的实施例中,所述数据核对系统还包括任务控制服务器,所述任务控制服务器可以用于每隔预设时间生成对应的数据核对任务;
以及获取历史数据核对任务对应的数据库延迟信息;
以及在生成对应的数据核对任务时,根据所述数据库延迟信息,确定所述对应的数据核对任务的数据分块参数;
以及将所述对应的数据核对任务发送到所述任务中转服务器。
在一个具体的实施例中,所述数据分块参数包括目标分块数据量,任务控制服务器还可以用于:
在生成对应的数据核对任务时,获取所述对应的数据核对任务的初始分块数据量;
以及在确定所述数据库延迟信息满足预设调节条件时,根据所述初始分块数据量进行数据量调节,得到所述对应的数据核对任务的目标分块数据量。
在一个具体的实施例中,所述任务中转服务器包括多个任务中转分区,每个任务中转分区包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务;任务中转服务器1310可以用于:
响应于每个数据核对服务器发送的核对任务获取请求,基于预设映射信息确定所述每个数据核对服务器对应的任务中转分区,所述预设映射信息表征所述多个任务中转分区与所述多个数据核对服务器之间的关联关系;
以及从所述每个数据核对服务器对应的任务中转分区中,确定任务生成时间最早的数据核对任务;
以及将所述任务生成时间最早的数据核对任务,作为对应的数据核对服务器的待处理核对任务。
在一个具体的实施例中,所述任务中转服务器1310还可以用于:
监控所述多个数据核对服务器的运行状态;
以及在检测到任一数据核对服务器存在运行状态异常的情况下,基于所述预设映射信息确定运行状态异常的数据核对服务器对应的目标任务中转分区;
以及从所述多个数据核对服务器中,确定目标数据核对服务器,所述目标数据核对服务器为运行状态正常的数据核对服务器;
以及建立所述目标数据核对服务器与所述目标任务中转分区之间的关联关系;
以及基于所述目标数据核对服务器与所述目标任务中转分区之间的关联关系,更新所述预设映射信息。
在一个具体的实施例中,每个待核对数据块包括第一待核对数据和第二待核对数据,所述第二待核对数据为预先对所述第一待核对数据进行数据同步操作得到的;每个数据核对服务器1320可以用于:
在每个数据核对线程中,确定所述第一待核对数据中的每条数据的数据标识信息;
以及在所述每个数据核对线程中,基于所述每条数据的数据标识信息,从所述第二待核对数据中,确定所述每条数据的关联数据;
以及在所述每个数据核对线程中,对所述每条数据和所述每条数据的关联数据进行数据字段比对。
在一个具体的实施例中,任务控制服务器可以用于每隔预设时间生成对应的数据核对任务,每个数据核对任务包括任务关联数据库信息,所述任务控制服务器还可以用于:
监控多个数据核对任务的任务执行状态信息;
以及基于所述多个数据核对任务的任务执行状态信息和任务关联数据库信息,确定多个数据库的并发访问数量;
以及在检测到任一数据库的并发访问数量大于或等于预设阈值的情况下,将与所述并发访问数量大于或等于预设阈值的数据库相关联的数据核对任务存储于本地。
所述的系统实施例中的各组成部分与方法实施例基于同样地申请构思。
本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的数据核对方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行,即上述计算机设备可以包括移动终端、计算机终端、服务器或者类似的运算装置。以运行在服务器上为例,图14是本申请实施例提供的一种数据核对方法的服务器的硬件结构框图。如图14所示,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)1410(处理器1410可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1430,一个或一个以上存储应用程序1423或数据1422的存储介质1420(例如一个或一个以上海量存储设备)。其中,存储器1430和存储介质1420可以是短暂存储或持久存储。存储在存储介质1420的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1410可以设置为与存储介质1420通信,在服务器1400上执行存储介质1420中的一系列指令操作。服务器1400还可以包括一个或一个以上电源1460,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1440,和/或,一个或一个以上操作系统1421,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口1440可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1400的通信供应商提供的无线网络。在一个实例中,输入输出接口1440包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1440可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器1400还可包括比图14中所示更多或者更少的组件,或者具有与图14所示不同的配置。
本申请的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种数据核对方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的数据核对方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种数据核对方法,其特征在于,所述方法包括:
多个数据核对服务器分别向任务中转服务器发送核对任务获取请求;
所述任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务,所述待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的;
所述任务中转服务器将所述待处理核对任务发送到对应的数据核对服务器;
所述每个数据核对服务器基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据;
所述每个数据核对服务器基于对应的待处理核对任务的数据分块参数,对所述目标待核对数据进行数据分块,得到多个待核对数据块;
所述每个数据核对服务器创建与所述多个待核对数据块的数量对应的多个数据核对线程;
所述每个数据核对服务器基于所述多个数据核对线程,分别对所述多个待核对数据块执行数据核对。
2.根据权利要求1所述的方法,其特征在于,所述任务控制服务器每隔预设时间生成对应的数据核对任务,所述方法还包括:
所述任务控制服务器获取历史数据核对任务对应的数据库延迟信息;
所述任务控制服务器在生成对应的数据核对任务时,根据所述数据库延迟信息,确定所述对应的数据核对任务的数据分块参数;
所述任务控制服务器将所述对应的数据核对任务发送到所述任务中转服务器。
3.根据权利要求2所述的方法,其特征在于,所述数据分块参数包括目标分块数据量,所述任务控制服务器在生成对应的数据核对任务时,根据所述数据库延迟信息,确定所述对应的数据核对任务的数据分块参数包括:
所述任务控制服务器在生成对应的数据核对任务时,获取所述对应的数据核对任务的初始分块数据量;
当所述任务控制服务器确定所述数据库延迟信息满足预设调节条件时,根据所述初始分块数据量进行数据量调节,得到所述对应的数据核对任务的目标分块数据量。
4.根据权利要求1所述的方法,其特征在于,所述任务中转服务器包括多个任务中转分区,每个任务中转分区包括多个按照任务生成时间由早到晚的顺序排列的数据核对任务;所述任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务包括:
所述任务中转服务器响应于每个数据核对服务器发送的核对任务获取请求,基于预设映射信息确定所述每个数据核对服务器对应的任务中转分区,所述预设映射信息表征所述多个任务中转分区与所述多个数据核对服务器之间的关联关系;
所述任务中转服务器从所述每个数据核对服务器对应的任务中转分区中,确定任务生成时间最早的数据核对任务;
所述任务中转服务器将所述任务生成时间最早的数据核对任务,作为对应的数据核对服务器的待处理核对任务。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述任务中转服务器监控所述多个数据核对服务器的运行状态;
在所述任务中转服务器检测到任一数据核对服务器存在运行状态异常的情况下,基于所述预设映射信息确定运行状态异常的数据核对服务器对应的目标任务中转分区;
所述任务中转服务器从所述多个数据核对服务器中,确定目标数据核对服务器,所述目标数据核对服务器为运行状态正常的数据核对服务器;
所述任务中转服务器建立所述目标数据核对服务器与所述目标任务中转分区之间的关联关系;
所述任务中转服务器基于所述目标数据核对服务器与所述目标任务中转分区之间的关联关系,更新所述预设映射信息。
6.根据权利要求1所述的方法,其特征在于,每个待核对数据块包括第一待核对数据和第二待核对数据,所述第二待核对数据为预先对所述第一待核对数据进行数据同步操作得到的;所述每个数据核对服务器基于所述多个数据核对线程,分别对所述多个待核对数据块执行数据核对包括:
所述每个数据核对服务器在每个数据核对线程中,确定所述第一待核对数据中的每条数据的数据标识信息;
所述每个数据核对服务器在所述每个数据核对线程中,基于所述每条数据的数据标识信息,从所述第二待核对数据中,确定所述每条数据的关联数据;
所述每个数据核对服务器在所述每个数据核对线程中,对所述每条数据和所述每条数据的关联数据进行数据字段比对。
7.根据权利要求1所述的方法,其特征在于,所述任务控制服务器每隔预设时间生成对应的数据核对任务,每个数据核对任务包括任务关联数据库信息,所述方法还包括:
所述任务控制服务器监控多个数据核对任务的任务执行状态信息;
所述任务控制服务器基于所述多个数据核对任务的任务执行状态信息和任务关联数据库信息,确定多个数据库的并发访问数量;
在所述任务控制服务器检测到任一数据库的并发访问数量大于或等于预设阈值的情况下,将与所述并发访问数量大于或等于预设阈值的数据库相关联的数据核对任务存储于本地。
8.一种数据核对系统,其特征在于,所述系统包括任务中转服务器和多个数据核对服务器;
所述多个数据核对服务器用于分别向所述任务中转服务器发送核对任务获取请求;以及基于对应的待处理核对任务中的核对范围信息,确定目标待核对数据;以及基于对应的待处理核对任务的数据分块参数,对所述目标待核对数据进行数据分块,得到多个待核对数据块;以及创建与所述多个待核对数据块的数量对应的多个数据核对线程;以及基于所述多个数据核对线程,分别对所述多个待核对数据块执行数据核对;
所述任务中转服务器用于响应于每个数据核对服务器发送的核对任务获取请求,从多个数据核对任务中,确定所述每个数据核对服务器对应的待处理核对任务,所述待处理核对任务包括核对范围信息,以及数据分块参数,所述数据分块参数为任务控制服务器生成数据核对任务时,基于数据库延迟信息确定的;以及将所述待处理核对任务发送到对应的数据核对服务器。
9.一种数据核对设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一所述的数据核对方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一所述的数据核对方法。
CN202110936778.3A 2021-08-16 2021-08-16 一种数据核对方法、系统、设备及存储介质 Pending CN113641498A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110936778.3A CN113641498A (zh) 2021-08-16 2021-08-16 一种数据核对方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110936778.3A CN113641498A (zh) 2021-08-16 2021-08-16 一种数据核对方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113641498A true CN113641498A (zh) 2021-11-12

Family

ID=78421930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110936778.3A Pending CN113641498A (zh) 2021-08-16 2021-08-16 一种数据核对方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113641498A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201484A (zh) * 2021-12-16 2022-03-18 北京达佳互联信息技术有限公司 信息处理方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201484A (zh) * 2021-12-16 2022-03-18 北京达佳互联信息技术有限公司 信息处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US9489443B1 (en) Scheduling of splits and moves of database partitions
US9519674B2 (en) Stateless datastore-independent transactions
EP2746948A1 (en) Device and method for optimization of data processing in a MapReduce framework
CN106817408B (zh) 一种分布式服务器集群调度方法及装置
EP1654648B1 (en) Hierarchical management of the dynamic allocation of resources in a multi-node system
WO2012000997A1 (en) An apparatus for processing a batched unit of work
US20120005522A1 (en) Fault tolerance for map/reduce computing
US10819641B2 (en) Highly available servers
US10630566B1 (en) Tightly-coupled external cluster monitoring
US9747291B1 (en) Non-disruptive upgrade configuration translator
CN105069152B (zh) 数据处理方法及装置
CN111880934A (zh) 一种资源管理方法、装置、设备及可读存储介质
CN112199427A (zh) 一种数据处理方法和系统
US10102098B2 (en) Method and system for recommending application parameter setting and system specification setting in distributed computation
CN111338834B (zh) 数据存储方法和装置
CN114625533A (zh) 分布式任务调度方法、装置、电子设备及存储介质
Abu-Libdeh et al. Leveraging sharding in the design of scalable replication protocols
CN113641498A (zh) 一种数据核对方法、系统、设备及存储介质
CN109002263B (zh) 存储容量的调整方法及装置
Marandi et al. Filo: Consolidated consensus as a cloud service
EP3811227B1 (en) Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment
CN109614242B (zh) 一种计算能力共享方法、装置、设备及介质
CN111767126A (zh) 分布式批量处理的系统和方法
CN111431951B (zh) 一种数据处理方法、节点设备、系统及存储介质
CN116954816A (zh) 容器集群控制方法、装置、设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40053640

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination