数据计算方法及装置与流程

文档序号:17641650发布日期:2019-05-11 00:42阅读:306来源:国知局
数据计算方法及装置与流程

本申请涉及计算机领域,尤其涉及一种数据计算方法及装置。



背景技术:

当前在金融支付等系统中,为了对用户的操作进行风险控制,需要对用户的支付操作,支付金额,登录行为等进行数据计算和数据分析以确定用户的操作风险。目前的数据计算方法主要包括:确定数据筛选条件,根据筛选条件从数据库中查询出对应的数据,对查询出的数据进行累计,并根据预设规则进行计算。

然而,当数据库中需要查询的数据较多时,查询过程将会耗费大量时间,且因为需要对查询的数据进行累计计算,计算耗时也较高。



技术实现要素:

本申请实施例提供一种数据计算方法及装置,通过对数据进行实时累计并缓存,需要计算数据时,获取缓存数据直接进行计算,从而减少了进行数据计算所需要的时间。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供了一种数据计算方法,该方法包括:确定源数据库中的第一数据和第二数据;其中,所述第一数据为所述源数据库中预设时间节点之前存储的数据;所述第二数据为所述源数据库中预设时间节点之后存储的数据;在停机时间节点之前,将所述第一数据计算至第一目标数据库;所述停机时间节点为使建立所述源数据库的服务器停止运行以进行数据计算的时间节点;在全部所述第一数据计算至所述第一目标数据库之后,将所述第二数据计算至所述第一目标数据库。

第二方面,本申请提供了一种数据计算装置,该装置包括:处理模块,用于确定源数据库中的第一数据和第二数据;其中,所述第一数据为所述源数据库中预设时间节点之前存储的数据;所述第二数据为所述源数据库中预设时间节点之后存储的数据;所述处理模块,还用于在停机时间节点之前,将所述第一数据计算至第一目标数据库;所述停机时间节点为使建立所述源数据库的服务器停止运行以进行数据计算的时间节点;所述处理模块,还用于在全部所述第一数据计算至所述第一目标数据库之后,将所述第二数据计算至所述第一目标数据库。

第三方面,本申请提供了一种数据计算装置,该装置包括:处理器和存储器;其中,存储器用于存储一个或多个程序,该一个或多个程序包括计算机执行指令,当该数据计算装置运行时,处理器执行该存储器存储的该计算机执行指令,以使该数据计算装置执行上述第一方面及其任意一种实现方式所述的数据计算方法。

第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述第一方面及其任意一种实现方式所述的数据计算方法。

第五方面,本申请提供了一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第一方面及其任意一种实现方式所述数据计算方法。

本申请实施例提供的数据计算方法,确定源数据库中的第一数据和第二数据;其中,第一数据为源数据库中预设时间节点之前存储的数据;第二数据为源数据库中预设时间节点之后存储的数据;在停机时间节点之前,将第一数据计算至第一目标数据库;停机时间节点为使建立源数据库的服务器停止运行以进行数据计算的时间节点;在全部第一数据计算至第一目标数据库之后,将第二数据计算至第一目标数据库。本申请提供的一种数据计算方法及装置能够在停机时间节点之前将第一数据计算至第一目标数据库中。因此能够减少数据库服务器停机的时长,降低数据库服务器停机对业务的影响。

附图说明

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

图2为本申请实施例提供的一种数据计算装置的结构示意图一;

图3为本申请实施例提供的一种数据计算装置的结构示意图二;

图4为本申请实施例提供的一种数据计算装置的结构示意图三;

图5为本申请实施例提供的一种时间窗的示意图;

图6为本申请实施例提供的另一种时间窗的示意图。

具体实施方式

下面将结合附图对本申请提供的数据计算方法及装置进行详细的描述。

本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。

此外,本申请的描述中所提到的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。

本申请实施例提供了一种数据计算方法。如图1所示,所述数据计算方法可以由任意计算机设备执行。所述方法包括s101-s104。

s101、确定时间窗。

其中,所述时间窗用于对数据队列中的数据进行筛选;所述时间窗以时间为流向沿着所述数据队列移动。

具体为,所述时间窗可以通过如下两种方案确定:

方案一:确定第一时间节点和第二时间节点。其中,所述第一时间节点为与当前时间节点同步的时间节点;所述第二时间节点为与所述第一时间节点间隔固定时长的时间节点。以所述第一时间节点为窗头,以所述第二时间节点为窗尾确定所述时间窗。如图5所示,为该方案一中所述的时间窗。

