一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

交易流水数据的处理方法、装置及数据处理系统服务器与流程

2022-05-06 05:59:52 来源:中国专利 TAG:


1.本技术涉及金融技术领域,尤其涉及一种交易流水数据的处理方法、装置及数据处理系统服务器。


背景技术:

2.在金融业务领域,交易系统每天产生的交易数据量是十分庞大的。例如,交易峰值时,交易流水数据tps(每秒事务处理量)可能达到几十万。为了保证交易的高效、稳定进行,需要及时响应和处理交易流水数据。
3.现有技术中对于交易流水数据进行处理时,往往会设置定时任务,如每10分钟归集一次,一次归集10分钟内的数据,然而这种方式可能会导致高并发情况下数据库负载过高等情况。


技术实现要素:

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.被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述交易流水数据的处理方法。
40.第四方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述交易流水数据的处理方法。
41.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例的交易流水数据的处理方法可以由单独部署的数据处理系统服务器执行,在进行交易流水数据的处理时,可以先根据交易流水数据的交易时间跨度,确定一个或多个交易时间段,然后根据确定的交易时间段,对交易流水数据进行分段处理,其中,在一个数据处理期内,可以对一个交易时间段内的交易流水数据进行一次或多次批处理,每次批处理的交易流水数据量不大于预设数据处理步长。通过上述分交易时间段、分批次和预设处理步长对交易流水数据进行处理,相比于传统的一次性处理大量数据的方案,能够大大提高交易流水数据的整体处理效率以及系统资源分配的灵活性和系统的整体性能。
附图说明
42.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
43.图1为本技术实施例中一种备付金系统架构的结构示意图;
44.图2为本技术实施例中一种交易流水数据的处理方法的流程图;
45.图3为本技术实施例中一种交易流水数据的处理方法的逻辑框图;
46.图4为本技术实施例中另一种交易流水数据的处理方法的逻辑框图;
47.图5为本技术实施例中一种交易流水数据的处理装置的结构示意图;
48.图6为本技术实施例中一种电子设备的结构示意图。
具体实施方式
49.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
50.以下结合附图,详细说明本技术各实施例提供的技术方案。
51.本技术的交易流水数据的处理方法主要依托于备付金系统架构来实现,备付金系统中采用离散式账户体系,构建了多层级的账户,如图1所示,一级账户为控制中心主账户,二级账户为各地机房数据库主账户,三级账户为各地机房数据库子账户。备付金系统整体可以看做是一个三地六中心的系统,三地是指北京、上海、深圳,六中心是指这三地共有6个机房。对于入金业务来说,每个机房设置有6个入金库,每个入金库每天记录10张数据表,每天通常会有十多亿条的入金流水数据保存到入金库中,这些入金流水数据平均分散在每个入金库中,每个入金库中都会存有所有机构的入金账号,同理,出金业务也基本如此。
52.基于上述备付金系统,传统的对于入金流水数据的归集处理通常是一次性处理入金库中的大量数据,然而该方案可能存在以下问题:
53.1)如果一次性要处理的入金流水数据量过大,会造成数据库负载过高,挤兑核心业务的运行;
54.2)如果一次性要处理的入金流水数据量过少,会造成数据库资源浪费;
55.3)如果上次任务处理出现漏归集的入金流水数据,不方便及时补救。
56.基于此,如图2所示,提供了本技术实施例的一种交易流水数据的处理方法,由数据处理系统服务器执行,其中,所述方法包括如下步骤s210至步骤s220:
57.步骤s210,根据交易流水数据的交易时间跨度,确定若干个交易时间段。
58.在金融业务领域,一条交易流水数据中通常会包括交易流水号、交易金额和交易时间等信息,根据每条交易流水数据中的交易时间可以确定待处理的交易流水数据的交易时间跨度,这里的交易时间可以理解为是每笔交易完成的时间。根据交易时间跨度的长短,可以进一步将交易时间跨度划分为一个或多个交易时间段,以对待处理的交易流水数据按照各交易时间段分段处理,提高数据处理效率。每个交易时间段的长短可根据实际需求灵活设置,在此不做具体限定。
59.步骤s220,按照所述交易时间段对所述交易流水数据进行处理,其中,在一个数据处理期内,对一个交易时间段内的交易流水数据进行若干次批处理,每次批处理的交易流水数据量不大于预设数据处理步长。
60.在确定了一个或多个交易时间段后,则可以按照各交易时间段对相应的交易流水数据进行处理。具体地,为了保证交易流水数据的处理效率以及处理速度的灵活性,可以事先规定对每一个交易时间段对应的交易流水数据进行处理的最大时长,即数据处理期,数据处理期的大小可以根据实际需求灵活设置,例如设置为1分钟(实际执行时可以为50s,预留10s的缓冲时间),即对一个交易时间段对应的交易流水数据最多进行1分钟的数据处理。
61.在一个数据处理期内,为了进一步保证交易流水数据的处理效率,还可以将一个交易时间段内的交易流水数据划分为一个或多个批次进行批处理,每次仅批处理不大于预设数据处理步长的交易流水数据量。这里的批处理可以是各种类型的数据处理,例如对于入金流水数据来说,可以是对入金流水数据进行的归集处理。
62.需要说明的是,本技术实施例的数据处理系统服务器可以包括任务服务器和数据库服务器两部分,任务服务器主要负责与数据处理系统服务器交互,对整个交易流水数据的处理流程进行控制,以及对交易时间段、批处理的次数以及预设数据处理步长等可配置参数进行管理;数据库服务器主要用于执行任务服务器下发的具体的数据库事务,例如数据的读写、求和等统计操作以及其他的数据处理操作等。本技术实施例中所提供方法的各步骤的执行主体可以分别由任务服务器和数据处理系统服务器作为执行主体,例如,步骤s210的执行主体可以为任务服务器,步骤s220的执行主体可以为数据库服务器。
63.在高并发情况下,如果一次性扫描大量数据会长时间、大量地占用系统性能,比如需要大量内存来存储扫描的数据,中央处理器(cpu)需要一次运算更多的数据,机构账户被长时间地占用,无法进行其他操作等。而由于高并发场景下,每秒交易受理数量也特别大,同样需要这些资源,这时候系统容量一旦达到100%,就会出现多方阻塞、争抢资源的情况,这一过程可能还会涉及操作系统对资源的分配、加锁、解锁、归还等等。而本技术实施例的交易流水数据的处理方法通过上述分交易时间段、分批次和预设处理步长对交易流水数据进行处理,进而可以保证每次运行时间短,占用的资源少,减少了争抢资源所造成的消耗,进而提升了交易流水数据的处理速度以及系统资源分配的灵活性和系统的整体性能。
64.在本技术的一个实施例中,所述根据交易流水数据的交易时间跨度,确定若干个
交易时间段包括:根据所述交易流水数据中记录的最早交易时间和最迟交易时间,确定所述交易流水数据的交易时间跨度;在所述交易时间跨度大于预设时间跨度的情况下,将所述交易时间跨度划分为多个交易时间段。
65.如前所述,一条交易流水数据中会包含有每笔交易的交易时间,在确定交易流水数据的交易时间跨度时,可以根据交易流水数据中记录的最早交易时间和最迟交易时间来确定,也即交易时间跨度是一个时间段。为了提高交易流水数据的处理效率,这里还可以事先设定一个预设时间跨度,该预设时间跨度可以用来表征一次处理的交易流水数据的最长时间跨度,如果当前确定的交易时间跨度大于该预设时间跨度,则可以将交易时间跨度划分为多个交易时间段,以分段进行交易流水数据的处理,当然如果交易时间跨度不大于该预设时间跨度,则直接将该交易时间跨度作为一个交易时间段。
66.举例说明,假设待处理的交易流水数据中最早的交易时间为2020年9月9日上午9点整,最迟的交易时间为2020年9月9日上午10点整,则可以确定待处理的交易流水数据对应的交易时间跨度为2020年9月9日上午9点至10点这1个小时的交易时间跨度,假设预设时间跨度为1分钟,则可以将上述1个小时的交易时间跨度划分为60个交易时间段,每次仅对1分钟内的交易流水数据进行处理。
67.在本技术的一个实施例中,所述对一个交易时间段内的交易流水数据进行若干次批处理包括:将该交易时间段内的交易流水数据总条数与所述预设数据处理步长进行比较;在所述交易流水总条数大于所述预设数据处理步长的情况下,根据所述预设数据处理步长将该交易时间段内的交易流水数据划分为多个子处理批次;根据该交易时间段内交易流水号的最大值和最小值以及所述预设数据处理步长,确定各子处理批次的批处理参数的最大目标值和最小目标值,并基于各子处理批次的批处理参数的最大目标值和最小目标值,对各子处理批次的交易流水数据分别进行批处理。
68.在一个交易时间段内,其对应的交易流水数据仍有可能是十分庞大的,例如,以入金业务场景为例,每秒入金交易受理的数量峰值有24万,24万条入金流水数据平均到6个数据中心、6个入金库、10张数据表中,每张表一秒钟会有670条入金流水数据进入,一分钟就有670*60=40200条,极端情况下,一家机构就会有4万条入金流水数据。
69.为了避免一次处理4万条入金流水数据,导致交易数据库出现卡顿的现象,这里可以根据预设数据处理步长将一个交易时间段内的交易流水数据再分成一个或多个子处理批次进行处理。预设数据处理步长的大小可以根据需求灵活设置和调整,例如在当交易数据库发生故障,需要尽快对故障期间产生的数据进行处理时,可以将预设数据处理步长设置为较大的数值,即每次比正常情况下处理更多数量的交易流水数据,进而提高交易流水数据的处理速度。
70.举例说明,如图3所示,假设预设数据处理步长为5000,当前交易时间段内的交易流水数据有4万条,大于预设数据处理步长,则根据预设数据处理步长将该交易时间段内的交易流水数据划分为八个子处理批次,每个子处理批次最多处理5000条的交易流水数据。然后根据该交易时间段内交易流水号的最大值(maxid)和最小值(minid)以及预设数据处理步长,可以得到各子处理批次的批处理参数的最大目标值和最小目标值依次为:第一子处理批次:{minid,minid 5000},第二子处理批次:{minid 5001,minid 10000},
……
第八子处理批次:{minid 35001,maxid}。
71.当然,在交易流水总条数不大于所述预设数据处理步长的情况下,则可以直接将该交易时间段内交易流水号的最大值和最小值分别设置为批处理参数的最大目标值和最小目标值。例如,如果一个交易时间段内的交易流水数据仅有4000条,小于预设数据处理步长5000,则在一个子处理批次内就可以完成处理,因此可以直接将该交易时间段内交易流水号的最大值(maxid)和最小值(minid)分别设置为批处理参数的最大目标值和最小目标值,即为{minid,maxid}。
72.在本技术的一个实施例中,所述交易流水数据包括入金流水数据,所述入金流水数据中携带所对应机构的机构标识;所述批处理为:将所述入金流水数据中记录的入金金额归集到所对应机构的入金账号中。
73.如前所述,本技术交易流水数据的处理方法的一种应用场景可以是对入金流水数据的处理,“入金”可以理解为将资金由银行账户划入交易账户的过程,对于入金流水数据进行的批处理可以是将入金流水数据中记录的入金金额加到所对应机构的入金账号中。
74.在本技术的一个实施例中,所述对一个交易时间段内的交易流水数据进行若干次批处理包括:根据所述入金流水数据中携带的所对应机构的机构标识,逐个处理各机构所对应的入金流水数据。
75.入金流水数据中还会记录有机构标识如机构号,在对一个交易时间段内的入金流水数据进行处理时,可以根据入金流水数据中记录的机构号,逐个处理各机构的入金流水数据,进而保证入金流水数据处理过程的高效、有序进行。
76.在本技术的一个实施例中,所述逐个处理各机构所对应的入金流水数据包括:从该交易时间段内的入金流水数据中,查询出目标机构在所述预设数据处理步长内待归集流水数据,所述目标机构为各机构中的任意一个机构;根据所述入金流水数据中记录的交易批次,按所述交易批次逐次将所述目标机构待归集流水数据中记录的入金金额归集到所述目标机构的入金账号中。
77.考虑到一个交易时间段内,单个机构在单个数据表中的入金流水数据量可能较大的情况,本技术实施例在对一个交易时间段内的入金流水数据进行处理时,可以在单个入金库、单个数据表、单个机构的维度进行入金流水数据的处理。例如,可以在一个交易时间段内,查询出某一个机构在某一个入金库的某一个数据表中的待归集流水数据。当然,如果一个交易时间段内,单个机构在单个数据表中的入金流水数据量较小,也可以对多个机构的入金流水数据统一进行处理。
78.入金流水数据中通常还会记录有交易批次,交易批次可以是根据一笔交易被交易服务器受理的时间来确定的,具体可以将每个小时的起始时间点到终止时间点之间的时间段作为一个交易批次,例如,9点00分至9点59分为第9交易批次,10点00分至10点59分为第10交易批次等等。
79.需要说明的是,由于服务器之间存在时间差,一个交易时间段内的入金流水数据可能对应一个或多个交易批次。因此,为了进一步提高入金流水数据的处理效率,可以按照入金流水数据中记录的交易批次,依次将目标机构的待归集流水数据中记录的入金金额归集到目标机构对应的入金账号中。例如,先归集第9交易批次的入金流水数据,再归集第10交易次批的入金流水数据。
80.在本技术的一个实施例中,所述批处理是在开启的数据库事务中执行的,所述逐
个处理各机构所对应的入金流水数据还包括:在将所述待归集流水数据中记录的入金金额归集到各机构的入金账号后,更新所述待归集流水数据的状态为已归集状态;该方法还包括:在一次批处理结束后,若该次批处理后状态为已归集状态的入金流水数据的条数与该次批处理执行过程中查询出的各机构的待归集流水数据的条数之和相等,则提交相应的数据库事务,否则重新开启数据库事务执行该次批处理。
81.本技术实施例在对各交易时间段内的入金流水处理进行批处理时,可以在一个单独的数据库事务中来执行,以保证数据处理过程的稳定性和可控性。数据库事务是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位,一个数据库事务由事务开始与事务结束之间执行的全部数据库操作组成。
82.在已开启的数据库事务中逐个处理各机构的入金流水数据时,可以在每一条入金流水数据中记录的入金金额成功归集到对应机构的入金账号后,更新该条入金流水数据的状态为已归集状态,进而可以根据入金流水数据的状态确定哪些数据已经归集完毕,哪些数据待归集。
83.此外,对于一个交易时间段内的待归集流水数据来说,可以根据待归集流水数据中记录的机构号统计出各机构待归集流水数据的总条数,每完成一次批处理,统计各机构处于已归集状态的入金流水数据的条数之和,并与各机构待归集流水数据的总条数进行比较,如果相等,说明这一个交易时间段内的各机构的入金流水数据已全部归集完毕,此时可以提交数据库事务;如果不相等或者出现其他异常情况,可以直接结束本次数据库事务,重新开启一次数据库事务再次执行该次批处理。
84.在本技术的一个实施例中,所述方法还包括:在处理目标机构的入金流水数据前,根据所述入金流水数据中携带的机构标识,查询出所述目标机构的入金账号并锁定,以及在所述目标机构的入金流水数据处理完毕后,对所述目标机构的入金账号进行解锁。
85.在对各机构的入金流水数据进行归集处理时,为了避免对该机构的入金账户进行其他的配置操作等,保证归集处理任务的稳定执行,可以先在处理目标机构的入金流水数据之前,在入金库中查询出该目标机构的机构号对应的入金账号并锁定。在完成对该目标机构的入金流水数据的归集处理后,再将该目标机构的入金账号进行解锁,从而允许对该入金账号进行其他的配置操作等。
86.在本技术的一个实施例中,根据已处理的交易流水数据的最迟交易时间,确定所述交易流水数据中记录的最早交易时间;以及,根据最后一次批处理的交易流水数据中记录的最迟交易时间,更新所述已处理的交易流水数据的最迟交易时间。
87.本技术实施例对于交易流水数据的处理是在已经处理完毕的交易流水数据的基础上进行的。举例说明,假设上一次已处理完的交易流水数据的最迟交易时间为当前时间-3分钟,则本次处理交易流水数据的开始时间starttime即为当前时间-3分钟,由于当前时间-2分钟之前所产生的交易流水数据是冷数据,即已经达到终态不再改变的、能够归集的数据,一般没有其他功能处理这些数据,因此结束时间endtime默认是当前时间-2分钟,那么本次待处理的交易流水数据的交易时间跨度即为1分钟。
88.如果交易数据库发生故障,多天以后才修复,比如7天,则本次待处理的交易流水数据的开始时间就是7天前,结束时间是当前时间-2分钟,在50s的数据处理期内持续归集,
如果是在日常每秒受理交易数量为3万条的情况下,任务执行一次大概能追赶30分钟。如果只是交易数据库故障,但是交易数据库内在故障期间没有新增数据,则任务执行一次归集时间能够追赶60分钟。任务执行多次后,能够迅速追赶到当前时间。因此本技术实施例的交易流水数据处理方法能够自适应调节归集任务的处理速度,在交易数据库长时间未归集的情况下,能够自动加快归集的进度,自动追赶数据处理进度。
89.此外,在每秒交易受理数量高并发的场景下,传统的一次归集大量数据的方式的失败率是很高的,例如每10分钟归集一次,可能归集了6次都失败,每次都要人工来查看和补救。而本技术实施例在每次归集都保存有上一次归集结束的数据位置,以此作为下一次归集的开始位置,就算出现失败也能自动从失败位置重新开始,保证了归集任务的稳定执行,同时节约了大量的人工成本。
90.在本技术的一个实施例中,其中,所述方法还包括:根据数据库性能指标和所述交易流水数据对应的交易业务类型中的至少一项,确定所述交易时间段以及所述预设数据处理步长。
91.本技术实施例的交易时间段和预设处理步长是可调整的参数,因为数据库的处理能力是有限的,当前数据库的核心目标是不断存储大量交易受理所写入的交易流水数据,这个过程十分消耗性能,且应首先保障数据写入的稳定性。而本技术实施例对交易流水数据进行处理的目的主要是为了归集入金流水数据,重要但非实时,因此通过调节参数可以确定较为合适的速度去归集,避免抢占对实时性要求较高的核心任务的资源,进而提升系统资源分配的灵活性和系统的整体性能。
92.对于不同性能的入金库或者不同类型的入金业务,每秒交易受理数量也不同,且不同类型的入金业务对归集的实时性依赖程度也不同,有的入金流水数据需要在几个小时内归集完,有的入金流水数据不能今天归集而要到第二天才能归集,还有的归集时间可以宽松到一至两个月。因此在具体实施时,可以基于以下两方面的维度来进行参数的调节:一是数据库性能指标如系统资源利用率等,如果当前系统资源利用率较低,存在资源浪费的情况,则可以适当增大预设数据处理步长,以投入更多资源进行数据归集,提高系统资源利用率。二是交易流水数据对应的交易业务类型,比如某种入金交易业务的结算周期为10分钟/笔,这时候可以把任务下发的频次调整为10分钟,交易时间段的时长也调整为10分钟,避免做冗余的归集。通过上述两个维度的参数调节,能做到一个入金交易数据的归集任务的高兼容性,适用于不同性能的入金库以及不同类型的入金业务。
93.除了上述两个维度,还可以根据实际需求灵活调整参数,比如一个刚部署归集任务的数据库,里面有大量的待归集流水数据,如果此时想暂时停止其他任务,投入全部资源快速地对这些待归集流水数据进行归集,这时候也可以适当增大预设数据处理步长,以提高处理速度。
94.在本技术的一个实施例中,所述方法还包括:接收交易流水数据处理任务,以根据所述交易流水数据处理任务执行所述根据交易流水数据的交易时间跨度,确定若干个交易时间段的步骤。
95.对于入金流水数据来说,每天大约有十多亿条的入金流水数据保存到多个入金库中,这些入金流水数据平均分散在每个入金库中,一个交易流水数据处理任务可能涉及到多个入金库中的入金流水数据,因此为了提高数据处理效率,实际应用场景下,会根据接收
到的交易流水数据处理任务对每一个入金库分别下发一个子任务,进而根据子任务对各入金库的入金流水数据分别进行处理。
96.如图4所示,提供了本技术实施例的一种交易流水数据的处理方法的逻辑框图。首先,任务服务器会向数据库服务器下发一个交易流水数据处理任务,可以看作是主任务,然后根据主任务查询数据中心中的所有入金库,给每个入金库下发一个子任务,以在单个入金库的维度进行交易流水数据的处理。之后任务服务器通过查询各子任务中的交易流水数据,计算各子任务中的交易流水数据的交易时间跨度,并根据交易时间跨度确定一个或多个交易时间段。在各交易时间段内,数据库服务器分别处理各入金库中各数据表的入金流水数据,即在单个数据表的维度进行处理,查询每个数据表中待处理的入金流水数据的总条数allrows、机构号以及交易流水号的最大值和最小值等信息,然后根据机构号,依次处理各机构的入金流水数据,即单个机构维度的处理。
97.之后,确定各机构的入金流水数据的条数是否不大于预设数据处理步长,如果不大于,则直接将该交易时间段内交易流水号的最大值和最小值分别设置为批处理参数的最大目标值和最小目标值;如果大于,则根据预设数据处理步长将该交易时间段内的交易流水数据划分为多个子处理批次,根据该交易时间段内交易流水号的最大值和最小值以及预设数据处理步长,确定各子处理批次的批处理参数的最大目标值和最小目标值。
98.在确定了各子处理批次的批处理参数的最大目标值和最小目标值后,开启数据库事务,然后根据机构号,在交易数据库中查询出目标机构的入金账号并锁定;在预设数据处理步长内,从该交易时间段内的入金流水数据中查询出目标机构待归集流水数据的条数rows、入金金额及交易批次等信息;根据入金流水数据中记录的交易批次,按交易批次逐次将目标机构待归集流水数据中记录的入金金额归集到目标机构的入金账号中,并记录归集流水,更新相应入金流水数据的状态为已归集状态,根据入金流水数据的状态更新目标机构已归集的入金流水数据的条数updaterows;然后判断updaterows与rows是否相等,如果不相等或者发生其他异常情况,则直接结束本次的数据库事务,如果各机构的updaterows与rows均相等,则提交数据库事务;最后判断该交易时间段内待处理的入金流水数据是否均已处理完,如果没有,则重复上述开启数据库事务的步骤,如果全部处理完,则更新该子任务的任务结束时间为该交易时间段内的入金流水数据的归集完成时间。
99.综上,本技术的至少一个实施例可以实现如下技术效果:1)通过分交易时间段、分批次和预设处理步长对交易流水数据进行处理,保证每次运行时间短,占用的资源少,减少了争抢资源所造成的消耗,进而提升了交易流水数据的处理速度以及系统资源分配的灵活性和系统的整体性能;2)通过调节处理速度的参数可以确定较为合适的归集速度,避免抢占对实时性要求较高的核心任务的资源,进而提升了系统资源分配的灵活性和系统的整体性能;3)由于处理速度的参数可调节,能做到一个入金交易数据的归集任务的高兼容性,适用于不同性能的入金库以及不同类型的入金业务。
100.如图5所示,提供了本技术实施例的一种交易流水数据的处理装置500,由数据处理系统服务器执行,其中,所述装置500包括:
101.交易时间段确定单元510,用于根据交易流水数据的交易时间跨度,确定若干个交易时间段;
102.交易流水数据处理单元520,用于按照所述交易时间段对所述交易流水数据进行
处理,其中,在一个数据处理期内,对一个交易时间段内的交易流水数据进行若干次批处理,每次批处理的交易流水数据量不大于预设数据处理步长。
103.在本技术的一个实施例中,所述交易时间段确定单元510具体用于:根据所述交易流水数据中记录的最早交易时间和最迟交易时间,确定所述交易流水数据的交易时间跨度;在所述交易时间跨度大于预设时间跨度的情况下,将所述交易时间跨度划分为多个交易时间段。
104.在本技术的一个实施例中,所述交易流水数据处理单元520具体用于:将该交易时间段内的交易流水数据总条数与所述预设数据处理步长进行比较;在所述交易流水总条数大于所述预设数据处理步长的情况下,根据所述预设数据处理步长将该交易时间段内的交易流水数据划分为多个子处理批次;根据该交易时间段内交易流水号的最大值和最小值以及所述预设数据处理步长,确定各子处理批次的批处理参数的最大目标值和最小目标值,并基于各子处理批次的批处理参数的最大目标值和最小目标值,对各子处理批次的交易流水数据分别进行批处理。
105.在本技术的一个实施例中,所述交易流水数据处理单元520具体用于:根据所述入金流水数据中携带的所对应机构的机构标识,逐个处理各机构所对应的入金流水数据。
106.在本技术的一个实施例中,所述交易流水数据处理单元520具体用于:从该交易时间段内的入金流水数据中,查询出目标机构在所述预设数据处理步长内待归集流水数据,所述目标机构为各机构中的任意一个机构;根据所述入金流水数据中记录的交易批次,按所述交易批次逐次将所述目标机构待归集流水数据中记录的入金金额归集到所述目标机构的入金账号中。
107.在本技术的一个实施例中,所述批处理是在开启的数据库事务中执行的,所述交易流水数据处理单元520具体用于:在将所述待归集流水数据中记录的入金金额归集到各机构的入金账号后,更新所述待归集流水数据的状态为已归集状态;
108.该装置还包括:数据库事务单元,用于在一次批处理结束后,若该次批处理后状态为已归集状态的入金流水数据的条数与该次批处理执行过程中查询出的各机构的待归集流水数据的条数之和相等,则提交相应的数据库事务,否则重新开启数据库事务执行该次批处理。
109.在本技术的一个实施例中,所述装置还包括:入金账号控制单元,用于在处理目标机构的入金流水数据前,根据所述入金流水数据中携带的机构标识,查询出所述目标机构的入金账号并锁定,以及在所述目标机构的入金流水数据处理完毕后,对所述目标机构的入金账号进行解锁。
110.在本技术的一个实施例中,所述装置还包括:交易时间确定单元,用于根据已处理的交易流水数据的最迟交易时间,确定所述交易流水数据中记录的最早交易时间;以及,根据最后一次批处理的交易流水数据中记录的最迟交易时间,更新所述已处理的交易流水数据的最迟交易时间。
111.在本技术的一个实施例中,所述装置还包括:参数确定单元,用于根据数据库性能指标和所述交易流水数据对应的交易业务类型中的至少一项,确定所述交易时间段以及所述预设数据处理步长。
112.在本技术的一个实施例中,所述装置还包括:任务接收单元,用于接收交易流水数
据处理任务,以根据所述交易流水数据处理任务执行所述根据交易流水数据的交易时间跨度,确定若干个交易时间段的步骤。
113.能够理解,上述交易流水数据的处理装置,能够实现前述实施例中提供的由数据处理系统服务器执行的交易流水数据的处理方法的各个步骤,关于交易流水数据的处理方法的相关阐释均适用于交易流水数据的处理装置,此处不再赘述。
114.图6是本技术的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
115.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
116.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
117.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成交易流水数据的处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
118.根据交易流水数据的交易时间跨度,确定若干个交易时间段;
119.按照所述交易时间段对所述交易流水数据进行处理,其中,在一个数据处理期内,对一个交易时间段内的交易流水数据进行若干次批处理,每次批处理的交易流水数据量不大于预设数据处理步长。
120.上述如本技术图2所示实施例揭示的交易流水数据的处理装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
121.该电子设备还可执行图2中交易流水数据的处理装置执行的方法,并实现交易流水数据的处理装置在图2所示实施例的功能,本技术实施例在此不再赘述。
122.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图2所示实施例中交易流水数据的处理装置执行的方法,并具体用于执行:
123.根据交易流水数据的交易时间跨度,确定若干个交易时间段;
124.按照所述交易时间段对所述交易流水数据进行处理,其中,在一个数据处理期内,对一个交易时间段内的交易流水数据进行若干次批处理,每次批处理的交易流水数据量不大于预设数据处理步长。
125.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
126.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
127.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
128.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
129.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
130.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
131.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、
数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
132.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
133.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
134.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献