数据获取方法和装置与流程

文档序号:11654260阅读:167来源:国知局
数据获取方法和装置与流程

本申请涉及数据处理技术领域,尤其涉及一种数据获取方法和装置。



背景技术:

通常的数据处理流程是:数据获取系统从数据表中获取数据,并发送给数据执行系统进行处理,当数据执行系统完成对一条数据的处理后才从数据表中删除该条数据,当一条数据正在执行时,数据表中依然保留该条数据。如果数据获取系统的频率较高,数据执行系统的频率较低时,就可能会出现数据获取系统获取到之前获取且当前在执行过程中状态还没有改变的数据。这样就会存在数据被重复获取和执行的问题,造成资源浪费。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的一个目的在于提出一种数据获取方法,该方法可以避免在相邻时间内获取到重复数据,提高资源利用率。

本申请的另一个目的在于提出一种数据获取装置。

为达到上述目的,本申请第一方面实施例提出的数据获取方法,包括:确定当前时间,并根据当前时间计算参数,其中,相邻时间内,不同的当前时间 对应不同的参数;根据所述参数确定需要选取的数据的标识信息,其中,当参数不同时,对应的标识信息不同;获取所述标识信息对应的数据。

本申请第一方面实施例提出的数据获取方法,通过根据参数确定对应的标识信息,并获取对应的数据,且参数不同对应的标识信息不同,可以在参数不同时获取到不同的数据,由于相邻时间内不同的当前时间对应不同的参数,因此,可以在相邻时间内获取到不同的数据,从而避免相邻时间内获取到重复数据,提高资源利用率。

为达到上述目的,本申请第二方面实施例提出的数据获取装置,包括:计算模块,用于确定当前时间,并根据当前时间计算参数,其中,相邻时间内,不同的当前时间对应不同的参数;确定模块,用于根据所述参数确定需要选取的数据的标识信息,其中,当参数不同时,对应的标识信息不同;获取模块,用于获取所述标识信息对应的数据。

本申请第二方面实施例提出的数据获取装置,通过根据参数确定对应的标识信息,并获取对应的数据,且参数不同对应的标识信息不同,可以在参数不同时获取到不同的数据,由于相邻时间内不同的当前时间对应不同的参数,因此,可以在相邻时间内获取到不同的数据,从而避免相邻时间内获取到重复数据,提高资源利用率。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请一实施例提出的数据获取方法的流程示意图;

图2是本申请另一实施例提出的数据获取方法的流程示意图;

图3是本申请实施例中数据获取系统和数据执行系统的处理示意图;

图4是本申请另一实施例提出的数据获取装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本申请一实施例提出的数据获取方法的流程示意图,该方法包括:

s11:确定当前时间,并根据当前时间计算参数,其中,相邻时间内,不同的当前时间对应不同的参数。

其中,可以预设计算规则,根据计算规则由当前时间计算得到参数。

根据计算规则的不同,相邻时间对应的具体时间也可以不同。

例如,计算规则是对当前时间的秒数进行取模运算时,相邻时间是相应的模的数值。取模运算的公式可以表示如下:

mod(当前时间的秒数,n),其中,n是模。

例如,n=3时,假设当前时间是14:00:03,则取模运算后得到的余数是0,当前时间是14:00:04,则得到的余数是1,依此类推,当前时间是14:00:06,则余数是0。相应的,此时的相邻时间是3秒。

s12:根据所述参数确定需要选取的数据的标识信息,其中,当参数不同时,对应的标识信息不同。

其中,数据的标识信息是指唯一标识数据的信息,当标识信息不同时,数据也是不同的。

标识信息例如是数据的主键(id)。

一些实施例中,可以根据预设的计算规则对标识信息进行运算,得到运算后的值,确定的标识信息是:对应的运算后的值与当前时间对应的参数相同的标识信息。

例如,计算规则与对当前时间的计算规则相同,如mod(id,n)。假设当前时间对应的参数是0,则确定的标识信息是取模运算后得到的余数是0的标识信息,例如,id是0、3、6等。