具体为,该时间窗是一个固定时长的时间窗。为确定该时间窗,首先确定所述时间窗的长度;该长度根据数据计算的需求确定(例如一周、一个月或者一年等)。其次,确定第一时间节点。该第一时间节点是一个随着当前时间节点不断同步移动的时间节点。最后确定第二时间节点,将所述第一时间节点减去所述时间窗的长度,即可得到第二时间节点。以所述第一时间节点为窗头,所述第二时间节点为窗尾确定所述时间窗。因为第一时间节点为移动的时间节点,且第一时间节点与第二时间节点间隔固定时长,所以第二时间节点也随着第一时间节点不断移动。即该时间窗为一个固定时长的随着当前时间不断沿着数据队列滑动的时间窗。

示例性的,确定所述时间窗口的长度为一个月。当前时间为2019年2月1日0点0分0秒;将该时间节点作为第一时间节点。将2019年1月1日0点0分0秒作为第二时间节点。使该时间窗沿着数据队列与当前时间同步的向前(时间流动方向)滑动。

方案二:确定第一时间节点和第二时间节点,所述第一时间节点为与当前时间节点同步的时间节点;所述第二时间节点为第一预设时间节点;所述第一时间节点为固定时间节点。确定所述时间窗以所述第一时间节点为窗头,以所述第二时间节点为窗尾。如图6所示,为该方案二中所述的时间窗。

具体为,该时间窗是一个时间长度不断变化的时间窗。为确定该时间窗,首先确定第一时间节点,该第一时间节点是一个随着当前时间节点不断同步移动的时间节点。然后确定第二时间节点,该第二时间节点是一个预先指定的固定时间节点。以所述第一时间节点为窗头,所述第二时间节点为窗尾确定所述时间窗。在选定第一时间节点和第二时间节点时,可以将第一时间节点和第二时间节点都选定为当前时间节点。其中,所述第一时间节点为与当前时间节点同步运动的时间节点,第二时间节点为一个固定不变的时间节点。该时间窗为一个随着当前时间变化,窗口长度不断变化的时间窗。

示例性的,当前时间为2019年2月1日0点0分0秒;将该时间节点作为第一时间节点。并将2019年2月1日0点0分0秒确定为第二时间节点(也可以2019年2月1日0点0分0秒之前的任意时间节点作为第二时间节点)。当所述第一时间节点向前运动时,所述时间窗口的时间长度不断变长。

在方案二的一种实现方式中,当第一时间节点和第二时间节点的距离大于第二预设阈值时,将第二预设时间节点作为所述第二时间节点以减小所述第一时间节点和所述第二时间节点之间的时长;所述第二预设时间节点为固定时间节点。具体为,当第一时间节点和第二时间节点的距离大于第二预设阈值(例如一个月)时,重新选定第二时间节点。

示例性的,将所述第二预设阈值设定为1个月。第一时间节点和第二时间节点均为2019年2月1日0点0分0秒。当第一时间节点跟随当前时间节点向前运动了一个月之后,所述第一时间节点变为2019年3月1日0点0分0秒,所述第二时间节点仍为2019年2月1日0点0分0秒,第一时间节点和第二时间节点的距离大于一个月。此时重新选定当前时间节点(即2019年3月1日0点0分0秒)为第二时间节点。此时时间窗内数据为空,清空所述第一数据集合中的第一目标数据,重新进行累计。

s102、若所述数据队列中的第一目标数据进入所述时间窗,将所述第一目标数据按第一预设规则添加在所述第一数据集合中。

其中,所述第一目标数据为需要进行计算的数据;所述第一数据集合为所述时间窗中的所述第一目标数据组成的集合。所述第一预设规则,为计算和\或统计和\或累计所述目标数据的规则。

具体为,确定第一目标数据。所述第一目标数据为需要统计并进行计算的数据。按照第一预设规则,计算和\或统计和\或累计所述时间窗内的现有第一目标数据。之后当第一数据进入时间窗时,根据第一预设规则计算和\或统计和\或累计所述第一目标数据至所述第一数据集合中。因为所述第一时间节点与当前时间节点同步,所以当第一目标数据进入数据队列时,所述第一目标数据也同时进入了所述时间窗。此时,将所述第一目标数据按照第一预设规则添加在所述第一数据集合中。

示例性的,第一目标数据为a用户的支付金额数据。为了确定a用户一个月的消费情况,将所述第一预设规则设为统计所述a用户一个月内支付的数据总金额,和支付的总次数。根据上述方案一确定时间窗,将时间窗长度确定为一个月。获取所述时间窗内现有的a用户的支付金额和支付次数,对支付金额和支付次数求和,确定支付总金额为a,支付总次数为n。当a用户又产生了一笔金额为b的支付时,a用户的支付金额b进入时间窗,此时,在计算所述a用户的支付总金额为a+b,支付次数为n+1。

