掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法及装置、电子设备、计算机可读存储介质

文献发布时间:2024-04-18 19:59:31


数据处理方法及装置、电子设备、计算机可读存储介质

技术领域

本申请涉及计算机技术领域,特别涉及一种数据处理方法、装置、电子设备和计算机可读存储介质。

背景技术

切日和跑批是银行业务的重要服务。其中,切日可以是指银行系统进行工作日期切换,跑批可以是指将要处理的数据积攒成“批”,在指定时间对这批数据统一时间进行处理,也称批处理。通过切日和跑批,可以对一些预期的业务场景进行验证。例如,验证账单日是否执行了出账单,账单逾期后是否进行了利息和罚息的计算等。

在相关技术中,金融业务的核心账务系统的批量处理都是全库执行,只要系统执行切日跑批,就会对全库所有业务数据对应的系统工作日期进行切换,并对全库所有业务数据都进行同一业务处理,造成数据间相互影响和产生大量不必要的计算。

发明内容

本申请提供一种数据处理方法、装置、电子设备和计算机可读存储介质,通过该方法,可以实现不同业务数据之间测试任务的互不干扰,保证业务数据之间数据处理的独立性,并有利于减少大量不必要的计算,节约计算资源。

第一方面,本申请提供了一种数据处理方法,该数据处理方法包括:根据接收的数据获取请求中包含的数据标识,从业务系统中的多个业务数据中获取待测数据,所述待测数据为与所述数据标识对应的业务数据;接收数据处理请求,所述数据处理请求中包含所述数据标识和第一日期,所述第一日期为至少一个测试日期中的任一测试日期;其中,每个测试日期对应一个测试任务,每个测试任务用于根据对应的测试日期对所述业务系统的当前工作日期执行日期切换,并根据切换后的工作日期执行对应的业务处理任务;根据所述第一日期将当前工作日期切换为所述第一日期,并根据所述第一日期对所述待测数据执行所述第一日期对应的业务处理任务,得到对应的业务处理结果。

第二方面,本申请提供了一种数据处理装置,该数据处理装置包括:数据获取模块,用于根据接收的数据获取请求中包含的数据标识,从业务系统中的多个业务数据中获取待测数据,所述待测数据为与所述数据标识对应的业务数据;处理请求接收模块,用于接收数据处理请求,所述数据处理请求中包含所述数据标识和第一日期,所述第一日期为至少一个测试日期中的任一测试日期;其中,每个测试日期对应一个测试任务,每个测试任务用于根据对应的测试日期对所述业务系统的当前工作日期执行日期切换,并根据切换后的工作日期执行对应的业务处理任务;任务执行模块,用于根据所述第一日期将当前工作日期切换为所述第一日期,并根据所述第一日期对所述待测数据执行所述第一日期对应的业务处理任务,得到对应的业务处理结果。

第三方面,本申请提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的数据处理方法。

第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的数据处理方法。

本申请所提供的实施例,可以根据数据获取请求中的数据标识,从业务系统中的多个业务数据中,获取到与该数据标识对应的业务数据作为待测数据,并获取到预先存储的该待测数据的当前业务日和至少一个测试日期,在根据接收到的数据处理请求,从至少一个测试日期中获取一个测试日期作为第一日期之后,可以根据第一日期对业务系统的当前工作日期进行切日(切换为新的工作日期)和跑批(根据新的工作日期对待测数据执行第一日期对应的业务处理任务),得到对应的业务处理结果。根据该方法,进行切日和跑批时可以只对数据标识对应的业务数据执行第一日期对应的业务处理任务,而非针对全库所有业务数据;并且,每个测试任务可以根据对应的测试日期对所述业务系统的当前工作日期执行日期切换,从而可以实现业务数据之间对于测试日期和当前工作日期的区分和分别记录,基于此,本申请实施例的数据处理方法,在对一个业务数据执行第一日期对应的业务处理任务后,不会影响到其它业务数据,也不会改变其它业务数据的当前工作日期和测试日期,实现不同业务数据之间测试任务的互不干扰,保证业务数据之间数据处理的独立性,并有利于减少大量不必要的计算,节约计算资源。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用来提供对本申请的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请,并不构成对本申请的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:

图1为本申请实施例提供的一种数据处理方法的流程图;

图2为本申请示例性实施例的数据处理系统的架构图;

图3为本申请示例性实施例的数据处理方法的详细流程图;

图4为本申请实施例提供的一种数据处理装置的框图;

图5为本申请实施例提供的一种电子设备的框图。

具体实施方式

