CN107038182A - 分表数据的完备性检查方法及装置 - Google Patents

分表数据的完备性检查方法及装置 Download PDF

Info

Publication number
CN107038182A
CN107038182A CN201610856610.0A CN201610856610A CN107038182A CN 107038182 A CN107038182 A CN 107038182A CN 201610856610 A CN201610856610 A CN 201610856610A CN 107038182 A CN107038182 A CN 107038182A
Authority
CN
China
Prior art keywords
data
point
business
business datum
mark
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.)
Granted
Application number
CN201610856610.0A
Other languages
English (en)
Other versions
CN107038182B (zh
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.)
Ant Fortune Shanghai Financial Information Service Co ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610856610.0A priority Critical patent/CN107038182B/zh
Publication of CN107038182A publication Critical patent/CN107038182A/zh
Application granted granted Critical
Publication of CN107038182B publication Critical patent/CN107038182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

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

Abstract

本申请提供一种分表数据的完备性检查方法及装置,应用于分布式服务器集群,包括管控服务器以及业务服务器;业务服务器中的业务数据被拆分存储于若干不同的数据分表,包括:管控服务器将各数据分表中的业务数据汇总至本地的预设数据表;在针对所述预设数据表的定时处理任务被触发前,定时向业务服务器发出针对各数据分表的数据检查请求;业务服务器响应于数据检查请求对各数据分表执行数据完备性检查,并向管理服务器补充发送业务数据,由管控服务器对预设数据表中汇总的业务数据进行补全。本申请可以最大程度的确保定时任务被触发时,各数据分表中的业务数据的完备性,有效降低待处理的业务数据发生遗漏的概率。

Description