示例性的,所述第一目标数据为a用户的支付金额数据。为了对a用户19年1月的支付金额进行限额(例如2019年1月消费不超过10w),将所述第一预设规则设为统计a用户2019年1月的支付总金额。根据上述方案二确定时间窗,将第一时间节点设定为当前时间节点,第二时间节点设定为2019年1月1日0点0分0秒。获取所述时间窗内现有的a用户的支付金额,确定支付总金额为a。当a用户又产生了一笔金额为b的支付时,a用户的支付金额b进入时间窗,此时,在计算所述a用户的支付总金额为a+b。可选的,若支付总金额大于限额时,可以发出对应的告警信息。

s103、若所述数据队列中的第一目标数据离开所述时间窗,将所述第一目标数据按第一预设规则从所述第一数据集合中删除。

具体为,当所述第一目标数据进入数据队列的时间早于所述第二时间节点时,确定所述第一目标数据离开所述时间窗。此时根据第一预设规则将所述第一目标数据从所述第一数据集合中删除,并将该数据对应的累计统计数据删除。

示例性的,在上述根据方案一确定时间窗,并统计完成所述时间窗内的数据以及a用户又产生的一笔金额为b的支付之后。随着时间窗的移动,时间窗内的一个a用户产生的一笔支付金额为c的支付数据离开所述时间窗,此时,在计算所述a用户的支付总金额为a+b-c,支付次数为n次。

s104、根据第一预设计算规则对所述第一数据集合中的所述第一目标数据进行计算。

其中,所述第一预设计算规则为根据数据计算的目的和方法预先确定的。

具体为,确定第一计算规则,并从所述第一数据集合中获取第一目标数据。根据第一计算规则对第一目标数据进行计算。

示例性的,在计算a用户一个月的消费情况时,需要确定每次用户支付之后的支付金额平均值。此时,根据第一数据集合中存储的数据可知,当前用户的支付金额为a+b-c,支付次数为n次。则支付金额平均值为:(a+b-c)/n。

示例性的,在对a用户19年的支付金额进行限额(额度为10万)计算时,需要确定每次用户支付完成之后是否超出限额,距离超出限额还有多少额度。从所述第一数据集合中获取到,此时所述a用户的支付总金额为a+b(假设为8万元)。计算所述限额金额与所述总金额的差值。确定此时用户还未超出限定额度。且距离超额还有两万元。

本申请实施例提供的数据计算方法,确定时间窗;其中,所述时间窗用于对数据队列中的数据进行筛选;所述时间窗以时间为流向沿着所述数据队列移动;若所述数据队列中的第一目标数据进入所述时间窗,将所述第一目标数据按第一预设规则添加在第一数据集合中;所述第一目标数据为需要进行计算的数据;若所述数据队列中的第一目标数据离开所述时间窗,将所述第一目标数据按第一预设规则从所述第一数据集合中删除;根据第一计算规则对所述第一数据集合中的所述第一目标数据进行计算。本申请提供的数据计算方法,通过确定时间窗,以时间为流向沿着所述数据队列移动。统计时间窗内的目标数据并进行计算。当目标数据进入时间窗对其进行累加,当时间窗离开时间窗对其进行累减。因此本申请提供的数据计算方法不需要从数据库中查询目标数据,同时将全库数据减少为时间窗内的数据,从而减少了进行数据计算所需要的时间。

在本申请的一种可实现方式中,若需要将所述第一目标数据变更为第二目标数据,则清空所述第一数据集合;将所述时间窗内的至少一个第二目标数据添加到所述第一数据集合中;若所述数据队列中的第二目标数据进入所述时间窗,将所述第二目标数据按第二预设规则添加在所述第一数据集合中;若所述数据队列中的第二目标数据离开所述时间窗,将所述第二目标数据按第二预设规则从所述第一数据集合中删除;根据第二计算规则对所述第一数据集合中的所述第二目标数据进行计算。根据该实现方式可以灵活的对数据库中的不同目标数据进行统计。

示例性的,所述时间窗正在对a用户的近一个月支付数据进行统计时。需要变更统计目标为b用户近一个月的支付数据。则清空所述第一数据集合中的数据。统计所述时间窗内的b用户的支付数据。将所述时间窗内b用户的支付数据累计到所述第一数据集合中。并根据统计所述第一数据集合中的b用户的支付总金额为d,支付次数为m。时间窗继续沿着数据队列以时间为流量运动,当有b用户的支付数据进入或者离开所述时间窗,则对该数据进行累加或者累减,同时对支付次数进行相应计算。