s13:获取所述标识信息对应的数据。

在根据当前时间对应的参数确定出标识信息后,可以选取与确定出的标识信息对应的数据。

例如,参数是0时,选取id是0、3、6等的数据。

另外,在获取数据时还可以设置其他的需要满足的条件,因此,在选取id是0、3、6等的数据后,还可以根据其他的需要满足的条件,在这些数据中选取满足其他的需要满足的条件的数据。

本实施例中,通过根据参数确定对应的标识信息,并获取对应的数据,且参数不同对应的标识信息不同,可以在参数不同时获取到不同的数据,由于相邻时间内不同的当前时间对应不同的参数,因此,可以在相邻时间内获取到不同的数据,从而避免相邻时间内获取到重复数据,提高资源利用率。

图2是本申请另一实施例提出的数据获取方法的流程示意图,该方法包括:

s21:确定当前时间,并对当前时间的秒数进行取模运算,得到余数。

取模运算的公式可以表示为:

mod(当前时间的秒数,n),n是可设置的,例如n=3。

例如,当前时间是14:00:03,则取模运算后得到的余数是0,当前时间是14:00:04,则得到的余数是1,依此类推,当前时间是14:00:06,则余数是0。

s22:生成数据选取条件,所述条件包括:根据所述参数确定的所述标识信息需要满足的条件。

其中,选取条件可以用结构化查询语言(structuredquerylanguage,sql)语句表示。

以标识信息是数据的id为例,本实施例中,选取条件不仅包括通常的选取条件,还包括数据的id需要满足的条件。

本实施例中,id需要满足的条件是:对标识信息进行取模运算后得到的余数是所述参数,用公式表示为:

mod(id,n)=#mod#

其中,mod(id,n)表示对id进行取模运算,且模是n。

#mod#是传入参数,具体是根据当前时间的秒数计算得到的余数。

当然,可以理解的是,选取条件还可以包括其他的需要满足的条件。

s23:根据数据选取条件,获取数据。

例如,对当前时间的秒数进行取模运算后得到的余数是0,则如果一条数据的id取模运算后的余数是0,即,id是0、3、6等,可以获取这些数据。

当然,可以理解的是,在还包括其他需要满足的条件时,在余数是0的场景下,则获取的数据是id是0、3、6等且满足其他需要满足的条件的数据。

数据获取系统在获取到数据后,可以发送给数据执行系统进行处理。

例如,参见图3,数据获取系统可以先通过sql脚本从数据表中获取满足条件的数据(s31),之后,数据获取系统将获取的数据逐条发送给数据执行系统(s32),之后,数据执行系统对数据进行处理,例如开启事务、锁住单条记录,进行后续的处理。

本实施例中,数据获取系统采用的条件不仅包括通常的条件,还包括数据的id需要满足的条件,如上述的mod(id,n)=#mod#。

其中的。#mod#是根据当前时间取模运算后得到的余数,n是可设置的。

具体的,可以根据数据获取系统和数据执行系统的处理频率确定相应参数。例如,数据获取系统以秒为单位,每秒获取一次数据,则对当前时间进行运算时,可以具体是指对当前时间的秒数进行取模运算。又例如,n可以选为大于或等于数据执行系统处理一条处理所需的时间。

因此,例如当前时间是14:00:03,03取模是0,定时任务触发只获取(或称为捞取)数据的id模3取余为0的一批数据(当然还要满足其他sql条件),下一秒定时任务触发只捞取数据的id模3取余为1的一批数据,再下一秒定时任务触发只捞取数据的id模3取余为2的一批数据,依次下去,到14:00:06,定时任务才会再捞取数据的id模3取余为0的一批数据,这样间隔3秒才会有机会捞取重复的数据,但如果3秒以内3秒前的被捞取的数据能执行完成的话(状态有所推进),那就不会再被捞出,就大大降低了由于捞取频率过高导致被捞取到重复数据的可能性。数据获取系统获取到数据后,可以将该数据发送给数据执行系统进行处理。