为使本领域的技术人员更好地理解本申请的技术方案,以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

在不冲突的情况下,本申请各实施例及实施例中的各特征可相互组合。

如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。

本文所使用的术语仅用于描述特定实施例,且不意欲限制本申请。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本申请的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。

在金融领域,有需要实时处理的业务,例如柜台交易,需要实时对账户进行操作,也有需要批量执行的业务,例如报表生成,储蓄到期的自动转存,行内行外业务清分清算,利息计算等。因此并不是所有数据都是实时操作,跑批业务由此而产生。

跑批可以理解为:将要处理的数据积攒成“批”,在指定时间一次性进行处理,这种处理方式可以被称为批处理,也叫跑批。跑批业务具有以下特点:处理量大(成批),具有特定的触发时机(指定时间点),可自动处理(无需人工干预)。

切日,也称“日切”,即切换系统的工作日期,例如更换系统记账的时间。通过日切,可以将系统从当前工作日切换到下一工作日或者其他指定日期,日切过程中发生的交易可以照常提交并正确处理返回。系统配置的日切时刻可以称为是日切点,日切点一般为夜间交易低谷时间,例如16点、22点、23点等,具体可以根据实际需要进行设置,本申请实施例不做具体限定。以支付系统为例,由于存在24小时营业项目,如自助设备、网上银行、销售点(Point of sales,POS)终端等,所以通常情况下支付系统实行7*24小时不间断服务,服务期间产生的交易可以照常提交并正确处理返回。若日切点为22点,则前一日22点之后至当日22点为支付系统的一个工作日,这期间所产生交易的生效日为当日;而当日22点之后和下一日22点为支付系统的下一个工作日,这期间所产生交易的生效日为该下一日。

在相关技术进行切日和跑批时,假设将业务系统的多个业务数据作为多个测试数据,多个测试数据中包括:测试数据A、测试数据B和测试数据C,对这三个测试数据进行实时交易(如放款交易)成功后,进行入库处理。假设测试数据A和测试数据B的账单日是同一天,测试数据C的账单日小于测试数据A的账单日。

当测试人员需要将测试数据A的状态设置为逾期时,需要往后切日和跑批。但目前金融业务核心账务系统批量处理都是全库执行,只要系统切日就会把全库所有账户所有借据数据进行切日,批量处理时也是全库所有账户所有借据数据同时处理。因此,切日(将系统当前的业务日期切换到还款日之后的日期)时,由于测试数据A和测试数据B的账单日为同一天,所以测试数据A和测试数据B的状态都会变成逾期,而由于测试数据C的账单日在测试数据A的账单日之前,所以向后切日时不会经过测试数据C的账单日,导致测试数据C错过账单日,测试数据C作废。

由此可见,相关技术中的切日服务和跑批服务,并未对业务系统中的业务数据进行数据处理的隔离,即不能指定业务数据进行切日和跑批,造成数据间的相互影响,造成不必要的数据处理和生成失效数据等,如对测试数据A进行逾期相关的处理时,测试数据B被动逾期、测试数据C错过账单日作废等。在一些场景中,切日服务和批量服务只支持单线程运行,多个数据要跑批时,只能按照时间顺序由近及远的依次执行切日和跑批,造成等待时间的浪费。

根据本申请实施例的数据处理方法可以由终端设备或服务器等电子设备执行,终端设备可以为车载设备、用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,该方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。服务器可以包括独立的物理服务器、有多个服务器组成的服务器集群或者能够进行云计算的云服务器。

图1为本申请实施例提供的一种数据处理方法的流程图。参照图1,该数据处理方法可以包括以下步骤。

S110,根据接收的数据获取请求中包含的数据标识,从业务系统中的多个业务数据中获取待测数据,待测数据为与数据标识对应的业务数据。

在一些实施例中,数据标识即业务标识,例如可以包括如下项中的至少一种:合同编号、用户唯一标识(也称客户唯一标识)、单据编号和业务名称。其中,用户唯一标识可以是通用唯一标识码(Universally Unique Identifier,UUID)。UUID是一种特定形式的标识符,在大多数实际应用场景中被认为是安全且唯一的。两个正确生成的UUID相同的可能性几乎可以忽略不计,因此可以用于唯一标识该业务数据。

数据获取请求可以是报文形式,以数据标识为合同编号和用户唯一标识为例,可以通过提供的提交(Post)接口的方式,接收数据获取请求,并获取该请求中的参数,这些参数用于请求添加业务数据。