在本申请的一种实现方式中,确定根据第一预设计算规则对所述第一数据集合中的所述第一目标数据进行计算的第一计算结果;获取所述数据队列中的至少一个第一目标数据;根据第三预设计算规则计算所述数据队列中的至少一个第一目标数据,确定第二计算结果;若所述第一计算结果和所述第二计算结果的差值大于第一预设阈值,确定所述第一计算结果异常。其中,所述根据第三预设计算规则计算所述数据队列中的至少一个第一目标数据,确定第二计算结果可以实现为,根据现有技术中的先从数据库中查询并获取目标数据,对目标数据进行累计,然后对目标数据进行计算的方法确定第三结果。根据第三结果校验上述第一结果是否正确。为避免因数据库中数据量过大造成的校验速度过慢。可以在将数据库中数据量过多时设置查询数据库中的部分目标数据(例如30%或者50%的目标数据)。

本申请实施例可以根据上述方法示例对数据计算装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

如图2所示,本申请提供了一种数据计算装置,用于执行前述数据计算方法,所述装置包括:

处理模块201,用于确定时间窗;其中,所述时间窗用于对数据队列中的数据进行筛选;所述时间窗以时间为流向沿着所述数据队列移动。

所述处理模块,还用于若所述数据队列中的第一目标数据进入所述时间窗,将所述第一目标数据按第一预设规则添加在第一数据集合中;所述第一目标数据为需要进行计算的数据。

所述处理模块201,还用于若所述数据队列中的第一目标数据离开所述时间窗,将所述第一目标数据按第一预设规则从所述第一数据集合中删除。

所述处理模块201,还用于根据第一计算规则对所述第一数据集合中的所述第一目标数据进行计算。

可选的,所述处理模块201,还用于:确定第一时间节点和第二时间节点,所述第一时间节点为与当前时间节点同步的时间节点;所述第二时间节点为与所述第一时间节点间隔固定时长的时间节点。确定所述时间窗以所述第一时间节点为窗头,以所述第二时间节点为窗尾。

可选的,所述处理模块201,还用于:确定第一时间节点和第二时间节点,所述第一时间节点为与当前时间节点同步的时间节点;所述第二时间节点为第一预设时间节点;所述第一预设时间节点为固定时间节点。确定所述时间窗以所述第一时间节点为窗头,以所述第二时间节点为窗尾。

可选的,所述处理模块201,还用于:若需要将所述第一目标数据变更为第二目标数据,则清空所述第一数据集合。将所述时间窗内的至少一个第二目标数据添加到所述第一数据集合中。若所述数据队列中的第二目标数据进入所述时间窗,将所述第二目标数据按第二预设规则添加在所述第一数据集合中。若所述数据队列中的第二目标数据离开所述时间窗,将所述第二目标数据按第二预设规则从所述第一数据集合中删除。根据第二计算规则对所述第一数据集合中的所述第二目标数据进行计算。

可选的,如图3所示,所述数据计算装置还包括获取模块301。所述处理模块201,还用于确定根据第一预设计算规则对所述第一数据集合中的所述第一目标数据进行计算的第一计算结果。

获取模块301,用于获取所述数据队列中的至少一个第一目标数据。所述处理模块201,还用于根据第三预设计算规则计算所述数据队列中的至少一个第一目标数据,确定第二计算结果。

所述处理模块201,还用于若所述第一计算结果和所述第二计算结果的差值大于第一预设阈值,确定所述第一计算结果异常。

可选的,所述处理模块201,还用于:当所述第一时间节点和所述第二时间节点之间的时长大于第二预设阈值时,将第二预设时间节点作为所述第二时间节点以减小所述第一时间节点和所述第二时间节点之间的时长;所述第二预设时间节点为固定时间节点。

图4示出了上述实施例中所涉及的数据计算装置的又一种可能的结构示意图。该数据计算装置包括:处理器402和通信接口403。处理器402用于对数据计算装置的动作进行控制管理,例如,执行上述处理模块201执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信接口403用于支持数据计算装置与其他网络实体的通信,例如,执行上述处理模块201执行的步骤。数据计算装置还可以包括存储器401和总线404,存储器401用于存储数据计算装置的程序代码和数据。

其中,存储器401可以是数据计算装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。

上述处理器402可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

总线404可以是扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例所述的数据计算方法。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行上述方法实施例所示的方法流程中的数据计算方法。

其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)、可擦式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compactdiscread-onlymemory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(applicationspecificintegratedcircuit,asic)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1