分表数据的完备性检查方法及装置
技术领域
本申请涉及计算机应用领域,尤其涉及一种分表数据的完备性检查方法及装置。
背景技术
分库分表,是指一种将具有相同结构的数据,分块存储到多个数据库上的多个数据分表的一种数据拆分方法。通过分库分表,可以解决由于单一的数据库中所承载的数据量过于庞大,而服务器的处理资源有限,造成的服务器的数据处理性能遭遇瓶颈的问题。
然而,通过分库分表,虽然可以缓解服务器的数据处理性能的瓶颈为题,但由于针对单一数据库进行分库分表后,该单一数据库中的待处理数据条目通常将会散落于不同数据库上的不同数据分表上,因而如果需要通过定时任务针对该单一数据库中的所有数据条目进行统一处理,则可能会出现由于部分数据分表的数据条目不完备,而造成待处理的数据条目遗漏的问题。
发明内容
本申请提出一种分表数据的完备性检查方法,应用于分布式服务器集群中的管控服务器,所述分布式服务器集群包括管控服务器以及业务服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该方法包括:
将各数据分表中的业务数据汇总至本地的预设数据表;
在针对所述预设数据表的定时处理任务被触发前,定时向所述业务服务器发出针对各数据分表的数据检查请求,以使所述业务服务器响应于所述数据检查请求对各数据分表执行数据完备性检查;
接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,补充发送的业务数据,对所述预设数据表中汇总的业务数据进行补全。
本申请还提出一种分表数据的完备性检查方法,应用于分布式服务器集群中的业务服务器,所述分布式服务器集群包括业务服务器以及管控服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该方法包括:
接收管理服务器在针对其本地的预设数据表的定时处理任务被触发前,发送的数据检查请求;其中,所述预设数据表汇总了各数据分表中的业务数据;
响应于所述数据检查请求对各数据分表执行数据完备性检查;
当完成针对各数据分表的数据完备性检查后,向所述管理服务器补充发送业务数据,以对所述预设数据表中的业务数据进行补全。
本申请还提出一种分表数据的完备性检查装置,应用于分布式服务器集群中的管控服务器,所述分布式服务器集群包括管控服务器以及业务服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该装置包括:
汇总模块,将各数据分表中的业务数据汇总至本地的预设数据表;
第一发送模块,在针对所述预设数据表的定时处理任务被触发前,定时向所述业务服务器发出针对各数据分表的数据检查请求,以使所述业务服务器响应于所述数据检查请求对各数据分表执行数据完备性检查;
接收模块,接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,补充发送的业务数据,对所述预设数据表中汇总的业务数据进行补全。
本申请还提出一种分表数据的完备性检查装置,应用于分布式服务器集群中的业务服务器,所述分布式服务器集群包括业务服务器以及管控服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该装置包括:
第二发送模块,接收管理服务器在针对其本地的预设数据表的定时处理任务被触发前,发送的数据检查请求;其中,所述预设数据表汇总了各数据分表中的业务数据;
检查模块,响应于所述数据检查请求对各数据分表执行数据完备性检查;
补全模块,当完成针对各数据分表的数据完备性检查后,向所述管理服务器补充发送业务数据,以对所述预设数据表中的业务数据进行补全。
本申请中,业务服务器中的业务数据被拆分存储于若干不同的数据分表,管控服务器通过将各数据分表中的业务数据汇总至本地的预设数据表,并在针对所述预设数据表的定时处理任务被触发前,定时向业务服务器发出针对各数据分表的数据检查请求;业务服务器响应于该数据检查请求对各数据分表执行数据完备性检查,并在完成针对各数据分表的数据完备性检查后,向管控服务器补充发送业务数据,由管控服务器对预设数据表中汇总的业务数据进行补全;本申请实现了管控服务器可以对各数据分表中的业务数据进行集中管控,以及在针对各数据分表的定时任务被触发前,可以调用业务服务器对各数据分表分别数据完备性检查,并根据业务服务器在完成数据完备性检查后,补充发送的业务数据对预设数据表中的业务数据进行补全,从而可以最大程度的确保定时任务被触发时,各数据分表中的业务数据的完备性,有效降低待处理的业务数据发生遗漏的概率。
附图说明
图1是本申请一实施例示出的一种分表数据的完备性检查方法的流程图;
图2是本申请一实施例示出的管控服务器汇总各数据分表中的业务数据的处理流程图;
图3是本申请一实施例示出的业务服务器基于接收到的数据检查请求针对各数据分表执行数据完备性检查的处理流程图;
图4是本申请一实施例示出的一种分表数据的完备性检查装置的逻辑框图;
图5是本申请一实施例提供的承载所述一种分表数据的完备性检查装置的管控服务器的硬件结构图;
图6是本申请一实施例示出的另一种分表数据的完备性检查装置的逻辑框图;
图7是本申请一实施例提供的承载所述另一种分表数据的完备性检查装置的业务服务器的硬件结构图。
具体实施方式
在相关技术中,为了解决由于单一的数据库中所承载的业务数据过于庞大,而服务器的处理资源有限,造成的服务器的数据处理性能遭遇瓶颈的问题,通常可以采用分库分表技术,将单一的数据库中的业务数据分拆存储于若干不同的数据分表。例如,可以将单一的数据库中拆分成多个数据分库,每一个数据分库再进一步拆分出多个数据分表。
分库分表技术,虽然在某种程度上可以缓解服务器数据处理性能的瓶颈问题,但在实际应用中,通过分库分表技术将单一的数据库拆分成多个数据分表后,通常还具有通过定时任务,针对各数据分表中的业务数据进行统一处理的需求。
在这种场景下,如果需要通过定时任务针对各数据分表中的业务数据进行统一处理,由于业务数据散落于不同的数据分表,无法进行统一管控,而各数据分表中可能会由于系统原因存在仍然处于中间状态的业务数据(即未完成状态的业务数据,这类业务数据通常无法进行处理);因此在这种情况下,各数据分表中的业务数据通常并不完备,定时任务在针对各数据分表中的业务数据进行统一处理时,会面临待处理的业务数据出现遗漏的问题。
为了应对以上示出的数据的遗漏问题,在相关技术中,通常是在定时任务触发之前,对各个数据分表中的业务数据进行主动检查,对处于中间状态的业务数据进行修复和业务推进,尽量避免定时任务触发前,各数据分表中还存在中间状态的业务数据。
然而,这种方案并不能确保在定时任务触发前,各数据分表中处于中间状态的业务数据能够全部修复和推进完成;而且,各数据分表分别进行独立的检查,无法针对各数据分表的检查结果进行统一管控。
有鉴于此,本申请提出一种分表数据的完备性检查方法,本申请中,业务服务器中的业务数据被拆分存储于若干不同的数据分表,管控服务器通过将各数据分表中的业务数据汇总至本地的预设数据表,并在针对所述预设数据表的定时处理任务被触发前,定时向业务服务器发出针对各数据分表的数据检查请求;业务服务器响应于该数据检查请求对各数据分表执行数据完备性检查,并在完成针对各数据分表的数据完备性检查后,向管控服务器补充发送业务数据,由管控服务器对预设数据表中汇总的业务数据进行补全;本申请实现了管控服务器可以对各数据分表中的业务数据进行集中管控,以及在针对各数据分表的定时任务被触发前,可以调用业务服务器对各数据分表分别数据完备性检查,并根据业务服务器在完成数据完备性检查后,补充发送的业务数据对预设数据表中的业务数据进行补全,从而可以最大程度的确保定时任务被触发时,各数据分表中的业务数据的完备性,有效降低待处理的业务数据发生遗漏的概率。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参考图1,图1是本申请一实施例提供的分表数据的完备性检查方法,应用于分布式服务器集群,所述分布式服务器集群包括管控服务器以及业务服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;所述方法执行以下步骤:
步骤101,管控服务器将各数据分表中的业务数据汇总至本地的预设数据表;
步骤102,管控服务器在针对所述预设数据表的定时处理任务被触发前,定时向业务服务器发出针对各数据分表的数据检查请求;
步骤103,业务服务器响应于所述数据检查请求对各数据分表执行数据完备性检查;
步骤104,当完成针对各数据分表的数据完备性检查后,业务服务器向管理服务器补充发送业务数据;
步骤105,管控服务器对所述预设数据表中汇总的业务数据进行补全。
在本例中,将通过业务数据的分库分表、业务数据的汇总、各数据分表的数据完备性检查,以及补全汇总的业务数据等4个阶段,对本申请的技术方案进行详细描述。
1)业务数据的分库分表
在本例中,上述业务服务器通常可以将执行业务的过程中,产生的业务数据存储在业务数据库中。为了提升业务服务器的数据处理性能,上述业务服务器可以基于分库分表技术,将业务数据库(即数据主表)拆分成多个不同的数据分库,每一个数据分库可以再进一步拆分出多个数据分表。例如,可以将业务数据库拆分成10个数据分库,拆分出的这10个数据库可以进一步拆分出10个数据分表。
其中,在进行分库分表时,拆分出的数据库以及数据分表的数量,在本例中不进行特别限定,在实际应用中,可以基于业务服务器实际的性能需求,对拆分出的数据分库以及数据分表的数量进行扩展。
当分库分表完成后,业务数据库中存储的业务数据,将会分布于多个不同的数据库中的多个数据分表中。当业务服务器在执行业务时,可以将该业务对应的业务数据存储至业务数据库,并同步的将该业务数据插入至对应的数据分表中进行存储。
其中,将业务数据插入对应的数据分表时,可以通过预设的分表规则来定位与该业务数据对应的数据分库和数据分表来完成。
在示出的一种分表策略中,可以基于与业务数据对应的用户标识来定位数据分库和数据分表。
例如,假设用户标识为userId,可以将分表规则配置为通过userId中的特定位的取值来分别定位与该userId的业务数据对应的数据分库和数据分表;比如,假设userId=2088102122954570,可以将分表规则配置为取倒数第三位定位数据分库,取倒数第二、三位来定位数据分表,由于该userId倒数第三位为5,可以定位到数据分库db05;该userId倒数第二、三位为57,可以定位到数据分表t_order_57。后续与该userId对应的业务数据将存储在数据分库db05下的数据分表t_order_57。
可见,通过这种方式,可以将业务服务器执行的业务对应的业务数据,“均匀”的插入不同的数据分表中进行存储。
需要说明的是,以上示出的分表规则仅为示例性的,并不用于限定本申请,在实际应用中,还可以采用以上示出的分表规则以外的其它类型的分表规则,在本申请中不再进行一一详述。
2)业务数据的汇总
在本例中,上述管控服务器,可以通过对业务服务器拆分存储在多个数据分表中的业务数据进行汇总,并进行集中管控。
请参见图2,图2为本例示出的一种管控服务器汇总各数据分表中的业务数据的处理流程图,包括以下执行步骤:
步骤201,业务服务器将与已执行业务对应的业务数据存储至对应的数据分表,并在该业务执行完成后,将该业务数据发送至管控服务器;
在本例中,对各数据分表中的业务数据进行汇总,可以通过汇总业务服务器通过可靠消息,发送至管控服务器的业务数据来完成。
其中,上述可靠消息,是指软件系统之间异步通讯传递的消息,该可靠消息可以通过topic(主题)和eventCode(事件码)来确定消息的发送者与消息的接收者之间的关联,从而可以确保消息在发送者到接收者之间投递的可靠性。
在示出的一种实施方式中,业务服务器在业务执行过程中:
一方面,业务数据可以将该业务数据存储至业务数据库,并通过预设的分表规则定位与该业务数据对应的数据分库和数据分表,将该业务数据同步插入至对应的数据分表中进行存储;此时插入数据分表的该业务数据对应的业务有可能尚未执行完成,业务服务器还可以继续执行该业务,针对该业务继续进行业务推进;例如,当上述业务数据为订单数据时,此时该订单对应的交易可能尚未支付完成,业务服务器可以继续推进该订单的完成该订单的支付。
另一方面,当业务服务器将业务数据插入至对应的数据分表进行存储后,如果该业务数据对应的业务执行完成,业务服务器还可以将该业务的业务数据通过可靠消息,发送至管控服务器,由管控服务器进行汇总。
在本例中,存储在各数据分表中的业务数据,以及通过可靠消息发送至管控服务器的业务数据,除了可以包括一些与业务相关的业务信息以外,还可以包括业务数额和该业务数据所在的数据分表的分表标识。
例如,在示出的一种投资理财产品的申购场景中,上述业务数据可以是理财产品申购产生的订单数据,在订单数据中除了可以包括一些与申购相关的诸如订单号、投资机构的标识、所属的交易日等信息以外,还可以包括申购的金额(相当于业务数额)、以及该订单存储所在的数据分表的分表标识。
可见,通过以上示出的汇总方式,使得业务服务器在将业务数据插入对应的数据分表后,就可以在该业务执行完成后,实时的将该业务数据发送至管控服务器进行汇总,从而实现了业务数据插入数据分表,与业务数据的汇总在功能上的同步性。
步骤202,管控服务器接收所述业务服务器发送的各数据分表的业务数据,并统一存储至本地的预设数据表;
步骤203,针对所述预设数据表中分表标识相同的业务数据的业务数额进行汇总求和,得到与各分表标识对应的业务总额;
步骤204,将与各分表标识对应的业务总额存储至所述预设数据表。
在本例中,管控服务器可以将各数据分表中的业务数据,统一汇总至本地的预设数据表中。
在该预设数据表中,可以包含汇总后的各数据分表中的业务数据的明细,各数据分表中各业务数据对应的业务数额的汇总结果,以及与各数据分表对应的数据状态等信息。与各数据分表对应的数据状态默认可以设置为数据未完备状态。
其中,需要说明的是,在实际应用中,上述预设数据表,可以是管控服务器预先设置的一数据单表,也可以是多张数据表。
例如,以上述预设数据表为多张数据表为例,在示出的一种实施方式,上述预设数据表,可以包括一业务数据明细表,和一业务数据汇总表。
上述业务数据明细表,用于集中存储接收到的业务数据。
上述业务数据汇总表用于存储针对各数据分表中的业务数据的汇总结果,以及各数据分表对应的数据状态。
当管控服务器接收到业务服务器通过可靠消息发送至本地的业务数据时:
一方面,管控服务器可以实时的将接收到的业务数据统一存储至上述业务数据明细表。通过这种方式,可以基于业务服务器发送的可靠消息,源源不断的将各数据分表中的业务数据汇总到该业务数据明细表中。
例如,在示出的一种投资理财产品的申购场景中,上述业务数据可以是理财产品申购产生的订单数据,上述业务数据明细表可以是一订单明细表,该订单明细表的具体格式可以如下表1所示:
分表标识 订单号 投资机构 金额 所属交易日
01 2015010101001 XX_INSU 200 20150101
01 2015010101002 XX_INSU 150 20150101
04 2015010104001 XX_INSU 100 20150101
表1
另一方面,对于业务数据明细表中存储的业务数据,由于业务数据中包括业务数据,以及所在数据分表的标识,管控服务器还可以针对业务数据明细表中,分表标识相同的业务数据的业务数额进行实时的汇总求和,得到与各数据分表的分表标识对应的业务总额。
当得到与各数据分表对应的业务总额后,可以将与各数据分表对应的业务总额,对应存储至上述业务数据汇总表中。同时,在初始状态下,还可以在上述业务数据汇总表中,将各数据分表对应的数据状态设置为数据未完备状态(即表2示出的false状态)。通过这种方式,管控服务器可以对各数据分表中的业务数据对应的业务总额(即表2示出的累计金额),实时的进行汇总。
例如,在示出的一种投资理财产品的申购场景中,上述业务数据可以是理财产品申购产生的订单数据,上述业务数据汇总表可以是一机构每日明细表,该机构每日明细表的具体格式可以如下表2所示,该表2为针对上述表1中的订单数据进行汇总得到:
分表标识 投资机构 累计金额 所属交易日 分表数据是否完备
01 XX_INSU 350 20150101 False
04 XX_INSU 100 20150101 False
表2
以上述预设数据表为多张数据表,包括一业务数据明细表,和一业务数据汇总表为例进行了示例性说明。
需要强调的是,在实际应用中,上述预设数据表也可以一数据单表,在本实施例中不进行特别限定;例如,当上述预设数据表为一数据单表时,可以将以上示出的业务数据明细表,和业务数据汇总表合并为一张数据表。
3)各数据分表的数据完备性检查
在本例中,管控服务器可以通过触发定时任务,针对各数据分表中的业务数据进行统一处理。为了确保在上述定时任务触发时,各数据分表中的业务数据均处于数据完备状态,上述管控服务器可以在上述定时任务被触发前的一个指定时间端内(该指定时间段可以基于需求进行自定义设置),启动另一个用于触发各数据分表分别进行数据完备性检查的定时任务,并通过执行该定时任务,定时向各业务服务器发出针对各数据分表的数据检查请求。
在示出的一种实施方式中,管控服务器在发送上述数据检查请求时,可以定时检查上述预设数据表中是否存在数据未完备状态的数据分表;当上述所述预设数据表中存在数据未完备状态的数据分表时,管控服务器可以判断针对上述预设数据表中各数据分表的定时处理任务是否被触发;
如果未被触发,管控服务器可以向业务服务器发送针对所有数据未完备状态的数据分表的数据检查请求。
如果已被触发,此时管控服务器还可以终止该定时处理任务,并输出该定时任务的数据不完备的告警。当业务人员查收到该告警后,可以进行人工干预,对各数据分表的数据完备性进行手动核查和补全。
其中,在发出的数据检查请求中,携带数据未完备状态的数据分表的分表标识,以及与该分表标识对应的业务总额。
该数据检查请求中携带的分表标识,用于定位需要检查的数据分表;
与该分表标识对应的业务总额,用于通过业务总额的数值比较来检查各数据分表中的业务数据是否完备。
另外,由于上述预设数据库中,与所有数据分表对应的数据状态,默认情况下均未数据未完备状态,因此在初始状态下,管控服务器会向业务服务器发出针对所有数据分表的数据检查请求。
例如,当管控服务器针对如表2所示出的机构每日明细表,向业务服务器发出针对表2中记录的各数据分表的数据检查请求的消息体格式,可以如下所示:
{flag=01,instid="XX_INSU",amount=350}
{flag=04,instid="XX_INSU",amount=100}
其中,在以上示出的消息体中,flag指分表标识;instid指投资机构的标识;amount是指与该分表标识对应的累计金额。
请参见图3,图3为本例示出的一种业务服务器基于接收到的数据检查请求针对各数据分表执行数据完备性检查的处理流程图,包括以下执行步骤:
步骤301,获取所述数据检查请求中携带的分表标识,并针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总求和,得到与该分表标识对应的业务总额;
在本例中,当业务服务器接收到管控服务器发送的数据检查请求后,首先可以获取数据检查请求中携带的分表标识,然后基于该分表标识查找对应的数据分表,此时查找到的该数据分表即为需要进行数据完备性检查的数据分表。
在这种情况下,业务服务器可以对该数据分表中所有的业务数据对应的业务数额进行汇总求和,得到与该数据分表对应的业务总额。当得到该数据分表对应的业务总额后,业务服务器可以将该业务总额,和该数据检查请求中携带的与该数据分表的分表标识对应的业务总额进行比较。
步骤302,判断与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额是否相等;如果相等,确定与该分表标识对应的数据分表通过数据完备性检查;
在本例中,如果二者相等,表明该数据分表对应的业务总额,和管控服务器汇总得到的该数据分表对应的业务总额一致,此时该数据分表中的业务数据并不“缺失”,在这种情况下,业务服务器可以确定与该分表标识对应的数据分表通过了数据完备性检查。
步骤303,如果不相等,计算与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额之间的差值,并基于所述差值查找与该分表标识对应的数据分表中未汇总至所述预设数据表中的业务数据。
在本例中,如果二者不相等,此时业务服务器可以确定与该分表标识对应的数据分表未通过数据完备性检查。
在这种情况下,上述管控服务器,可以计算其通过汇总求和计算出的与该分表标识对应的业务总额,和上述数据检查请求携带的与该分表标识对应的业务总额之间的差值,并基于该差值来查找与该分表标识对应的数据分表中未汇总至所述预设数据表中的业务数据。
在本例中,当业务服务器完成针对各数据分表的数据完备性检查后,还可以向管控服务器通报检查结果。
在示出的一种实施方式中,上述业务服务器可以向管理服务器返回一个响应消息,在该响应消息中可以携带通过数据完备性检查的数据分表的分表标识。
例如,当上述表2中记录的数据分表01通过了数据完备性检查请求,该响应消息的消息体可以如下所示:
{instid="XX_INSU",flag=01,IsDone=ture}
上述消息体中,IsDone=ture表明数据分表01通过了数据完备性检查。
在本例中,当管控服务器接收到该响应消息后,可以读取该响应消息中携带的通过数据完备性检查的数据分表的分表标识,此时与该分表标识对应的数据分表的业务总额,与管控服务器在上述预设数据表中汇总得到的业务总额一致,表明该数据分表中的业务数据已经完备。
在这种情况下,管控服务器可以在上述预设数据表中,将该数据分表对应的数据状态,由默认的数据未完备状态,修改为数据完备状态;例如,假设用false状态表示数据未完备状态,那么可以将数据状态由false状态修改为true状态,表示数据完备状态。
当然,在本例中,对于那些未通过数据完备性检查的数据分表,此时该数据分表中可能仍然存在处于中间状态,未成功汇总至管控服务器的业务数据,在这种情况下,业务服务器还可以对该数据分表中这些“缺失”的业务数据,通过可靠消息补充发送至管控服务器,以对上述预设数据表中的业务数据进行补全。
4)补全汇总的业务数据
在本例中,管控服务器对上述预设数据表中汇总的业务数据进行补全时,业务服务器补充发送的业务数据通常包含以下两种来源:
来源一:数据分表中的未完成状态的业务数据
在本例中,业务服务器在从管控服务器发出的数据检查请求中读取了分表标识后,在开启针对与该分表标识对应的数据分表的数据完备性检查之前,可以首先检查该数据分表中是否存在未完成状态的业务数据;
如果存在,业务服务器可以继续执行该业务,并在该业务执行完成后,将该业务对应的业务数据通过可靠消息,发送至管控服务器,由管控服务器对该业务数据进行汇总。
通过这种方式,可以将数据分表中那些未完成状态的业务数据,补充发送至管控服务器,从而可以避免由于数据分表中存储了该业务数据,而管控服务器未在上述预设数据表中汇总该业务数据,而造成的两方的业务数据不一致的情况发生。
来源二:数据分表中未成功投递至管控服务器的业务消息
在本例中,当上述管控服务器通过将汇总求和得到的某一待检查的数据分表的业务总额,和接收到的数据检查请求中携带的该数据分表的业务总额进行比较,确定出该数据分表未通过数据完备性检查后,上述管控服务器还可以进一步计算汇总求和得到的业务总额,和数据检查请求中携带的该数据分表的业务总额之间的差值,然后可以基于该差值,来查找该数据分表中未汇总至上述预设数据表中的业务数据。
在示出的一种实施方式中,管控服务器在基于上述差值查找该数据分表中未汇总至上述预设数据表中的业务数据时,可以通过如下策略来完成:
在一种策略中,管控服务器可以查找该数据分表中业务数额与上述差值完全相同的业务数据。如果该数据分表中存在业务数额和上述差值完全相同的业务数据,那么该业务数据很可能正是上述预设数据表中“缺失”的业务数据。
在另一种策略中,管控服务器可以查找该数据分表中,业务数额相加后与上述差值相同的多个业务数据。在这种情况下,管控服务器可以通过遍历该数据分表,将该数据分表中的业务数据依次与其它的业务数据分别进行相加,然后来查找业务数额相加后与上述差值相同的多个业务数据。如果该数据分表中存在业务数额相加后,和上述差值完全相同的多个业务数据,那么该多个业务数据则很可能正是上述预设数据表中“缺失”的多个业务数据。
当管控服务器通过以上策略,成功查找到上述预设数据表中“缺失”的业务数据时,可以将查找的业务数据通过可靠消息重新发送至管控服务器,由管控服务器对上述预设数据表中汇总的业务数据进行补全。
当然,在实际应用中,当管控服务器确定出任一待检查的数据分表未通过数据完备性检查后,除了以上描述的可以基于上述差值来查找未汇总至上述预设数据表的业务数据以外,也可以默认将该数据分表中所有的业务数据,通过可靠消息补充发送至管控服务器,管控服务器在收到后可以对已汇总的业务数据进行去重,从而完成针对已汇总的业务数据中“缺失”的业务数据的补全操作。
在本例中,当管控服务器在上述定时处理任务触发前,通过执行以上描述的针对各数据分表的数据完备性的定时检查机制,以及业务数据的汇总补全机制,将上述预设数据表中各数据分表均标记为数据完备状态,那么管控服务器可以在上述定时任务触发时,基于上述预设数据表中所有数据完备的数据分表中的业务数据,来正常的执行该定时处理任务。
可见,在以上实施例中,通过定时针对各数据分表中的业务数据进行数据完备性进行检查,并对管控服务器汇总的业务数据进行补全,可以最大程度的确保上述定时处理任务被触发时,各数据分表中的业务数据的完备性,有效降低待处理的业务数据发生遗漏的概率。
以下结合具体的应用场景对以上实施例中的技术方案进行详述。
在示出的一种投资理财产品的申购场景中,上述业务数据,可以是理财产品申购产生的订单数据;而上述业务数额,则可以是与订单对应的金额。
在投资理财产品的申购场景中,用户通常可以通过理财APP申购第三方的投资机构的理财产品,与该理财产品APP对接的业务服务器为了提升数据处理性能,可以对用户通过理财APP发起理财申购产生的订单数据(相当于上述业务数据)进行分库分表。
假设拆分成100张数据分表。该业务服务器可以在每日凌晨触发定时任务,从这100张数据分表中捞取昨日处于支付完成状态的订单数据进行处理,生成投资文件提供给投资机构,由投资机构进行确认以及后续的收益计算等业务操作。
然而,在相关技术中,由于订单数据散落于100张数据分表中,这些分表中的订单数据可能会由于系统的原因停留在中间状态(比如未完成支付的状态),而服务器仅会定时捞取那些支付完成状态的订单数据,因此在这种情况下,会导致服务器在定时任务触发后捞取数据时,出现漏单的情况。
在本例中,为了解决上述问题,提出一种分布式服务器集群架构,在与理财产品APP对接的业务服务器的基础上,进一步引入管控服务器。
在上述分布式服务器集群架构中,业务服务器可以将各数据分表中的订单数据,通过可靠消息发送至管控服务器,由管控服务器进行汇总并集中管控。并且,在每日凌晨定时捞取上述100个数据分表中的订单数据生成投资文件的定时任务,将不再由业务服务器来执行,而是由管控服务器来执行。
管控服务器在其本地可以预先设置一订单明细表,和一机构每日明细表。
上述订单明细表,用于集中存储业务服务器发送的各数据分表中的订单数据。其中,上述订单数据以及上述订单明细表的具体格式可以参见以上实施例中的表1所示。
上述机构每日明细表,用于存储针对各数据分表中的订单数据的汇总结果,以及各数据分表对应的数据状态。其中,上述机构每日明细表的具体格式可以参见以上实施例中的表2所示。
在本例中,业务服务器负责每日的申购订单的交易执行,每执行一笔订单,可以将相应的订单数据插入对应的数据分表,并在该笔订单完成后,将该笔订单的订单数据通过可靠消息发送至汇总服务器。
管控服务器接收到业务服务器通过可靠消息发送的订单数据后,可以将该订单数据统一存储到订单明细表进行汇总,并同步在机构每日明细表中,汇总每一个数据分表中的订单数据对应的累计金额。
在本例中,上述机构每日明细表中,每一数据分表对应的数据状态默认为false状态(数据未完备状态)。在针对上述100个数据分表中的订单数据进行处理的定时任务触发前的指定时间段内(比如该定时任务触发前的一个小时之内),管控服务器可以定时向业务服务器发出针对各false状态的数据分表的数据检查请求,在该检查请求中可以携带该数据分表中所有订单数据对应的累计金额。
业务服务器在接收到该数据检查请求后,可以读取数据检查请求中的分表标识,并检查与该分表标识对应的数据分表中是否存在未完成状态的订单数据;
如果存在未完成状态的订单数据,业务服务器可以继续执行与这些未完成状态的订单数据的交易,并在交易完成后,通过可靠消息将这些订单数据补充发送给管控服务器。
如果数据分表中的订单数据对应的交易均已执行完成,不存在未完成状态的订单数据,业务服务器可以对该数据分表中的订单数据对应的累计金额进行汇总求和,并和上述数据检查请求中携带的该数据分表的累计金额进行比较;
如果二者数值保持一致,此时该数据分表通过数据完备性检查,业务服务器可以向管控服务器返回响应消息,在该响应消息中携带该通过检查的数据分表的分表标识。管控服务器在收到该响应消息后,可以将该响应消息中携带的分表标识对应的数据分表,在上述机构每日明细表中标记为true状态(数据完备状态)。
如果二者数值保持一致,管控服务器可以计算二者的差值,并基于该查找在该数据分表中查找未汇总至上述订单明细表的订单数据,然后将查找到的订单数据通过可靠消息补充发送给管控服务器,由管控服务器对上述订单明细表中汇总的订单数据进行补全。
在本例中,管控服务器,可以通过执行以上描述的针对各数据分表的数据完备性的定时检查机制,以及业务数据的汇总补全机制,不断的对上述订单明细表以及上述机构每日明细表中汇总的订单数据进行完善。
当上述定时任务触发之前,管控服务器可以核对上述机构每日明细表中被标记为true状态的数据分表的个数是否为100个;如果是,表明所有100个数据分表的数据状态均已完备,此时可以正常的执行上述定时任务,对各数据分表中所有的订单数据进行处理,生成投资文件,发送给投资机构。
当然,如果上述定时任务触发后,上述机构每日明细表中被标记为true状态的数据分表的个数不足100个,为了防止漏单,管控服务器可以终止生成上述投资文件的定时任务,并输出订单数据不完备的告警,由业务人员介入进行人工核对,从而可以最大程度的避免“漏单”的发生。
通过以上实施例的描述可见,通过定时针对各数据分表中的订单数据进行数据完备性进行检查,并对管控服务器汇总的订单进行补全,可以最大程度的确保上述定时处理任务被触发时,各数据分表中的订单数据的完备性,有效降低“漏单”的概率。
以上实施例以投资理财产品的申购场景为例对本申请的技术方案进行了说明,需要指出的是,在实际应用中,本申请的技术方案也可以应用于其它类似的对业务数据进行分库分表的应用场景中,在本申请中不再进行详述。
与上述方法实施例相对应,本申请还提供了装置的实施例。
请参见图4,本申请提出一种分表数据的完备性检查装置40,应用于分布式服务器集群中的管控服务器,所述分布式服务器集群包括业务服务器以及管控服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;请参见图5,作为承载所述分表数据的完备性检查装置40的管控服务器所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述分表数据的完备性检查装置40通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置40包括:
汇总模块401,将各数据分表中的业务数据汇总至本地的预设数据表;
第一发送模块402,在针对所述预设数据表的定时处理任务被触发前,定时向所述业务服务器发出针对各数据分表的数据检查请求,以使所述业务服务器响应于所述数据检查请求对各数据分表执行数据完备性检查;
接收模块403,接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,补充发送的业务数据,对所述预设数据表中汇总的业务数据进行补全。
在本例中,所述业务数据包括业务数额、以及所在数据分表的分表标识;
所述汇总模块401:
接收所述业务服务器发送的各数据分表的业务数据,并统一存储至本地的预设数据表;
针对所述预设数据表中分表标识相同的业务数据的业务数额进行汇总求和,得到与各分表标识对应的业务总额;
将与各分表标识对应的业务总额存储至所述预设数据表。
在本例中,所述预设数据表中还包括与各分表标识对应的数据状态;其中,与各分表标识对应的数据状态默认为数据未完备状态;
所述第一发送模块402:
定时检查所述预设数据表中是否存在数据未完备状态的数据分表;
当所述预设数据表中存在数据未完备状态的数据分表时,判断针对所述预设数据表中的定时处理任务是否被触发;
如果针对所述预设数据表中的定时处理任务未被触发,向所述业务服务器发送针对所述数据未完备状态的数据分表的数据检查请求;
其中,所述数据检查请求携带所述数据未完备状态的数据分表的分表标识,以及与该分表标识对应的业务总额。
在本例中,所述第一发送模块402进一步:
如果针对所述预设数据表的定时处理任务已被触发,终止该定时任务,并输出该定时任务的数据不完备的告警。
在本例中,所述接收模块403进一步:
接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,返回的响应消息;所述响应消息携带通过数据完备性检查的数据分表的分表标识;
在所述预设数据表中将与所述响应消息中携带的分表标识对应的数据状态标记为数据已完备状态。
在本例中,所述业务数据为订单数据;所述业务数额为与订单对应的金额。
请参见图6,本申请提出一种分表数据的完备性检查装置60,应用于分布式服务器集群中的业务服务器,所述分布式服务器集群包括业务服务器以及管控服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;请参见图7,作为承载所述分表数据的完备性检查装置60的业务服务器所涉及的硬件架构中,通常包括CPU、内存、非易失性存储器、网络接口以及内部总线等;以软件实现为例,所述分表数据的完备性检查装置60通常可以理解为加载在内存中的计算机程序,通过CPU运行之后形成的软硬件相结合的逻辑装置,所述装置60包括:
第二发送模块601,接收管理服务器在针对其本地的预设数据表的定时处理任务被触发前,发送的数据检查请求;其中,所述预设数据表汇总了各数据分表中的业务数据;
检查模块602,响应于所述数据检查请求对各数据分表执行数据完备性检查;
补全模块603,当完成针对各数据分表的数据完备性检查后,向所述管理服务器补充发送业务数据,以对所述预设数据表中的业务数据进行补全。
在本例中,所述第二发送模块601进一步:
将与已执行业务对应的业务数据存储至对应的数据分表,并在该业务执行完成后,将该业务数据发送至所述管控服务器,以由所述管控服务器在所述预设数据表中对该业务数据进行汇总。
在本例中,所述业务数据包括业务数额、以及所在数据分表的分表标识;所述数据检查请求携带待检查的数据分表的分表标识,以及与该分表标识对应的业务总额;其中,该业务总额为所述预设数据表中具有该分表标识的业务数据的业务数额之和;
所述检查模块602:
获取所述数据检查请求中携带的分表标识,并针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总求和,得到与该分表标识对应的业务总额;
判断与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额是否相等;如果相等,确定与该分表标识对应的数据分表通过数据完备性检查;
如果不相等,计算与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额之间的差值,并基于所述差值查找与该分表标识对应的数据分表中未汇总至所述预设数据表中的业务数据。
在本例中,所述检查模块602进一步:
在针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总之前,查询与该分表标识对应的数据分表中是否存在未完成状态的业务数据;
如果存在,继续执行该业务,并在该业务完成后,将该业务对应的业务数据发送至所述管控服务器,以由所述管控服务器在所述预设数据表中针对该业务数据进行汇总。
在本例中,所述检查模块602进一步:
查找与该分表标识对应的数据分表中业务数额与所述差值相同的业务数据;以及,查找与该分表标识对应的数据分表中业务数额相加后与所述差值相同的多个业务数据;
将查找到的业务数额与所述差值相同的业务数据;以及,业务数额相加后与所述差值相同的多个业务数据,确定为未汇总至所述预设数据表中的业务数据。
在本例中,所述补全模块603:
将基于所述差值查找到的未汇总至所述预设数据表中的业务数据补充发送至所述管控服务器;
或者,将与该分表标识对应的本地数据分表中的所有业务数据,重新发送至所述管控服务器,以由所述管控服务器对所述预设数据表中汇总的业务数据进行补全。
在本例中,所述第二发送模块601:
当完成针对各数据分表的数据完备性检查后,向所述管理服务器返回响应消息;所述响应消息携带通过数据完备性检查的数据分表的分表标识,以使所述管控服务器在所述预设数据表中将与该响应消息中携带的分表标识对应的数据状态标记为数据已完备状态。
在本例中,所述业务数据为订单数据;所述业务数额为与订单对应的金额。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (28)