本实施例中,通过根据参数确定对应的标识信息,并获取对应的数据,且参数不同对应的标识信息不同,可以在参数不同时获取到不同的数据,由于相邻时间内不同的当前时间对应不同的参数,因此,可以在相邻时间内获取到不同的数据,从而避免相邻时间内获取到重复数据,提高资源利用率。进一步的,进行取模运算时采用的模大于或等于数据执行所需时间,可以避免数据被重复执行,提升了数据执行效率。

图4是本申请另一实施例提出的数据获取装置的结构示意图。该装置40包括:计算模块41、确定模块42和获取模块43。

计算模块41,用于确定当前时间,并根据当前时间计算参数,其中,相邻时间内,不同的当前时间对应不同的参数;

可选的,所述计算模块41具体用于:确定当前时间,根据当前时间进行取模运算,得到余数。

进一步的,计算模块41用于根据当前时间进行取模运算,得到余数,包括:对当前时间的秒数进行取模运算,得到余数。

其中,可以预设计算规则,根据计算规则由当前时间计算得到参数。

根据计算规则的不同,相邻时间对应的具体时间也可以不同。

例如,计算规则是对当前时间的秒数进行取模运算时,相邻时间是相应的模的数值。取模运算的公式可以表示如下:

mod(当前时间的秒数,n),其中,n是模。

例如,n=3时,假设当前时间是14:00:03,则取模运算后得到的余数是0,当前时间是14:00:04,则得到的余数是1,依此类推,当前时间是14:00:06,则余数是0。相应的,此时的相邻时间是3秒。

确定模块42,用于根据所述参数确定需要选取的数据的标识信息,其中, 当参数不同时,对应的标识信息不同。

可选的,确定模块42具体用于:将取模运算后得到的余数是所述参数的标识信息,确定为需要选取的数据的标识信息。

具体的,确定模块42用于:生成数据选取条件,所述条件包括:根据所述参数确定的所述标识信息需要满足的条件;根据所述标识信息需要满足的条件,确定需要选取的数据的标识信息。

其中,所述标识信息需要满足的条件,包括:对标识信息进行取模运算后得到的余数是所述参数。

一些实施例中,根据当前时间进行取模运算时采用的模,与对标识信息进行取模运算时采用的模相同。

一些实施例中,取模运算时采用的模大于或等于每条数据的执行所需时间。

可选的,所述数据的标识信息是数据的主键。

其中,数据的标识信息是指唯一标识数据的信息,当标识信息不同时,数据也是不同的。

标识信息例如是数据的主键(id)。

一些实施例中,可以根据预设的计算规则对标识信息进行运算,得到运算后的值,确定的标识信息是:对应的运算后的值与当前时间对应的参数相同的标识信息。

例如,计算规则与对当前时间的计算规则相同,如mod(id,n)。假设当前时间对应的参数是0,则确定的标识信息是取模运算后得到的余数是0的标识信息,例如,id是0、3、6等。

获取模块43,用于获取所述标识信息对应的数据。

在根据当前时间对应的参数确定出标识信息后,可以选取与确定出的标识信息对应的数据。

例如,参数是0时,选取id是0、3、6等的数据。

另外,在获取数据时还可以设置其他的需要满足的条件,因此,在选取id是0、3、6等的数据后,还可以根据其他的需要满足的条件,在这些数据中选取满足其他的需要满足的条件的数据。

本实施例中,通过根据参数确定对应的标识信息,并获取对应的数据,且参数不同对应的标识信息不同,可以在参数不同时获取到不同的数据,由于相邻时间内不同的当前时间对应不同的参数,因此,可以在相邻时间内获取到不同的数据,从而避免相邻时间内获取到重复数据,提高资源利用率。进一步的,进行取模运算时采用的模大于或等于数据执行所需时间,可以避免数据被重复执行,提升了数据执行效率。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执 行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的 范围内可以对上述实施例进行变化、修改、替换和变型。

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