其中,Post接口用于提交数据给本处理设备进行处理。接口请求报文包括如下内容“"contrNbr":"${contrNbr}","uuid":"${uuid}"”,其中,“$”为占位符,用于计算机中各位文档的编辑,表示占住一个固定的位置,等待后续输入的内容,例如等待传参的内容。"contrNbr"表示等待传参的字段名为合同编号,"${contrNbr}"表示要接收的是合同编号的具体取值;"uuid"表示等待传参的字段名为用户唯一标识,"${contrNbr}"表示要接收的是用户唯一标识的具体取值;

需要说明的是,添加业务数据可以用于执行切日和跑批的测试任务,因此在下述实施例的描述中,这些业务数据也可成为跑批数据或测试数据。

S120,接收数据处理请求,数据处理请求中包含数据标识和第一日期,第一日期为至少一个测试日期中的任一测试日期。

其中,每个测试日期对应一个测试任务,每个测试任务用于根据对应的测试日期对业务系统的当前工作日期执行日期切换,并根据切换后的工作日期执行对应的业务处理任务。

在下述实施例的描述中,可以将业务系统的当前工作日期理解为:当前业务日期(Business Date)。业务处理会以业务日期为准,假设业务日期每天晚上00:00:00做日切,则业务日期跟系统日期(例如目前北京时间)一样;但若测试环境每天可以做多次日切,则业务日期跟系统日期不相同。

在该步骤中,至少一个测试日期是用于对业务数据进行特定的处理而记录的日期。假设特定处理包括出账单处理,则测试日期可以包括下个账单日(当前未处理账单的账单日);假设特定处理包括逾期处理,则测试日期可以包括下个还款日(当前还未处理的还款日)。具体可以根据实际需要进行设置。

在该步骤中,可以通过Post接口,接收数据处理请求,并获取该请求中的参数,这些参数可以包括:数据标识和第一日期,第一日期可以是至少一个测试日期中的任一日期,数据处理请求用于请求对该数据标识对应的业务数据,即对待测数据进行特定的业务处理。

S130,根据第一日期将当前工作日期切换为第一日期,并根据第一日期对待测数据执行第一日期对应的业务处理任务,得到对应的业务处理结果。

在该步骤中,示例性地,第一日期是下个账单日,将当前工作日期切换为下个账单日,即可测试是否可以正常生成账单。

根据本申请的实施例,可以根据数据获取请求中的数据标识,从业务系统中的多个业务数据中,获取到与该数据标识对应的业务数据作为待测数据,并获取到预先存储的该待测数据的当前业务日和至少一个测试日期,在根据接收到的数据处理请求,从至少一个测试日期中获取一个测试日期作为第一日期之后,可以根据第一日期对当前业务日期进行切日(切换为新的工作日期)和跑批(根据新的工作日期对待测数据执行第一日期对应的业务处理任务),得到对应的业务处理结果。根据该方法,进行切日和跑批时可以只对数据标识对应的业务数据执行第一日期对应的业务处理任务,而非针对全库所有业务数据;并且,每个测试任务可以根据对应的测试日期对业务系统的当前工作日期执行日期切换,从而可以实现业务数据之间对于测试日期和当前工作日期的区分和分别记录,基于此,本申请实施例的数据处理方法,在对一个业务数据执行第一日期对应的业务处理任务后,不会影响到其它业务数据,也不会改变其它业务数据的当前工作日期和测试日期,实现不同业务数据之间测试任务的互不干扰,保证业务数据之间数据处理的独立性,并有利于减少大量不必要的计算,节约计算资源。

在一些实施例中,业务系统的当前工作日期和至少一个测试日期,是从预先存储的与数据标识对应的测试参数记录中获取的日期,至少一个测试日期中包括当前批量日期(Process Date)和业务处理日期,业务系统提供有业务日期查询服务和业务处理信息查询服务;在该实施例中,在步骤S120之前,数据处理方法还包括:

S11,通过业务日期查询服务,查询业务系统的当前业务日期和当前批量日期,其中,当前业务日期用于指示业务系统的当前工作日期,当前批量日期用于指示对当前工作日期进行切换所基于的日期。

在该步骤中,在接收到数据获取请求后,可以调用业务系统提供的业务日期管理服务的业务日期查询接口,获取当前系统的业务日期、当前批量日期;其中,业务日期查询接口用于提供业务日期查询服务。

在一些实施例中,在通过测试任务的执行过程中,需要先对业务日期进行更新,在开始执行特定的业务处理。具体地,对业务日期进行更新,即根据对应的测试日期对当前工作日期执行日期切换,也即进行切日。