1.一种分表数据的完备性检查方法,其特征在于,应用于分布式服务器集群中的管控服务器,所述分布式服务器集群包括管控服务器以及业务服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该方法包括:
将各数据分表中的业务数据汇总至本地的预设数据表;
在针对所述预设数据表的定时处理任务被触发前,定时向所述业务服务器发出针对各数据分表的数据检查请求,以使所述业务服务器响应于所述数据检查请求对各数据分表执行数据完备性检查;
接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,补充发送的业务数据,对所述预设数据表中汇总的业务数据进行补全。
2.根据权利要求1所述的方法,其特征在于,所述业务数据包括业务数额、以及所在数据分表的分表标识;
所述将各数据分表中的业务数据汇总至本地的预设数据表,包括:
接收所述业务服务器发送的各数据分表的业务数据,并统一存储至本地的预设数据表;
针对所述预设数据表中分表标识相同的业务数据的业务数额进行汇总求和,得到与各分表标识对应的业务总额;
将与各分表标识对应的业务总额存储至所述预设数据表。
3.根据权利要求2所述的方法,其特征在于,所述预设数据表中还包括与各分表标识对应的数据状态;其中,与各分表标识对应的数据状态默认为数据未完备状态;
所述在针对所述预设数据表的定时处理任务被触发前,定时向所述业务服务器发出针对各数据分表的数据检查请求,包括:
定时检查所述预设数据表中是否存在数据未完备状态的数据分表;
当所述预设数据表中存在数据未完备状态的数据分表时,判断针对所述预设数据表中的定时处理任务是否被触发;
如果针对所述预设数据表中的定时处理任务未被触发,向所述业务服务器发送针对所述数据未完备状态的数据分表的数据检查请求;
其中,所述数据检查请求携带所述数据未完备状态的数据分表的分表标识,以及与该分表标识对应的业务总额。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果针对所述预设数据表的定时处理任务已被触发,终止该定时任务,并输出该定时任务的数据不完备的告警。
5.根据权利要求3所述的方法,其特征在于,还包括:
接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,返回的响应消息;所述响应消息携带通过数据完备性检查的数据分表的分表标识;
在所述预设数据表中将与所述响应消息中携带的分表标识对应的数据状态标记为数据已完备状态。
6.根据权利要求2所述的方法,其特征在于,所述业务数据为订单数据;所述业务数额为与订单对应的金额。
7.一种分表数据的完备性检查方法,其特征在于,应用于分布式服务器集群中的业务服务器,所述分布式服务器集群包括业务服务器以及管控服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该方法包括:
接收管理服务器在针对其本地的预设数据表的定时处理任务被触发前,发送的数据检查请求;其中,所述预设数据表汇总了各数据分表中的业务数据;
响应于所述数据检查请求对各数据分表执行数据完备性检查;
当完成针对各数据分表的数据完备性检查后,向所述管理服务器补充发送业务数据,以对所述预设数据表中的业务数据进行补全。
8.根据权利要求7所述的方法,其特征在于,还包括:
将与已执行业务对应的业务数据存储至对应的数据分表,并在该业务执行完成后,将该业务数据发送至所述管控服务器,以由所述管控服务器在所述预设数据表中对该业务数据进行汇总。
9.根据权利要求7所述的方法,其特征在于,所述业务数据包括业务数额、以及所在数据分表的分表标识;所述数据检查请求携带待检查的数据分表的分表标识,以及与该分表标识对应的业务总额;其中,该业务总额为所述预设数据表中具有该分表标识的业务数据的业务数额之和;
所述响应于所述数据检查请求对各数据分表执行数据完备性检查,包括:
获取所述数据检查请求中携带的分表标识,并针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总求和,得到与该分表标识对应的业务总额;
判断与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额是否相等;如果相等,确定与该分表标识对应的数据分表通过数据完备性检查;
如果不相等,计算与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额之间的差值,并基于所述差值查找与该分表标识对应的数据分表中未汇总至所述预设数据表中的业务数据。
10.根据权利要求9所述的方法,其特征在于,所述针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总之前,还包括:
查询与该分表标识对应的数据分表中是否存在未完成状态的业务数据;
如果存在,继续执行该业务,并在该业务完成后,将该业务对应的业务数据发送至所述管控服务器,以由所述管控服务器在所述预设数据表中针对该业务数据进行汇总。
11.根据权利要求9所述的方法,其特征在于,所述基于所述差值查找与该分表标识对应的数据分表中未汇总至所述预设数据表中的业务数据,包括:
查找与该分表标识对应的数据分表中业务数额与所述差值相同的业务数据;以及,查找与该分表标识对应的数据分表中业务数额相加后与所述差值相同的多个业务数据;
将查找到的业务数额与所述差值相同的业务数据;以及,业务数额相加后与所述差值相同的多个业务数据,确定为未汇总至所述预设数据表中的业务数据。
12.根据权利要求9所述的方法,其特征在于,所述向所述管理服务器补充发送业务数据,包括:
将基于所述差值查找到的未汇总至所述预设数据表中的业务数据补充发送至所述管控服务器;
或者,将与该分表标识对应的本地数据分表中的所有业务数据,重新发送至所述管控服务器,以由所述管控服务器对所述预设数据表中汇总的业务数据进行补全。
13.根据权利要求9所述的方法,其特征在于,还包括:
当完成针对各数据分表的数据完备性检查后,向所述管理服务器返回响应消息;所述响应消息携带通过数据完备性检查的数据分表的分表标识,以使所述管控服务器在所述预设数据表中将与该响应消息中携带的分表标识对应的数据状态标记为数据已完备状态。
14.根据权利要求9所述的方法,其特征在于,所述业务数据为订单数据;所述业务数额为与订单对应的金额。
15.一种分表数据的完备性检查装置,其特征在于,应用于分布式服务器集群中的管控服务器,所述分布式服务器集群包括管控服务器以及业务服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该装置包括:
汇总模块,将各数据分表中的业务数据汇总至本地的预设数据表;
第一发送模块,在针对所述预设数据表的定时处理任务被触发前,定时向所述业务服务器发出针对各数据分表的数据检查请求,以使所述业务服务器响应于所述数据检查请求对各数据分表执行数据完备性检查;
接收模块,接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,补充发送的业务数据,对所述预设数据表中汇总的业务数据进行补全。
16.根据权利要求15所述的装置,其特征在于,所述业务数据包括业务数额、以及所在数据分表的分表标识;
所述汇总模块:
接收所述业务服务器发送的各数据分表的业务数据,并统一存储至本地的预设数据表;
针对所述预设数据表中分表标识相同的业务数据的业务数额进行汇总求和,得到与各分表标识对应的业务总额;
将与各分表标识对应的业务总额存储至所述预设数据表。
17.根据权利要求16所述的装置,其特征在于,所述预设数据表中还包括与各分表标识对应的数据状态;其中,与各分表标识对应的数据状态默认为数据未完备状态;
所述第一发送模块:
定时检查所述预设数据表中是否存在数据未完备状态的数据分表;
当所述预设数据表中存在数据未完备状态的数据分表时,判断针对所述预设数据表中的定时处理任务是否被触发;
如果针对所述预设数据表中的定时处理任务未被触发,向所述业务服务器发送针对所述数据未完备状态的数据分表的数据检查请求;
其中,所述数据检查请求携带所述数据未完备状态的数据分表的分表标识,以及与该分表标识对应的业务总额。
18.根据权利要求17所述的装置,其特征在于,所述第一发送模块进一步:
如果针对所述预设数据表的定时处理任务已被触发,终止该定时任务,并输出该定时任务的数据不完备的告警。
19.根据权利要求17所述的装置,其特征在于,所述接收模块进一步:
接收到所述业务服务器在完成针对各数据分表的数据完备性检查后,返回的响应消息;所述响应消息携带通过数据完备性检查的数据分表的分表标识;
在所述预设数据表中将与所述响应消息中携带的分表标识对应的数据状态标记为数据已完备状态。
20.根据权利要求16所述的装置,其特征在于,所述业务数据为订单数据;所述业务数额为与订单对应的金额。
21.一种分表数据的完备性检查装置,其特征在于,应用于分布式服务器集群中的业务服务器,所述分布式服务器集群包括业务服务器以及管控服务器;其中,所述业务服务器中的业务数据被拆分存储于若干不同的数据分表;该装置包括:
第二发送模块,接收管理服务器在针对其本地的预设数据表的定时处理任务被触发前,发送的数据检查请求;其中,所述预设数据表汇总了各数据分表中的业务数据;
检查模块,响应于所述数据检查请求对各数据分表执行数据完备性检查;
补全模块,当完成针对各数据分表的数据完备性检查后,向所述管理服务器补充发送业务数据,以对所述预设数据表中的业务数据进行补全。
22.根据权利要求21所述的装置,其特征在于,所述第二发送模块进一步:
将与已执行业务对应的业务数据存储至对应的数据分表,并在该业务执行完成后,将该业务数据发送至所述管控服务器,以由所述管控服务器在所述预设数据表中对该业务数据进行汇总。
23.根据权利要求21所述的装置,其特征在于,所述业务数据包括业务数额、以及所在数据分表的分表标识;所述数据检查请求携带待检查的数据分表的分表标识,以及与该分表标识对应的业务总额;其中,该业务总额为所述预设数据表中具有该分表标识的业务数据的业务数额之和;
所述检查模块:
获取所述数据检查请求中携带的分表标识,并针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总求和,得到与该分表标识对应的业务总额;
判断与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额是否相等;如果相等,确定与该分表标识对应的数据分表通过数据完备性检查;
如果不相等,计算与该分表标识对应的业务总额,和所述数据检查请求携带的与该分表标识对应的业务总额之间的差值,并基于所述差值查找与该分表标识对应的数据分表中未汇总至所述预设数据表中的业务数据。
24.根据权利要求23所述的装置,其特征在于,所述检查模块进一步:
在针对与该分表标识对应的数据分表中的业务数据的业务数额进行汇总之前,查询与该分表标识对应的数据分表中是否存在未完成状态的业务数据;
如果存在,继续执行该业务,并在该业务完成后,将该业务对应的业务数据发送至所述管控服务器,以由所述管控服务器在所述预设数据表中针对该业务数据进行汇总。
25.根据权利要求23所述的装置,其特征在于,所述检查模块进一步:
查找与该分表标识对应的数据分表中业务数额与所述差值相同的业务数据;以及,查找与该分表标识对应的数据分表中业务数额相加后与所述差值相同的多个业务数据;
将查找到的业务数额与所述差值相同的业务数据;以及,业务数额相加后与所述差值相同的多个业务数据,确定为未汇总至所述预设数据表中的业务数据。
26.根据权利要求23所述的装置,其特征在于,所述补全模块:
将基于所述差值查找到的未汇总至所述预设数据表中的业务数据补充发送至所述管控服务器;
或者,将与该分表标识对应的本地数据分表中的所有业务数据,重新发送至所述管控服务器,以由所述管控服务器对所述预设数据表中汇总的业务数据进行补全。
27.根据权利要求23所述的装置,其特征在于,所述第二发送模块:
当完成针对各数据分表的数据完备性检查后,向所述管理服务器返回响应消息;所述响应消息携带通过数据完备性检查的数据分表的分表标识,以使所述管控服务器在所述预设数据表中将与该响应消息中携带的分表标识对应的数据状态标记为数据已完备状态。
28.根据权利要求23所述的装置,其特征在于,所述业务数据为订单数据;所述业务数额为与订单对应的金额。
CN201610856610.0A 2016-09-27 2016-09-27 分表数据的完备性检查方法及装置 Active CN107038182B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610856610.0A CN107038182B (zh) 2016-09-27 2016-09-27 分表数据的完备性检查方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610856610.0A CN107038182B (zh) 2016-09-27 2016-09-27 分表数据的完备性检查方法及装置

