数据处理方法和装置、电子设备
技术领域
本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及一种数据处理方法和装置、电子设备。
背景技术
通常,业务系统可以提供多个接口,通过调用这些接口,可以执行对应的业务。但在每次调用某个接口以执行对应的业务时,业务调用数据都可能不同。其中,业务调用数据可以包括:接口、接口请求参数、接口返回参数、请求量级、系统内部节点的有向无环结构、调用的上下游系统和部署单元等。
在实际应用中,可以对业务调用数据进行分析,以将单位时间内(例如:1分钟内)相似的业务调用数据添加至同一个业务调用数据集合中,例如:可以将接口请求参数和接口返回参数的MD5值均相等的业务调用数据添加至同一个业务调用数据集合中。
对于在业务执行过程中生成的各个业务调用数据集合而言,可以对该业务调用数据集合进行检测,以确定该业务调用数据集合是否为发生业务调用异常的业务调用数据集合,从而确定业务执行过程中是否发生异常。在实际应用中,可以预先建立存储有正常的历史业务调用数据集合的数据库,并判断该业务调用数据集合是否包含在该数据库中存储的历史业务调用数据集合中。如果是,则可以认为该业务调用数据集合正常;否则,可以认为该业务调用数据集合异常,即业务执行过程中是否发生异常。
发明内容
本说明书提供一种数据处理方法,所述方法包括:
基于数据库中存储的历史数据的数据修改时刻,以及预设的第一时间跨度,将所述历史数据划分为若干数据集合;
基于各个数据集合中的历史数据分别构造布隆过滤器,并基于构造的布隆过滤器生成布隆过滤器列表;
确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度;其中,所述目标布隆过滤器为所述布隆过滤器列表中起始时刻最晚的布隆过滤器;
如果是,则基于目标数据集合构造布隆过滤器,并将构造的布隆过滤器添加至所述布隆过滤器列表;其中,所述目标数据集合包括所述数据库中存储的数据修改时刻在从所述目标布隆过滤器的结束时刻至当前时刻的时间段内的历史数据;
如果否,则将所述目标数据集合添加至所述目标布隆过滤器;
基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理。
本说明书还提供一种数据处理装置,所述装置包括:
划分模块,用于基于数据库中存储的历史数据的数据修改时刻,以及预设的第一时间跨度,将所述历史数据划分为若干数据集合;
第一构造模块,用于基于各个数据集合中的历史数据分别构造布隆过滤器,并基于构造的布隆过滤器生成布隆过滤器列表;
确定模块,用于确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度;其中,所述目标布隆过滤器为所述布隆过滤器列表中起始时刻最晚的布隆过滤器;
第二构造模块,用于如果是,则基于目标数据集合构造布隆过滤器,并将构造的布隆过滤器添加至所述布隆过滤器列表;其中,所述目标数据集合包括所述数据库中存储的数据修改时刻在从所述目标布隆过滤器的结束时刻至当前时刻的时间段内的历史数据;
添加模块,用于如果否,则将所述目标数据集合添加至所述目标布隆过滤器;
处理模块,用于基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理。
本说明书还提供一种电子设备,所述电子设备包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于数据库中存储的历史数据的数据修改时刻,以及预设的第一时间跨度,将所述历史数据划分为若干数据集合;
基于各个数据集合中的历史数据分别构造布隆过滤器,并基于构造的布隆过滤器生成布隆过滤器列表;
确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度;其中,所述目标布隆过滤器为所述布隆过滤器列表中起始时刻最晚的布隆过滤器;
如果是,则基于目标数据集合构造布隆过滤器,并将构造的布隆过滤器添加至所述布隆过滤器列表;其中,所述目标数据集合包括所述数据库中存储的数据修改时刻在从所述目标布隆过滤器的结束时刻至当前时刻的时间段内的历史数据;
如果否,则将所述目标数据集合添加至所述目标布隆过滤器;
基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理。
在上述技术方案中,由于可以将已经存储在数据库中的历史数据按照数据修改时刻和预设的时间跨度划分为若干数据集合,并基于各个数据集合中的历史数据分别构造布隆过滤器,以及可以基于重新写入或修改的历史数据构造新的布隆过滤器,或者将该历史数据添加至对应的布隆过滤器,因此可以保证构造的各个布隆过滤器的容量与该布隆过滤器对应的时间段内的历史数据量相匹配,从而可以提高内存利用率。
附图说明
图1是本说明书一示例性实施例示出的一种数据处理方法的流程图;
图2是本说明书一示例性实施例示出的另一种数据处理方法的流程图;
图3是本说明书一示例性实施例示出的一种数据处理装置所在设备的硬件结构图;
图4是本说明书一示例性实施例示出的一种数据处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书旨在提供一种基于一定时间跨度将历史数据划分为多个数据集合,并基于这多个数据集合分别构造布隆过滤器,以基于构造的布隆过滤器进行后续的数据处理的技术方案。
具体地,可以先基于预设的时间跨度,将已经存储在数据库中的历史数据按照数据修改时刻划分为若干数据集合,并基于各个数据集合中的历史数据分别构造布隆过滤器。后续,如果该数据库中出现重新写入或修改的历史数据,则可以基于该历史数据的数据修改时刻,确定是基于该历史数据构造新的布隆过滤器,还是将该历史数据添加至起始时刻最晚的布隆过滤器。
另一方面,对应已经构造的所有布隆过滤器而言,可以分别检测各个布隆过滤器是否已经过期,并删除过期的布隆过滤器,即不再需要基于过期的布隆过滤器进行数据处理,从而可以避免由布隆过滤器中的过期数据导致的误判。
在上述技术方案中,由于可以将已经存储在数据库中的历史数据按照数据修改时刻和预设的时间跨度划分为若干数据集合,并基于各个数据集合中的历史数据分别构造布隆过滤器,以及可以基于重新写入或修改的历史数据构造新的布隆过滤器,或者将该历史数据添加至对应的布隆过滤器,因此可以保证构造的各个布隆过滤器的容量与该布隆过滤器对应的时间段内的历史数据量相匹配,从而可以提高内存利用率。
相关技术中,为了检测在业务执行过程中生成的各个业务调用数据集合是否为异常的业务调用数据集合,可以预先建立存储有正常的历史业务调用数据集合的数据库,并基于该数据库中存储的历史业务调用数据集合构造布隆过滤器。后续,可以判断在业务执行过程中生成的该业务调用数据集合与该布隆过滤器是否匹配。如果是,则可以确定该业务调用数据集合包含在该数据库存储的历史业务调用数据集合中,即该业务调用数据正常;否则,可以确定该业务调用数据集合不包含在该数据库存储的历史业务调用数据集合中,即该业务调用数据异常,从而可以确定业务执行过程中发生异常。
对于布隆过滤器而言,如果容量设置过小,则会导致布隆过滤器中的历史业务调用数据集合数量较少,从而导致误判率增大。因此在实际应用中,为了保证判断的准确率,通常会为构造的布隆过滤器设置较大的容量值,但这样极有可能造成不必要的内存浪费。
为了解决上述问题,本说明书提供一种数据处理方法和装置、电子设备,以避免由构造的布隆过滤器不合理造成的不必要的内存浪费。
请参考图1,图1是本说明书一示例性实施例示出的一种数据处理方法的流程图,该数据处理方法可以应用于业务系统中的计算机等电子设备,包括如下步骤:
步骤102,基于数据库中存储的历史数据的数据修改时刻,以及预设的第一时间跨度,将所述历史数据划分为若干数据集合。
在本实施例中,可以预先建立一个数据库,该数据库可以用于存储历史业务调用数据集合的数据库。
举例来说,假设该数据库用于存储正常的历史业务调用数据集合。在这种情况下,在每次调用某个接口以执行对应的业务后,如果本次业务执行过程中未发生异常,则可以将本次调用生成的业务调用数据集合修改该数据库中进行存储。在实际应用中,也可以由用户将正常的历史业务调用数据集合添加至该数据库中进行存储,本说明书对此不作限制。
此外,还可以由用户设置该数据库中存储的历史业务调用数据集合的时间跨度。
举例来说,假设用户针对该数据库存储的历史业务调用数据集合设置的时间跨度为一周,进一步地假设当前时刻为8月20日上午8:00,则该数据库中可以存储从8月13日上午8:00至8月20日上午8:00这个时间段内的历史业务调用数据集合。
在本实施例中,可以基于该数据库中存储的各个历史业务调用数据集合的数据修改时刻,以及预设的第一时间跨度,再将这些历史业务调用数据集合划分为若干数据集合,即划分后的各个数据集合中都包含至少一个历史业务调用数据集合。其中,第一时间跨度可以由用户预先设置;该数据库中存储的历史业务调用数据集合的数据修改时刻可以是将该历史业务调用数据集合修改该数据库的时刻,也可以是写入后对该历史业务调用数据集合重新进行修改的时刻。具体地,如果在将该历史业务调用数据集合写入该数据库后,未对该历史业务调用数据集合进行修改,则该历史业务调用数据集合的数据修改时刻即为将历史业务调用数据集合写入该数据库的时刻;如果在将该历史业务调用数据集合写入该数据库后,对该历史业务调用数据集合重新进行修改,则该历史业务调用数据集合的数据修改时刻即为对该历史业务调用数据集合重新进行修改的时刻。
继续以上述举例为例,假设用户设置的第一时间跨度为1小时,则针对上述数据库,可以将数据修改时刻在8月13日上午8:00至8月13日上午9:00这1小时内的历史业务调用数据集合划分至数据集合1,将数据修改时刻在8月13日上午9:00至8月13日上午10:00这1小时内的历史业务调用数据集合划分至数据集合2,将数据修改时刻在8月13日上午10:00至8月13日上午11:00这1小时内的历史业务调用数据集合划分至数据集合3,以此类推,如下表1所示:
表1
在实际应用中,用户还可以设置一个起始时间。在这种情况下,可以从该起始时间开始,基于上述第一时间跨度,再将数据修改时间晚于该起始时间的历史业务调用数据集合划分为若干数据集合。
步骤104,基于各个数据集合中的历史数据分别构造布隆过滤器,并基于构造的布隆过滤器生成布隆过滤器列表。
在前述步骤102中将上述数据库中存储的历史数据划分为若干数据集合后,可以基于各个数据集合中的历史数据分别构造布隆过滤器。
在示出的一种实施方式中,为了保证构造的各个布隆过滤器具有相同的误判率,可以由用户预先设置一个误判率。后续可以基于各个数据集合中的历史数据,以及该误判率,分别构造布隆过滤器。
另一方面,可以基于构造的这些布隆过滤器生成布隆过滤器列表。需要说明的是,构造的各个布隆过滤器的起始时刻和结束时刻与构造该布隆过滤器时采用的数据集合的起始时刻和结束时刻一致。
继续以上述举例为例,生成的布隆过滤器列表可以如下表2所示:
布隆过滤器 |
起始时刻 |
结束时刻 |
布隆过滤器1 |
8月13日上午8:00 |
8月13日上午9:00 |
布隆过滤器2 |
8月13日上午9:00 |
8月13日上午10:00 |
布隆过滤器3 |
8月13日上午10:00 |
8月13日上午11:00 |
…… |
…… |
…… |
布隆过滤器N |
8月20日上午7:00 |
8月20日上午8:00 |
表2
步骤106,确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度;其中,所述目标布隆过滤器为所述布隆过滤器列表中起始时刻最晚的布隆过滤器。如果是,则执行步骤108;否则,执行步骤110。
步骤108,基于目标数据集合构造布隆过滤器,并将构造的布隆过滤器添加至所述布隆过滤器列表;其中,所述目标数据集合包括所述数据库中存储的数据修改时刻在从所述目标布隆过滤器的结束时刻至当前时刻的时间段内的历史数据。
步骤110,将所述目标数据集合添加至所述目标布隆过滤器。
在前述步骤104中生成了上述布隆过滤器列表后,首先,可以将该布隆过滤器列表中起始时刻最晚的布隆过滤器确定为目标布隆过滤器。
后续,可以确定当前时刻与该目标布隆过滤器的起始时刻之间的时间跨度是否达到上述第一时间跨度。
在示出的一种实施方式中,可以从完成生成上述布隆过滤器列表的时刻开始,每隔预设的第三时间跨度,确定当前时刻与上述目标布隆过滤器的起始时刻之间的时间跨度是否达到上述第一时间跨度。其中,第三时间跨度可以由用户预先设置。为了便于处理,用户设置的上述第一时间跨度可以是该第三时间跨度的整数倍,例如:该第一时间跨度可以是1小时,该第三时间跨度可以是1分钟、2分钟或5分钟。
如果确定当前时刻与该目标布隆过滤器的起始时刻之间的时间跨度达到上述第一时间跨度,则可以将上述数据库中存储的数据修改时刻在从该目标布隆过滤器的结束时刻至当前时刻的时间段内的历史业务调用数据集合添加至目标数据集合。后续,可以基于该目标数据集合构造新的布隆过滤器,并将构造的新的布隆过滤器添加至上述布隆过滤器列表。
如果确定当前时刻与该目标布隆过滤器的起始时刻之间的时间跨度未达到上述第一时间跨度,则可以不构造新的布隆过滤器,而可以将该目标数据集合添加至该目标布隆过滤器。
继续以上述举例为例,假设用户设置的第三时间跨度为1分钟,进一步假设完成生成上述布隆过滤器列表的时刻为8月20日上午8:00。由于该布隆过滤器列表中起始时刻最晚的布隆过滤器为布隆过滤器N,因此可以将布隆过滤器N确定为目标布隆过滤器。
后续,可以在8月20日上午8:01,确定当前时刻与该目标布隆过滤器的起始时刻(8月20日上午7:00)之间的时间跨度是否达到上述第一时间跨度。
由于从8月20日上午7:00至8月20日上午8:01这个时间段的时间跨度大于1小时,因此可以将上述数据库中存储的数据修改时刻在从8月20日上午8:00至8月20日上午8:01这1分钟内的历史业务调用数据集合添加至目标数据集合。后续,可以基于该目标数据集合构造新的布隆过滤器,并将构造的新的布隆过滤器添加至上述布隆过滤器列表,如下表3所示:
布隆过滤器 |
起始时刻 |
结束时刻 |
布隆过滤器1 |
8月13日上午8:00 |
8月13日上午9:00 |
布隆过滤器2 |
8月13日上午9:00 |
8月13日上午10:00 |
布隆过滤器3 |
8月13日上午10:00 |
8月13日上午11:00 |
…… |
…… |
…… |
布隆过滤器N |
8月20日上午7:00 |
8月20日上午8:00 |
布隆过滤器N+1 |
8月20日上午8:00 |
8月20日上午9:00 |
表3
需要说明的是,如上表3所示,布隆过滤器N+1(即构造的新的布隆过滤器)的起始时刻为8月20日上午8:00,结束时刻为8月20日上午9:00,即布隆过滤器N+1的时间跨度保持为1小时(即上述第一时间跨度)。
由于该布隆过滤器列表中起始时刻最晚的布隆过滤器由布隆过滤器N变为布隆过滤器N+1,因此可以将布隆过滤器N+1确定为目标布隆过滤器。
后续,可以在8月20日上午8:02,确定当前时刻与该目标布隆过滤器的起始时刻(8月20日上午8:00)之间的时间跨度是否达到上述第一时间跨度。
由于从8月20日上午8:00至8月20日上午8:02这个时间段的时间跨度小于1小时,因此可以将上述数据库中存储的数据修改时刻在从8月20日上午8:00至8月20日上午8:02这2分钟内的历史业务调用数据集合添加至目标数据集合。后续,可以将该目标数据集合添加至布隆过滤器N+1。
在实际应用中,为了避免数据重复,可以将上述数据库中存储的数据修改时刻在从8月20日上午8:01至8月20日上午8:02这1分钟内的历史业务调用数据集合添加至目标数据集合。后续,可以将该目标数据集合添加至布隆过滤器N+1。
步骤112,基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理。
在前述步骤104中生成了上述布隆过滤器列表后,可以基于该布隆过滤器列表中的所有布隆过滤器进行数据处理。
在示出的一种实施方式中,如图2所示,可以采用如下步骤完成基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理:
步骤202,将在业务执行过程中生成的待检测数据与所述布隆过滤器列表中的所有布隆过滤器分别进行匹配。
步骤204,如果所述待检测数据与所述布隆过滤器列表中的任意一个布隆过滤器匹配成功,则确定所述待检测数据包含在所述数据库存储的历史数据中。
步骤206,如果所述待检测数据与所述布隆过滤器列表中的所有布隆过滤器均匹配失败,则确定所述待检测数据不包含在所述数据库存储的历史数据中。
在本实施例中,可以将业务执行过程中生成的业务调用数据集合确定为待检测数据,并将该待检测数据与上述布隆过滤器列表中的所有布隆过滤器分别进行匹配。
如果该待检测数据与该布隆过滤器列表中的任意一个布隆过滤器匹配成功,即该待检测数据包含在该布隆过滤器的数据集合中,则可以确定该待检测数据包含在上述数据库存储的历史数据中。在实际应用中,假设该数据库中存储的是正常的历史数据,则可以确定该待检测数据正常。
如果该待检测数据与该布隆过滤器列表中的所有布隆过滤器均匹配失败,即该待检测数据不包含在任意一个布隆过滤器的数据集合中,则可以确定该待检测数据不包含在该数据库存储的历史数据中。在实际应用中,假设该数据库中存储的是正常的历史数据,则可以确定该待检测数据异常,从而可以确定业务执行过程中发生异常。
继续以上述举例为例,在生成了如表2所示的布隆过滤器列表后,假设确定的某个待检测数据与该布隆过滤器列表中的布隆过滤器N匹配成功,则可以确定该待检测数据包含在上述数据库存储的历史数据中。
假设确定的某个待检测数据与该布隆过滤器列表中的布隆过滤器1至布隆过滤器N这N个布隆过滤器均匹配失败,则可以确定该待检测数据不包含在该数据库存储的历史数据中。
需要说明的是,在该布隆过滤器列表更新为如表3所示的布隆过滤器列表后,则可以将确定的待检测数据与该布隆过滤器列表中的布隆过滤器1至布隆过滤器N+1这N+1个布隆过滤器分别进行匹配。
在示出的一种实施方式中,由于布隆过滤器本身特性的限制,导致无法从布隆过滤器的数据集合中删除过期数据,因此为了解决该问题,可以由用户设置用于检测布隆过滤器是否过期的第二时间跨度。
在前述步骤104中生成了上述布隆过滤器列表后,可以分别检测当前时刻与该布隆过滤器列表中的各个布隆过滤器的起始时刻之间的时间跨度是否达到该第二时间跨度。如果是,则可以将该布隆过滤器从该布隆过滤器列表中删除。
继续以上述举例为例,假设用户设置的第二时间跨度为7天,则在更新为如表3所示的布隆过滤器列表后,由于当前时刻(8月20日上午8:01)与布隆过滤器1的起始时刻(8月13日上午8:00)之间的时间跨度大于7天,因此可以从该布隆过滤器列表中删除布隆过滤器1,如下表4所示:
布隆过滤器 |
起始时刻 |
结束时刻 |
布隆过滤器2 |
8月13日上午9:00 |
8月13日上午10:00 |
布隆过滤器3 |
8月13日上午10:00 |
8月13日上午11:00 |
…… |
…… |
…… |
布隆过滤器N |
8月20日上午7:00 |
8月20日上午8:00 |
布隆过滤器N+1 |
8月20日上午8:00 |
8月20日上午9:00 |
表4
需要说明的是,后续可以基于该布隆过滤器列表中的布隆过滤器2至布隆过滤器N+1这N个布隆过滤器进行数据处理。
在上述技术方案中,由于可以将已经存储在数据库中的历史数据按照数据修改时刻和预设的时间跨度划分为若干数据集合,并基于各个数据集合中的历史数据分别构造布隆过滤器,以及可以基于重新写入或修改的历史数据构造新的布隆过滤器,或者将该历史数据添加至对应的布隆过滤器,因此可以保证构造的各个布隆过滤器的容量与该布隆过滤器对应的时间段内的历史数据量相匹配,从而可以提高内存利用率。
与前述数据处理方法的实施例相对应,本说明书还提供了数据处理装置的实施例。
本说明书数据处理装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书数据处理装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该数据处理的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图4,图4是本说明书一示例性实施例示出的一种数据处理装置的框图。该装置400可以应用于图3所示的电子设备,包括:
划分模块401,用于基于数据库中存储的历史数据的数据修改时刻,以及预设的第一时间跨度,将所述历史数据划分为若干数据集合;
第一构造模块402,用于基于各个数据集合中的历史数据分别构造布隆过滤器,并基于构造的布隆过滤器生成布隆过滤器列表;
确定模块403,用于确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度;其中,所述目标布隆过滤器为所述布隆过滤器列表中起始时刻最晚的布隆过滤器;
第二构造模块404,用于如果是,则基于目标数据集合构造布隆过滤器,并将构造的布隆过滤器添加至所述布隆过滤器列表;其中,所述目标数据集合包括所述数据库中存储的数据修改时刻在从所述目标布隆过滤器的结束时刻至当前时刻的时间段内的历史数据;
添加模块405,用于如果否,则将所述目标数据集合添加至所述目标布隆过滤器;
处理模块406,用于基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理。
在本实施例中,所述装置400还可以包括:
检测模块407,用于分别检测当前时刻与所述布隆过滤器列表中的各个布隆过滤器的起始时刻之间的时间跨度是否达到预设的第二时间跨度;
删除模块408,用于如果是,则从所述布隆过滤器列表中删除所述布隆过滤器。
在本实施例中,所述第一构造模块402具体可以用于:
基于各个数据集合中的历史数据,以及预设的误判率,分别构造布隆过滤器。
在本实施例中,所述确定模块403具体可以用于:
从完成生成所述布隆过滤器列表的时刻开始,每隔预设的第三时间跨度,确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度。
在本实施例中,所述处理模块406具体可以用于:
将在业务执行过程中生成的待检测数据与所述布隆过滤器列表中的所有布隆过滤器分别进行匹配;
如果所述待检测数据与所述布隆过滤器列表中的任意一个布隆过滤器匹配成功,则确定所述待检测数据包含在所述数据库存储的历史数据中;
如果所述待检测数据与所述布隆过滤器列表中的所有布隆过滤器均匹配失败,则确定所述待检测数据不包含在所述数据库存储的历史数据中。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述数据处理方法的实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于数据库中存储的历史数据的数据修改时刻,以及预设的第一时间跨度,将所述历史数据划分为若干数据集合;
基于各个数据集合中的历史数据分别构造布隆过滤器,并基于构造的布隆过滤器生成布隆过滤器列表;
确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度;其中,所述目标布隆过滤器为所述布隆过滤器列表中起始时刻最晚的布隆过滤器;
如果是,则基于目标数据集合构造布隆过滤器,并将构造的布隆过滤器添加至所述布隆过滤器列表;其中,所述目标数据集合包括所述数据库中存储的数据修改时刻在从所述目标布隆过滤器的结束时刻至当前时刻的时间段内的历史数据;
如果否,则将所述目标数据集合添加至所述目标布隆过滤器;
基于所述布隆过滤器列表中的所有布隆过滤器进行数据处理。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器还被促使:
分别检测当前时刻与所述布隆过滤器列表中的各个布隆过滤器的起始时刻之间的时间跨度是否达到预设的第二时间跨度;
如果是,则从所述布隆过滤器列表中删除所述布隆过滤器。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于各个数据集合中的历史数据,以及预设的误判率,分别构造布隆过滤器。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
从完成生成所述布隆过滤器列表的时刻开始,每隔预设的第三时间跨度,确定当前时刻与目标布隆过滤器的起始时刻之间的时间跨度是否达到所述第一时间跨度。
在本实施例中,通过读取并执行所述存储器存储的与用户注册的控制逻辑对应的机器可执行指令,所述处理器被促使:
将在业务执行过程中生成的待检测数据与所述布隆过滤器列表中的所有布隆过滤器分别进行匹配;
如果所述待检测数据与所述布隆过滤器列表中的任意一个布隆过滤器匹配成功,则确定所述待检测数据包含在所述数据库存储的历史数据中;
如果所述待检测数据与所述布隆过滤器列表中的所有布隆过滤器均匹配失败,则确定所述待检测数据不包含在所述数据库存储的历史数据中。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。