其中,当前批量日期用于指示当前工作日期的切换所基于的日期。当前批量日期可以作为一个标识,通俗来讲,就是表示当前批量已经跑了哪一天,防止日期倒切跑批。例如,假设当前批量日期是2022年1月3日,则对当前业务日期进行切换得到的新的业务日期,需要在当前批量日期之后,而不能在当前批量日期之前,若新的业务日期切回2022年1月2日及之前叫倒切,这样会导致垃圾数据。

当前业务日期和当前批量日期,存储在预定数据库的系统时间状态信息标注表中。在相关技术中,所有业务数据之间共用当前业务日期和当前批量日期。例如所有合同的当前业务日期为同一业务日期、当前批量日期为同一批量日期,对某个合同进行切日跑批时,所有合同的当前业务日期和批量日期都会均受影响。而在本申请实施例中,每个业务数据的当前业务日期和当前批量日期,通过数据标识进行区分,为后续对每个业务数据单独进行切日跑批的业务处理提供基础。

S12,通过业务处理信息查询服务,查询与数据标识对应的业务处理日期。

在该步骤中,可以根据数据获取请求中的合同号和用户唯一标识,调用业务系统提供的联机交易服务的合同查询接口,获取该待测数据的下个账单日、下个还款日。合同查询接口用于提供业务处理信息查询服务,该合同查询接口的入参为合同号(contrNbr)和用户唯一标识(uuid),出参为业务处理日期,例如下个账单日和下个还款日。

示例性地,下个账单日和下个还款日是每个合同进行放款入账时生成的日期。例如,假设当前业务时间是2023年1月3日,当天有一笔合同放款入账,那么该合同的账单日为即每个月的3日,还款日为账单日之后的预定天数(例如3天或5天),假设还款日为账单日之后5天,则下个账单日为2023年2月3日、下个还款日为2023年2月8日。

示例性地,每个合同的下个账单日和下个还款日存储合同账户(ccs_acct)表中。

在本申请实施例中,如果测试任务对应的业务处理是出账单,那么需要将批量日期的参数值设置为下个账单日,这样将当前业务日期切换到批量日期的下一天,即可对出账单的功能进行测试;如果测试任务对应的业务处理是还款逾期(已经出账单,需要设置下个账单逾期的业务场景),那么需要将批量日期的参数值设置为下个还款日。

S13,将查询到的当前业务日期、当前批量日期和业务处理日期,生成与数据标识对应的测试参数记录。

S14,将生成的与数据标识对应的测试参数记录,存储至预定数据库的业务处理信息记录表中。

在该步骤中,可以连接预定数据库,使用结构化查询语言(Structured QueryLanguage,SQL)编辑查询语句,从业务处理信息记录表(contr_batch_info)查询是否存在与该数表示对应的测试参数记录。

例如,可以使用select语句加where条件,执行select*from contr_batch_infowhere uuid=${uuid}and contr_nbr=${合同号}),从业务处理信息记录表中查询是否有该用户唯一标识(uuid)和合同号(contr_nbr)对应的测试参数记录。

若已经存在,则通过幂等机制返回成功(简称幂等返回成功);在该实施例中,幂等机制是指可以保证多次查询返回的结果是一致的;若不存在,则将查询到的当前业务日期、当前批量日期和业务处理日期,作为一条与数据标识对应的测试参数记录,并存储这条与数据标识对应的测试参数记录至该预定数据库的业务处理信息记录表中。示例性地,当业务数据为合同数据,则业务处理信息记录表也可以称为跑批合同信息记录表。

通过上述步骤S11-S14,可以将待测数据的当前业务日期、当前批量日期和业务处理日期(例如下个账单日、下个还款日),通过该待测数据的数据标识进行存储,这样不同的待测数据(业务数据)之间的这些参数即可通过各自的数据标识进行区分,为后续对每个业务数据单独进行切日跑批的业务处理提供基础。

在一些实施例中,可以通过提供post接口,接收测试参数查询请求,查询数据标识对应的测试参数记录。该接口可以称为是测试参数查询接口,该接口的入参为数据标识(例如合同编号和用户唯一标识),出参为与输入的数据标识对应的当前业务日期、当前批量日期、下个账单日、下个还款日。该接口内部通过连接数据库,查询业务处理信息记录表(例如跑批合同信息记录表)获取上述测试参数信息,并返回获取到的测试参数信息。