Publications (2)

Publication Number Publication Date
CN107038182A true CN107038182A (zh) 2017-08-11
CN107038182B CN107038182B (zh) 2020-04-14

Family

ID=59532633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610856610.0A Active CN107038182B (zh) 2016-09-27 2016-09-27 分表数据的完备性检查方法及装置

Country Status (1)

Country Link
CN (1) CN107038182B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197147A (zh) * 2017-11-29 2018-06-22 中国联合网络通信集团有限公司 号卡数据库运维方法及装置
CN109033322A (zh) * 2018-07-18 2018-12-18 中国联合网络通信集团有限公司 一种多维数据的测试方法和装置
CN109918442A (zh) * 2019-01-24 2019-06-21 中国联合网络通信集团有限公司 一种数据的处理方法及装置
CN110019967A (zh) * 2017-12-07 2019-07-16 航天信息股份有限公司 一种获取企业异常发票信息的方法及系统
CN110019242A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 用于数据表的处理方法、装置和系统
CN110109903A (zh) * 2019-04-01 2019-08-09 广州白云国际机场股份有限公司 一种机场收费数据的自动校验系统及校验方法
CN111159168A (zh) * 2019-12-30 2020-05-15 广州酷狗计算机科技有限公司 数据处理方法和装置
CN111782733A (zh) * 2020-07-22 2020-10-16 支付宝(杭州)信息技术有限公司 多级数据汇总的方法、分布式数据管理系统及汇总数据管理系统
CN112637206A (zh) * 2020-12-23 2021-04-09 光大兴陇信托有限责任公司 一种业务数据主动获取方法和系统
CN113254750A (zh) * 2021-06-17 2021-08-13 北京鼎泰智源科技有限公司 一种基于第三方数据采集的数据源完备性验证方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993518B2 (en) * 2001-05-24 2006-01-31 International Business Machines Corporation Method and system for systematically diagnosing data problems in a database
CN102508850A (zh) * 2011-09-29 2012-06-20 用友软件股份有限公司 表单数据处理装置和表单数据处理方法
CN102880503A (zh) * 2012-08-24 2013-01-16 新浪网技术(中国)有限公司 数据分析系统及数据分析方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993518B2 (en) * 2001-05-24 2006-01-31 International Business Machines Corporation Method and system for systematically diagnosing data problems in a database
CN102508850A (zh) * 2011-09-29 2012-06-20 用友软件股份有限公司 表单数据处理装置和表单数据处理方法
CN102880503A (zh) * 2012-08-24 2013-01-16 新浪网技术(中国)有限公司 数据分析系统及数据分析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FAY CHANG 等: "Bigtable: A Distributed Storage Systems for Structured Data", 《ACM TRANSACTIONS ON COMPUTER SYSTEMS》 *
管毅: "以 Oracle 为基础的数据自动汇总系统分析", 《信息通信》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197147A (zh) * 2017-11-29 2018-06-22 中国联合网络通信集团有限公司 号卡数据库运维方法及装置
CN110019967A (zh) * 2017-12-07 2019-07-16 航天信息股份有限公司 一种获取企业异常发票信息的方法及系统
CN110019242A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 用于数据表的处理方法、装置和系统
CN109033322A (zh) * 2018-07-18 2018-12-18 中国联合网络通信集团有限公司 一种多维数据的测试方法和装置
CN109918442A (zh) * 2019-01-24 2019-06-21 中国联合网络通信集团有限公司 一种数据的处理方法及装置
CN110109903A (zh) * 2019-04-01 2019-08-09 广州白云国际机场股份有限公司 一种机场收费数据的自动校验系统及校验方法
CN111159168A (zh) * 2019-12-30 2020-05-15 广州酷狗计算机科技有限公司 数据处理方法和装置
CN111159168B (zh) * 2019-12-30 2023-10-13 广州酷狗计算机科技有限公司 数据处理方法和装置
CN111782733A (zh) * 2020-07-22 2020-10-16 支付宝(杭州)信息技术有限公司 多级数据汇总的方法、分布式数据管理系统及汇总数据管理系统
CN112637206A (zh) * 2020-12-23 2021-04-09 光大兴陇信托有限责任公司 一种业务数据主动获取方法和系统
CN113254750A (zh) * 2021-06-17 2021-08-13 北京鼎泰智源科技有限公司 一种基于第三方数据采集的数据源完备性验证方法及装置