在一些实施例中,在获取上述测试参数信息之后,可以从至少一个测试日期(当前批量日期、下个账单日、下个还款日)中,选择第一日期,执行第一日期对应的业务处理任务。例如,若第一日期为当前批量日期,则第一日期对应的业务处理任务为放款入账场景中的测试任务;若第一日期为下个账单日,则第一日期对应的业务处理任务为出账单场景中的测试任务;若第一日期为下个还款日,则第一日期对应的业务处理任务为还款逾期场景中的测试任务。

在执行第一日期对应的业务处理任务时,可以通过调用任务执行接口(也称切日跑批接口)来执行,该接口的入参包括数据标识(例如合同编号和用户唯一标识)和第一日期(例如当前批量日期、下个账单日或下个还款日),根据业务需要传入相应的参数。

在该实施例中,执行第一日期对应的业务处理任务时,只涉及数据标识对应的待测数据,因此可以实现只对数据标识对应的业务数据执行第一日期对应的业务处理任务,而非针对全库所有业务数据;并且,预先存储的测试参数记录与数据标识相对应,从而可以实现不同待测数据的测试参数记录可以通过数据标识进行区分和分别记录,实现不同业务数据之间测试任务的互不干扰,保证业务数据之间数据处理的独立性,并有利于减少大量不必要的计算,节约计算资源。

在一些实施例中,业务处理日期包括账单生成日期和还款日期;在步骤S130之后,数据处理方法还包括:S21,在预定数据库中,对与数据标识对应的测试参数记录执行数据更新,数据更新包括如下步骤:将与数据标识对应的当前批量日期更新为第一日期;将与数据标识对应的当前业务日期更新为第一日期之后的预定日期;在第一日期为账单生成日期的情况下,将与数据标识对应的账单生成日期更新为下个账单生成日期;在第一日期为还款日期的情况下,将与数据标识对应的还款日期更新为下个还款日。

示例性地,根据任务执行接口的入参(例如contrNbr、uuid、第一日期),更新对应的业务处理信息记录表,以更新该数据标识(contrNbr和uuid)所对应待测数据的业务日期、批量日期、下个账单日、下个还款日。具体地,无论入参中传入的第一日期取值为当前批量日期、下个账单日或下个还款日,业务日期更新为第一日期或第一日期加一天的日期(实现切日),具体可以根据实际情况进行设置;如果入参中传入的第一日期为账单日,则设置下个账单日为该字段当前在数据库中的取值加1个月的得到的日期,下个还款日保持不变;如果入参中传入的第一日期为还款日,则下个还款日为该字段当前在数据库中的取值,下个账单日保持不变。

在该实施例中,在根据新的工作日期对待测数据执行第一日期对应的业务处理任务,得到对应的业务处理结果之后,需要对与数据标识对应的测试参数记录执行数据更新,以使该业务处理信息记录表中的参数是测试任务执行后实时更新的参数。

在一些实施例中,在第一日期为当前批量日期的情况下,第一日期对应的业务处理任务用于对待测数据执行预定的入账业务处理任务步骤;在第一日期为账单生成日期的情况下,第一日期对应的业务处理任务用于对待测数据执行预定的生成账单处理任务步骤;在第一日期为还款日期的情况下,第一日期对应的业务处理任务用于对待测数据执行预定的还款逾期处理任务步骤。

在该实施例中,可以通过第一日期的设置,对待测数据执行不同场景下第一日期对应的业务处理任务,得到对应的业务处理结果。

在一些实施例中,执行第一日期对应的业务处理任务和执行数据更新为业务系统的同一预定事务中的不同步骤;该数据方法还包括:S31,在执行第一日期对应的业务处理任务为执行失败状态的情况下,回滚执行的第一日期对应的业务处理任务;S32,在执行第一日期对应的业务处理任务为执行成功状态和执行数据更新为执行失败的情况下,回滚执行的第一日期对应的业务处理任务和回滚所进行的数据更新。

在该实施例中,步骤S130中的执行第一日期对应的业务处理任务和步骤S21中的执行数据更新为一个事务,要么全部执行成功,若其中一个执行失败,则需要进行回滚,以保证用于测试的业务处理信息记录表中的数据(例如账单日和还款日)与业务系统本身的账户信息(例如核心账务系统中的账单日和还款日)保持数据一致。