Also Published As

Publication number Publication date
CN107038182B (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
CN107038182A (zh) 分表数据的完备性检查方法及装置
CN104021043B (zh) 批量应用程序的中断重入方法及系统
CN104063293B (zh) 一种数据备份方法及流计算系统
CN109558454B (zh) 平行链挖矿共识方法、设备和存储介质
CN111400011B (zh) 一种实时任务调度方法、系统、设备及可读存储介质
CN105160570A (zh) 一种可水平扩展的并发在线交易处理方法
CN110581887B (zh) 数据处理方法、装置、区块链节点及存储介质
CN110099108B (zh) 一种区块链事件去重方法、装置、计算机设备及存储介质
CN106874109A (zh) 一种分布式作业分发处理方法及系统
CN111813868B (zh) 数据同步方法及装置
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
US20150120613A1 (en) Real-time trade forecaster
US11243979B1 (en) Asynchronous propagation of database events
CN107424038A (zh) 退款方法及系统
CN112884460A (zh) 自动还款场景下的转账交易报文生成方法及装置
CN111752911A (zh) 一种基于Flume的数据传输方法、系统、终端及存储介质
CN111222845A (zh) 资源流转方法、装置、设备及可读存储介质
CN106878369B (zh) 一种业务处理方法和装置
CN111967960B (zh) 账户数据的批量调整方法及装置
TWI836300B (zh) 金融商品交易系統與方法
CN115293900A (zh) 基于区块链的用于按序执行操作交易的方法及装置
CN116884132A (zh) 线上排队的等待时间确定方法、装置、设备和存储介质
CN112433868A (zh) 一种交易处理方法及装置
CN113763177A (zh) 控制代理热点账户并发处理的方法及装置
CN116167857A (zh) 数据处理方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220419

Address after: Room 602, No. 618 Wai Road, Huangpu District, Shanghai

Patentee after: Ant fortune (Shanghai) Financial Information Service Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.