在一些实施例中,业务系统包括多个预定数据库和对应的多个运行实例,每个预定数据库与一个运行实例对应,多个预定数据库的业务数据不同,每个运行实例用于对所对应的预定数据库中的业务数据执行与测试任务相关的业务处理;数据标识中包括业务编号和用户唯一标识码;在该实施例中,步骤S130中的执行第一日期对应的业务处理任务,具体可以包括:S41,对用户唯一标识码进行数据转换,得到预定取值范围内的预定编号,预定取值范围为1-N,其中N为多个运行实例的实例总数;S42,获取预设的每个运行实例的实例编号和目标运行实例,目标运行实例为与预定编号相同的实例编号对应的运行实例;S43,利用目标运行实例对待测数据执行第一日期对应的业务处理任务。

在该实施例中,多个运行实例(也称批量实例)与多个数据库是一一对应的关系,即批量实例1处理数据库1的数据,批量实例2处理数据库2的数据,以此类推。在接收到多个数据处理请求时,若每个数据处理请求中的数据标识所对应的业务数据位于不同的预定数据库,由于每个预定数据库对应一个运行实例,则可以通过多个运行实例用于并行对各自对应的预定数据库中的业务数据执行与测试任务相关的业务处理。

在本申请实施例中,运行实例可以理解为进程、容器等,一个预定数据库中的业务数据,通过同一运行实例所调用的任务执行接口(即跑批接口)来执行测试任务,计算资源开销较小,执行效率更高。

在一些实施例中,S41具体可以包括:将用户唯一标识码转化为整数;将转化得到的整数对多个运行实例的实例总数取余,得到余数;将得到的余数作为预定编号。

示例性地,可以通过下面的表达式(1)来计算对应的批量实例号

Integer.parseInt(uuid.substring(uuid.length()-4),16)%n(1)

其中,uuid.length()用于获取uuid的字符串长度,uuid.substring(uuid.length()-4),16)表示从uuid这个字符串中提取子字符串,子字符串的具体内容是从uuid的字符串长度-4的位置到第16位(不含第16位)的所有字符,Integer.parseInt(uuid.substring(uuid.length()-4),16)用于将该子字符串转化为整数值,Integer.parseInt(uuid.substring(uuid.length()-4),16)%n用于将该整数值对n取余,n为批量实例数。因此,通过上述表达式(1)可以计算得到多个运行实例的实例编号中的一个实例编号。

在本申请实施例中,可以计算得到的用户唯一标识(uuid)对应的运行实例,通过调用该对应的运行示例的任务执行接口(即跑批接口),进行对应测试任务的业务处理(跑批)。

根据本申请实施例的数据处理方法,进行切日和跑批时可以只对数据标识对应的业务数据执行第一日期对应的业务处理任务,而非针对全库所有业务数据;并且,每个测试任务可以根据对应的测试日期对业务系统的当前工作日期执行日期切换,从而可以实现业务数据之间对于测试日期和当前工作日期的区分和分别记录,基于此,本申请实施例的数据处理方法,在对一个业务数据执行第一日期对应的业务处理任务后,不会影响到其它业务数据,也不会改变其它业务数据的当前工作日期和测试日期,实现不同业务数据之间测试任务的互不干扰,保证业务数据之间数据处理的独立性,并有利于减少大量不必要的计算,节约计算资源。

图2为本申请示例性实施例的数据处理系统的架构图。如图2所示,该数据处理系统包括:处理设备201、实时服务202、多个批量服务例如批量服务1、批量服务2和批量服务3,多个数据库例如数据库1、数据库2、数据库3,批量服务与数据库一一对应,每个批量服务是由一个运行实例提供的服务。

其中,处理设备201,用于执行本申请实施例的数据处理方法。

业务日期管理服务202,用于提供业务日期查询接口,获取当前业务日期、当前批量日期,这里查到的当前业务日期、当前批量日期是所有数据通用的当前业务日期和当前批量日期。

实时服务202,可以用于调用处理设备201提供的测试参数查询接口(对输入的数据标识,提供所对应的当前业务日期、当前批量日期、下个账单日、下个还款日的查询),从业务处理信息记录表(contr_batch_info)中,查询得到每个测试数据的数据标识所对应的测试参数记录,并获取到其中的当前业务日期。如图2所示,不同的测试数据(具有不同的数据标识,例如uuid)可以存储在不同的数据库中。

在相关技术中,实时服务需要从业务日期管理服务获取统一的业务日期,而在本申请实施例中,预先存储的测试参数记录与数据标识相对应,从而可以实现不同待测数据的测试参数记录可以通过数据标识进行区分和分别记录,并可以通过测试参数查询接口查询到每个待测数据的当前业务日期。

图3为本申请示例性实施例的数据处理方法的详细流程图。如图3所示,以业务数据为合同数据为例,该数据处理方法包括:

S301,添加跑批数据。

在该步骤中,通过接收到的数据获取请求中包含的数据标识,从业务系统中的多个业务数据中,获取与数据标识对应的业务数据作为跑批数据,即待测数据。

S302,获取系统当前业务日期。

在该步骤中,通过业务日期管理服务的业务日期查询接口,获取当前系统的业务日期、当前批量日期。

S303,获取账户信息。

在该步骤中,通过联机交易服务的合同查询接口,获取该待测数据的账户信息。账户信息例如下个账单日、下个还款日。

S304,存储跑批合同信息。

在该步骤中,将获取到的系统的当前业务日期、当前批量日期和业务处理日期,生成与数据标识对应的测试参数记录(即跑批合同信息),并存储到预定数据库的业务处理信息记录表中。

S305,获取批量日期和账单日期。

在该步骤中,可以从数据库中查询得到数据标识对应的测试参数记录,测试参数记录中包括当前业务日期、当前批量日期、下个账单日、下个还款日,可以从中获取所需的批量日期和账单日期。

在图3中,实时服务可以调用测试参数查询接口,查询得到数据标识对应的测试参数记录。

S306,执行切日和跑批。

在该步骤中,接收数据处理请求,数据处理请求中包含数据标识和第一日期,第一日期为至少一个测试日期中的任一测试日期;当第一日期为下个账单日,则可以将当前业务日期切换至下个账单日之后一天的日期,然后就可以对该数据标识对应的待测数据,执行生成账单相关的业务处理。

具体地,该步骤还可以包括S3061-S3063。

S3061,更新合同信息。

具体地,可以将与数据标识对应的当前批量日期更新为第一日期;将与数据标识对应的当前业务日期更新为第一日期之后的预定日期;在第一日期为账单生成日期的情况下,将与数据标识对应的账单生成日期更新为下个账单生成日期;在第一日期为还款日期的情况下,将与数据标识对应的还款日期更新为下个还款日

S3062,启动对应实例的批量服务。

具体地,可以对数据标识中的用户唯一标识进行数据转换,得到预定取值范围内的预定编号,将该预定编号和每个实例的实例号进行匹配,启动匹配到的实例号所对应的实例的批量服务,该批量服务用于执行该待测数据的业务处理。

S3063,更新对应实例的数据库。

在该步骤中,通过对应实例对所对应的数据库中的待测数据处理,根据处理结果更新对应的数据库。

通过本申请实施例的数据处理方法,可以分别管理每个测试数据(合同或借据)的当前业务日期和当前批量日期,并可以通过仅对指定的测试数据进行切日和跑批,其余数据不受影响,使得各测试数据之间的批量任务互不干扰,保证了测试任务的独立性;并且,可以通过多个运行实例进行多线程的切日和跑批,即多个测试数据,可在同一时刻同时进行切日和跑批,减少不必要的等待时间,提升测试效率。

可以理解,本申请提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本申请不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

此外,本申请还提供了数据处理装置、电子设备、计算机可读存储介质,上述均可用来实现本申请提供的任一种数据处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。

图4为本申请实施例提供的一种数据处理装置的框图。

参照图4,本申请实施例提供了一种数据处理装置,该数据处理装置400可以包括如下模块。

数据获取模块410,用于根据接收的数据获取请求中包含的数据标识,从业务系统中的多个业务数据中获取待测数据,待测数据为与数据标识对应的业务数据;

处理请求接收模块420,用于接收数据处理请求,数据处理请求中包含数据标识和第一日期,第一日期为至少一个测试日期中的任一测试日期;其中,每个测试日期对应一个测试任务,每个测试任务用于根据对应的测试日期对业务系统的当前工作日期执行日期切换,并根据切换后的工作日期执行对应的业务处理任务;

任务执行模块430,用于根据第一日期将当前工作日期切换为第一日期,并根据第一日期对待测数据执行第一日期对应的业务处理任务,得到对应的业务处理结果。

在一些实施例中,业务系统的当前工作日期和至少一个测试日期,是从预先存储的与数据标识对应的测试参数记录中获取的日期,至少一个测试日期中包括当前批量日期和业务处理日期,业务系统提供有业务日期查询服务和业务处理信息查询服务;数据处理装置400还包括参数获取模块,参数获取模块具体用于:在接收数据处理请求之前,通过业务日期查询服务,查询业务系统的当前业务日期和当前批量日期,其中,当前业务日期用于指示业务系统的当前工作日期,当前批量日期用于指示对当前工作日期进行切换所基于的日期;通过业务处理信息查询服务,查询与数据标识对应的业务处理日期;将查询到的当前业务日期、当前批量日期和业务处理日期,生成与数据标识对应的测试参数记录;将生成的与数据标识对应的测试参数记录,存储至预定数据库的业务处理信息记录表中。

在一些实施例中,业务处理日期包括账单生成日期和还款日期;数据处理装置400还包括数据更新模块,用于在根据第一日期对待测数据执行第一日期对应的业务处理任务,得到对应的业务处理结果之后,在预定数据库中,对与数据标识对应的测试参数记录执行数据更新,数据更新包括如下步骤:将与数据标识对应的当前批量日期更新为第一日期;将与数据标识对应的当前业务日期更新为第一日期之后的预定日期;在第一日期为账单生成日期的情况下,将与数据标识对应的账单生成日期更新为下个账单生成日期;在第一日期为还款日期的情况下,将与数据标识对应的还款日期更新为下个还款日。

在一些实施例中,在第一日期为当前批量日期的情况下,第一日期对应的业务处理任务用于对待测数据执行预定的入账业务处理任务步骤;在第一日期为账单生成日期的情况下,第一日期对应的业务处理任务用于对待测数据执行预定的生成账单处理任务步骤;在第一日期为还款日期的情况下,第一日期对应的业务处理任务用于对待测数据执行预定的还款逾期处理任务步骤。

在一些实施例中,执行第一日期对应的业务处理任务和执行数据更新为业务系统的同一预定事务中的不同步骤;数据处理装置400还包括回滚模块,用于在执行第一日期对应的业务处理任务为执行失败状态的情况下,回滚执行的第一日期对应的业务处理任务;在执行第一日期对应的业务处理任务为执行成功状态和执行数据更新为执行失败的情况下,回滚执行的第一日期对应的业务处理任务和回滚所进行的数据更新。

在一些实施例中,业务系统包括多个预定数据库和对应的多个运行实例,每个预定数据库与一个运行实例对应,多个预定数据库的业务数据不同,多个运行实例用于并行对各自对应的预定数据库中的业务数据执行与测试任务相关的业务处理;数据标识中包括业务编号和用户唯一标识码,任务执行模块430在执行第一日期对应的业务处理任务时,具体用于:对用户唯一标识码进行数据转换,得到预定取值范围内的预定编号,预定取值范围为1-N,其中N为多个运行实例的实例总数;获取预设的每个运行实例的实例编号和目标运行实例,目标运行实例为与预定编号相同的实例编号对应的运行实例;利用目标运行实例对待测数据执行第一日期对应的业务处理任务。

在一些实施例中,任务执行模块430在具体用于对用户唯一标识码进行数据转换,得到预定取值范围内的预定编号时,具体用于:将用户唯一标识码转化为整数;将转化得到的整数对多个运行实例的实例总数取余,得到余数;将得到的余数作为预定编号。

根据本申请实施例的数据处理装置,进行切日和跑批时可以只对数据标识对应的业务数据执行第一日期对应的业务处理任务,而非针对全库所有业务数据;并且,每个测试任务可以根据对应的测试日期对业务系统的当前工作日期执行日期切换,从而可以实现业务数据之间对于测试日期和当前工作日期的区分和分别记录,基于此,本申请实施例的数据处理方法,在对一个业务数据执行第一日期对应的业务处理任务后,不会影响到其它业务数据,也不会改变其它业务数据的当前工作日期和测试日期,实现不同业务数据之间测试任务的互不干扰,保证业务数据之间数据处理的独立性,并有利于减少大量不必要的计算,节约计算资源。

需要明确的是,本申请并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

图5为本申请实施例提供的一种电子设备的框图。

参照图5,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器501;至少一个存储器502,以及一个或多个I/O接口503,连接在处理器501与存储器502之间;其中,存储器502存储有可被至少一个处理器501执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器501执行,以使至少一个处理器501能够执行上述的数据处理方法。

本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的数据处理方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。

本申请实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述数据处理方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。

如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、闪存或其他存储器技术、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。

这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本申请的范围的情况下,可进行各种形式和细节上的改变。

相关技术
  • 一种小结构件大载荷冲击试验加载装置及方法
  • 一种疲劳冲击组合加载结构试验系统
  • 一种适用于海上风机桩基振动试验的水平循环加载系统及加载方法
  • 一种电动缸起竖系统加载与性能测试装置及测试方法
  • 一种连续多次高冲击加载试验与测试系统及方法
  • 飞机耐冲击强度测试试验的冲击加载系统及其加载方法
技术分类

06120116518344