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

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

文献发布时间:2023-06-19 10:48:02


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

技术领域

本申请实施例涉及数据处理领域,尤其是一种数据处理方法、装置、计算机设备及存储介质。

背景技术

“大数据”通常指的是那些数量巨大、难于收集、处理、分析的数据集,亦指那些在传统基础设施中长期保存的数据。随着大数据应用的爆发性增长,它已经衍生出了自己独特的架构,而且也直接推动了存储、网络以及计算技术的发展。毕竟处理大数据这种特殊的需求是一个新的挑战。

名单数据作为“大数据”中的一员,由于使用场景比较普遍,在用户登录,权限管理和黑名单等领域被广泛应用。但是,本申请创造的发明人在研究中发现,现有技术中,名单数据存储方式存在占用存储空间大的问题。

发明内容

本申请实施例提供一种能够大幅降低名单数据存储空间且方便调用的一种数据处理方法、装置、计算机设备及存储介质。

为解决上述技术问题,本申请创造的实施例采用的一个技术方案是:提供一种数据处理方法,包括:

获取待存储的名单数据,其中,所述名单数据中包括多条名单信息;

基于所述名单数据,生成与所述名单数据对应的布隆过滤器的第一参数因子,其中,所述第一参数因子包括:布隆过滤器的大小以及参与存储运算的多个哈希函数;

将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个偏移数字;

将所述偏移数字映射至预设的存储位图的位图点阵中,并将所述偏移数字对应的存储栅格标记为存储状态,其中,所述存储位图的大小与所述布隆过滤器的大小成正相关。

可选地,所述基于所述名单数据,生成与所述名单数据对应的布隆过滤器的第一参数因子包括:

获取所述名单数据中表征所述名单信息条数的数据参数;

将所述数据参数表征的数值与预设的参考阈值进行比对;

当所述数据参数表征的数值大于或者等于所述参考阈值,确定生成与所述名单数据对应的布隆过滤器的第一参数因子。

可选地,所述基于所述名单数据,生成与所述名单数据对应的布隆过滤器的第一参数因子之后,包括:

获取互联节点的节点通信列表;

基于所述通信列表,将所述第一参数因子扩散至分布式网络中,以使所述分布式网络中其余节点根据扩散信息更新各自布隆过滤器的参数值。

可选地,所述将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个偏移数字包括:

将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个哈希值;

对所述多个哈希值分别进行取余运算,生成所述多个偏移数字。

可选地,所述将所述偏移数字映射至预设的存储位图的位图点阵中,并将所述偏移数字对应的存储栅格标记为存储状态之后,包括:

获取所述名单数据的业务标识;

基于预设的数据存储格式,将所述名单数据存储至与所述业务标识对应的数据集合中;

更新所述数据集合所在数据库中的键值,并更新所述名单数据同步完成的同步完成标识。

可选地,所述将所述偏移数字映射至预设的存储位图的位图点阵中,并将所述偏移数字对应的存储栅格标记为存储状态之后,包括:

获取待处理的用户请求,其中,所述用户请求中包括目标名单信息,以及所述目标名单信息的目标业务标识;

基于所述目标业务标识,读取与所述目标业务标识对应的目标布隆过滤器的第二参数因子,其中,所述第二参数因子包括:所述目标布隆过滤器的多个目标哈希函数;

将所述目标名单信息分别输入至所述多个目标哈希函数中,并对哈希运算结果进行取余运算,生成与所述目标名单信息对应的多个目标偏移数字;

在所述存储位图中查找所述多个目标偏移数字的存储状态;

当且仅当所述多个目标偏移数字均为存储状态,确认所述目标名单信息记录在所述名单数据中。

可选地,所述确认所述目标名单信息记录在所述名单数据中之后,包括:

根据所述确认结果生成返回标志;

将所述返回标志返回至发送所述用户请求的用户终端,并将所述确认结果进行本地存储。

为解决上述技术问题,本申请实施例还提供一种数据处理装置,包括:

获取模块,用于获取待存储的名单数据,其中,所述名单数据中包括多条名单信息;

处理模块,用于基于所述名单数据,生成与所述名单数据对应的布隆过滤器的第一参数因子,其中,所述第一参数因子包括:布隆过滤器的大小以及参与存储运算的多个哈希函数;

输入模块,用于将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个偏移数字;

执行模块,用于将所述偏移数字映射至预设的存储位图的位图点阵中,并将所述偏移数字对应的存储栅格标记为存储状态,其中,所述存储位图的大小与所述布隆过滤器的大小成正相关。

可选地,所述数据处理装置还包括:

第一获取子模块,用于获取所述名单数据中表征所述名单信息条数的数据参数;

第一比对子模块,用于将所述数据参数表征的数值与预设的参考阈值进行比对;

第一执行子模块,用于当所述数据参数表征的数值大于或者等于所述参考阈值,确定生成与所述名单数据对应的布隆过滤器的第一参数因子。

可选地,所述数据处理装置还包括:

第二获取子模块,用于获取互联节点的节点通信列表;

第一处理子模块,用于基于所述通信列表,将所述第一参数因子扩散至分布式网络中,以使所述分布式网络中其余节点根据扩散信息更新各自布隆过滤器的参数值。

可选地,所述数据处理装置还包括:

第一输入子模块,用于将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个哈希值;

第一运算子模块,用于对所述多个哈希值分别进行取余运算,生成所述多个偏移数字。

可选地,所述数据处理装置还包括:

第三获取子模块,用于获取所述名单数据的业务标识;

第二处理子模块,用于基于预设的数据存储格式,将所述名单数据存储至与所述业务标识对应的数据集合中;

第二执行子模块,用于更新所述数据集合所在数据库中的键值,并更新所述名单数据同步完成的同步完成标识。

可选地,所述数据处理装置还包括:

第四获取子模块,用于获取待处理的用户请求,其中,所述用户请求中包括目标名单信息,以及所述目标名单信息的目标业务标识;

第三处理子模块,用于基于所述目标业务标识,读取与所述目标业务标识对应的目标布隆过滤器的第二参数因子,其中,所述第二参数因子包括:所述目标布隆过滤器的多个目标哈希函数;

第二输入子模块,用于将所述目标名单信息分别输入至所述多个目标哈希函数中,并对哈希运算结果进行取余运算,生成与所述目标名单信息对应的多个目标偏移数字;

第一查询子模块,用于在所述存储位图中查找所述多个目标偏移数字的存储状态;

第三执行子模块,用于当且仅当所述多个目标偏移数字均为存储状态,确认所述目标名单信息记录在所述名单数据中。

可选地,所述数据处理装置还包括:

第四处理子模块,用于根据所述确认结果生成返回标志;

第四执行子模块,用于将所述返回标志返回至发送所述用户请求的用户终端,并将所述确认结果进行本地存储。

为解决上述技术问题本申请实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述数据处理方法的步骤。

为解决上述技术问题本申请实施例还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述数据处理方法的步骤。

本申请实施例的有益效果是:在进行名单数据存储时,根据名单数据生成与名单数据对应的布隆过滤器的第一参数因子,确定出与布隆过滤器相关存储空间大小,以及参与布隆过滤器存储的哈希函数,将名单数据中的名单信息分别输入至多个哈希函数中,生成多个哈希值,对哈希值进行取余运算后得到多个偏移数字,并将多个偏移数字映射至由布隆过滤器的大小确定的存储位图中,将偏移数字对应的存储栅格标记为存储状态。通过上述映射存储名单数据在数据库中的存储状态,能够将冗长的名单信息映射成一组简短的数组,并且通过位图存储的方式进行记录,能够大大降低名单数据入库存储的存储空间。

附图说明

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

图1为本申请一个具体实施例的数据处理方法基本流程示意图;

图2为本申请一个具体实施例的比对名单数据是否达标的流程示意图;

图3为本申请一具体实施例的分布式网络中扩散第一参数因子的流程示意图;

图4为本申请一个具体实施例的生成偏移参数的一种流程示意图;

图5为本申请一个具体实施例的名单数据入库的流程示意图;

图6为本申请一个具体实施例的查询名单数据的流程示意图;

图7为本申请一个具体实施例的存储确认结果的流程示意图;

图8为本申请一个实施例的数据处理装置基本结构示意图;

图9为本申请一个实施例的计算机设备的基本结构框图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,这里所使用的“终端”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

请参阅图1,图1为本实施例数据处理方法的基本流程示意图。

如图1所示,一种数据处理方法,包括:

S1100、获取待存储的名单数据,其中,所述名单数据中包括多条名单信息;

本实施方式中的名单数据是指,由多条名单信息组成的名单合集。而名单信息是指记载用户身份及账号信息的信息条目,例如,用于信息推送的用户表单,就属于名单数据,而其中记载的单条用户信息就是名单信息。但是,名单数据的范围不局限于此,根据具体应用场景的不同,名单数据记载的内容有所不同,因此,将名单数据的含义定义为:通过选定的数据类型进行分条统计形成的数据集合。名单数据能够包括(不限于):用户的身份信息、账户信息、物品的编号、物品参数或者设备编号及参数信息等。

本实施方式中的名单数据应用场景能够是用户白名单或者用户黑名单。

S1200、基于所述名单数据,生成与所述名单数据对应的布隆过滤器的第一参数因子,其中,所述第一参数因子包括:布隆过滤器的大小以及参与存储运算的多个哈希函数;

基于名单数据确定名单数据对应的布隆过滤器的第一参数因子,第一参数因子中包括:布隆过滤器的大小以及参与存储运算的哈希函数和哈希函数的数量。

布隆过滤器是由一个很长的二进制矢量和一系列哈希函数组成的。布隆过滤器还拥有k个哈希函数,当一个元素加入布隆过滤器中的时候,会使用k个哈希函数对其进行k次计算,得到k个哈希值,并且根据得到的哈希值,在维数组中把对应下标的值置位1。若要判断这个数是否在布隆过滤器中,就对该元素进行k次哈希计算,得到的值在位数组中判断每个元素是否都为1,如果每个元素都为1,就说明这个值在布隆过滤器中。

布隆过滤器的核心参数布隆过滤器的大小以及参与存储运算的多个哈希函数的设定,都与名单数据中名单信息的条数,以及对布隆过滤器失误率相关,当将布隆过滤器的失误率确定为一个固定的参数值时,则上述两个参数值的取值则仅仅与名单数据中名单信息的条数相关,且名单数据中名单信息的条数与布隆过滤器的大小以及参与存储运算的多个哈希函数均成正相关,即名单数据中的名单信息越多,对应的布隆过滤器的大小越大,参与运算的哈希函数的数量越多。

通过名单数据中的名单信息条数确定了布隆过滤器的大小和参与运算的哈希函数的数量后,就能够通过布隆过滤器对各名单信息进行映射处理。

需要指出的是,本实施方式中,哈希函数的运算方式能够相同或者不同。具体地,布隆过滤器中的哈希函数能够完全不同,也能够部分相同,也能够全部相同。只是当布隆过滤器的哈希函数全部相同时,会提高布隆过滤器的失误率,如果使用场景的容错率较高的情况下,就能够使用完全相同的哈希函数组成的布隆过滤器。

S1300、将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个偏移数字;

在进行运行处理后,将名单数据中的名单信息逐条输入至布隆过滤器的多个哈希函数中,通过多个哈希函数对名单信息进行哈希运算后,得到多个对应的哈希值,将该哈希值定义为偏移数字。

例如,假设布隆过滤器包括三个不同运算方式的哈希函数,将一条名单信息输入至三个不同的哈希函数中后,分别得到1,4,7三个不同的哈希值,则该哈希值就是该名单信息对应的偏移数字。

但是,偏移数字的定义不局限于哈希值,根据具体应用场景的不同,在一些实施方式中,偏移数字是指各哈希函数运算得出哈希值后,对各哈希值进行取余运算的结果,取余运算后偏移数字的取值范围被限定在0到(n-1)之间,其中,n为取余运算中被选定的被除数。取余运算能够使偏移数字的结果被约束在设定的范围内,更加方便进行后期数据存储和查询。

S1400、将所述偏移数字映射至预设的存储位图的位图点阵中,并将所述偏移数字对应的存储栅格标记为存储状态,其中,所述存储位图的大小与所述布隆过滤器的大小成正相关。

将计算得到的偏移数字映射至预设的存储位图,存储位图又叫做Bitmap是使用像素阵列来进行数据存储的算法。将存储位图中的每一行或者名一列作为存储一条名单信息的位图点阵,在每一行的位图点阵都有0到(n-1)之间的数字组成,n为取余运算中被选定的被除数。初始状态下1到(n-1)之间的存储栅格均为0,将偏移数字映射至位图点阵中时,将各偏移数字映射的存储栅格存储状态调整为1,1就表示该对应存储栅格为存储状态。

举例说明,设定存储位图中每一行的位图点阵有10个存储栅格,从左到右依次表示9,8,7,6,5,4,3,2,1,0,初始状态下,每一个存储栅格均记为0,表示未存储状态。当一条名单信息经过哈希运算得到一组3个偏移数字组成的数组为4,1,7,将表示4,1,7,对应的存储栅格由0标记为1,其余存储栅格继续标记为0,则完成了对该名单信息的位图存储。

需要指出的是组成位图点阵的存储栅格数量不局列举方案,根据具体应用场景的不同,在一些实施方式中,根据存储使用的进制不同,存储栅格数量的数量能够是4位,8位和16位等,具体来讲,使用的进制为几位,则对应的存储栅格数量就有几个。

上述事实方式在进行名单数据存储时,根据名单数据生成与名单数据对应的布隆过滤器的第一参数因子,确定出与布隆过滤器相关存储空间大小,以及参与布隆过滤器存储的哈希函数,将名单数据中的名单信息分别输入至多个哈希函数中,生成多个哈希值,对哈希值进行取余运算后得到多个偏移数字,并将多个偏移数字映射至由布隆过滤器的大小确定的存储位图中,将偏移数字对应的存储栅格标记为存储状态。通过上述映射存储名单数据在数据库中的存储状态,能够将冗长的名单信息映射成一组简短的数组,并且通过位图存储的方式进行记录,能够大大降低名单数据入库存储的存储空间。

在一些实施方式中,确定计算第一参数因子时,需要确定名单数据中的数据参数是否达标。请参阅图2,图2为本实施例比对名单数据是否达标的流程示意图。

如图2所示,S1200包括:

S1211、获取所述名单数据中表征所述名单信息条数的数据参数;

本实施方式中,在读取名单数据后,读取名单数据的参数信息,并提取其中用于表征名单信息条数的数据参数。由于哈希运算无论输入内容有多少,但是都保持统一输出长度的特征,因此,对于单条名单信息的数据量信息的参数统计是没有意义的,所以数据参数中只记载名单数据中的条数,不记载具体名单信息得差异信息。

S1212、将所述数据参数表征的数值与预设的参考阈值进行比对;

将数据参数表征的数值与预设的参考阈值进行比对,其中,参考阈值为衡量名单数据是否达到需要进行布隆过滤器处理存储标准的阈值,参考阈值能够根据应用环境需求进行设定,也能够根据系统运行速率或者查询速率自定义设定,系统运行速率或者查询速率越小,参考阈值设置也越小,反之则越大。

S1213、当所述数据参数表征的数值大于或者等于所述参考阈值,确定生成与所述名单数据对应的布隆过滤器的第一参数因子。

当确定数据参数表征的数值大于或者等于参考阈值时,确定生成与所述名单数据对应的布隆过滤器的第一参数因子,否则,则将名单数据进行常规存储。

在一些实施方式中,当获取到名单数据后,首先,确定名单数据是否已经关联了布隆过滤器的存储参数,如果确定,则直接对名单数据进行布隆过滤器存储,如果不确定则执行S1211-S1213的流程。

在一些实施方式中,当本实施例中的数据处理方法被应用到区块链网络或者分布式网络中时,当第一个执行该方法的节点计算出第一参数因子后,需要将第一参数因子共享至其他互联节点中,通过广播扩散的方式将第一参数因子共享至全网络,以免去其他互联节点计算第一参数因子的过程,提高整个网络数据更新的效率。具体请参阅图3,图3为本实施例在分布式网络中扩散第一参数因子的流程示意图。

如图3所示,S1200之后,包括:

S1221、获取互联节点的节点通信列表;

当区块链网络中或者分布式网络中的某个节点,接收到名单数据后,根据名单数据更新了所在节点布隆过滤器的第一参数信息后,需要将第一参数信息进行广播扩散。

广播扩散时,需要读取与当前节点连接的其他节点的通信信息,在区块链网络中或者分布式网络中的节点,均存储有与之连接的其他互联节点的通信地址,并将上述通信地址存储在通信列表中。

读取存储在节点本地的通信列表,根据通信列表中的通信地址,依次将第一参数信息发送至对应的互联节点中。

S1222、基于所述通信列表,将所述第一参数因子扩散至分布式网络中,以使所述分布式网络中其余节点根据扩散信息更新各自布隆过滤器的参数值。

当前节点通过本地的通信列表,将第一参数信息发送至对应的互联节点中,然后,通过区块链网络中的扩散机制,将第一参数信息扩散至全网络中,或者,通过分布式网络的数据同步机制,将第一参数信息扩散至全网络中。

区块链网络或者分布式网络的各个互联节点接收到其他节点发送的第一参数信息后,根据第一参数信息记载的参数,调整各自节点布隆过滤器的参数值,同时,将该第一参数信息发送至与其连接的其他互联节点中,直至整个网络中的所有节点都完成参数更新后为止。

在一些实施方式中,偏移数字不是指哈希值,而是对哈希值进行取余运算生成的数值。具体请参阅图4,图4为本实施例生成偏移参数的一种流程示意图。

如图4所示,S1300包括:

S1311、将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个哈希值;

在进行运行处理后,将名单数据中的名单信息逐条输入至布隆过滤器的多个哈希函数中,通过多个哈希函数对名单信息进行哈希运算后,得到多个对应的哈希值。

S1312、对所述多个哈希值分别进行取余运算,生成所述多个偏移数字。

偏移数字是指各哈希函数运算得出哈希值后,对各哈希值进行取余运算的结果,取余运算后偏移数字的取值范围被限定在0到(n-1)之间,其中,n为取余运算中被选定的被除数。取余运算能够使偏移数字的结果被约束在设定的范围内,更加方便进行后期数据存储和查询。

在一些实施方式中,当偏移数字映射到存储位图中后,需要将名单数据存储到数据库中。请参阅图5,图5为本实施例名单数据入库的流程示意图。

如图5所示,S1400之后包括:

S1411、获取所述名单数据的业务标识;

当确定将偏移数字映射至存储位图中后,需要将名单数据与业务标识进行关联,其中,业务标识为名单数据的具体应用业务,例如,当名单数据被用于登录黑名单时,将名单数据与登录黑名单的业务标识进行关联,当名单数据用于网站过滤时,则将其与网站过滤标识进行关联。但是,业务标识的种类不局限于此,根据具体应用场景的不同,业务标识能够是用于标识名单数据使用环境的任意标签。

S1412、基于预设的数据存储格式,将所述名单数据存储至与所述业务标识对应的数据集合中;

本实施方式中,名单数据存储在Redis数据库中,Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色。

名单数据存储的数据格式为Redis数据库中的SET结构,将名单数据存至Redis数据库时,将名单数据转化为SET结构进行存储。但是名单数据入库时的数据结构不局限于此,根据具体应用场景的不同,在一些实施方式中,名单数据的数据格式能够为:String字符串类型、哈希结构、链表结构和zset有序集合。

S1413、更新所述数据集合所在数据库中的键值,并更新所述名单数据同步完成的同步完成标识。

当将名单数据按照SET结构存储在Redis数据库中后,对Redis数据库中的键值进行更新,同时,在名单数据的同步位,写入同步完成的标识,以便于在此之后,再接收到相同的名单数据后,通过同步位的同步完成标识判断名单数据是否以及被收录在数据库中。

在一些实施方式中,当接收到名单数据后,需要先读取名单数据参数中的同步位,调用该同步位是否存在同步完成标识,如果存在同步完成标识,则无需对名单数据进行重复存储,进而也无需对名单数据执行本实施例数据处理方法的所有流程,如果确定不存在同步完成标识,则需要执行本实施例数据处理方法的流程。

在一些实施方式中,当名单数据被存储后,需要通过快速查询的方式确定用户请求是否在已经存储的名单数据中。请参阅图6,图6为本实施例查询名单数据的流程示意图。

如图6所示,S1400之后包括:

S1421、获取待处理的用户请求,其中,所述用户请求中包括目标名单信息,以及所述目标名单信息的目标业务标识;

当名单数据存储在数据库中后,根据名单数据的业务标识,对名单数据进行对应业务的处理。

获取用户的请求,用户请求中包括具体的目标名单信息,以及该目标名单信息对应的目标业务标识。

其中,目标名单信息用于查询,该目标名单信息是否被存储在数据库中。

例如,该用户请求为网站登录请求,目标名单信息则为该登录网站的网址。但是,目标名单信息的内容,不局限于此,根据具体应用场景的不同,目标名单信息记载的数据不同,与用户请求请求的业务类型相关连。

S1422、基于所述目标业务标识,读取与所述目标业务标识对应的目标布隆过滤器的第二参数因子,其中,所述第二参数因子包括:所述目标布隆过滤器的多个目标哈希函数;

根据目标业务标识,在数据库中查找与该业务标识对应的目标布隆过滤器的第二参数因子。由于在进行数据存储时,将存储位图、布隆过滤器、名单数据和业务标识都进行关联存储,因此,当得到目标业务标识后,就能够通过数据库的检索引擎查找到与目标业务标识对应的目标布隆过滤器,进而读取目标布隆过滤器的第二参数因子。

由于在查找的过程中,存储位图已经被保存或者固化,因此,无需得到其对应的布隆过滤器的大小参数,因此,第二参数因子仅包括目标布隆过滤器的多个目标哈希函数。

S1423、将所述目标名单信息分别输入至所述多个目标哈希函数中,并对哈希运算结果进行取余运算,生成与所述目标名单信息对应的多个目标偏移数字;

将目标名单信息分别输入至所述多个目标哈希函数中,每个目标哈希函数都会对目标名单信息进行哈希运算,生成对应的多个哈希值,然后,对哈希值进行与上述流程相同的取余运算,此处,取余运算的被除数要与进行名单数据存储的被除数相同。经过取余运算后生成多个目标偏移数字。

S1424、在所述存储位图中查找所述多个目标偏移数字的存储状态;

在存储位图中查找与多个目标偏移数字组成的数组相同的位图点阵,具体地,首先,通过一个目标偏移数字查找具有该数字的位图点阵,然后,在第一个目标偏移数字筛选出的基础中,用第二各目标偏移数字进行继续筛选,如此,进行层层筛选后,当目标偏移数字均出现在一组位图点阵中时,确定目标名单信息记录在所述名单数据中,否则,则确定目标名单信息未记录在名单数据中。

S1425、当且仅当所述多个目标偏移数字均为存储状态,确认所述目标名单信息记录在所述名单数据中。

进行检索时,当位图点阵中存在目标偏移数字时,回复对应的存储状态1,如果不存在则不进行回复。当且仅当多个目标偏移数字均为存储状态,确认目标名单信息记录在名单数据中。

在一些实施方式中,当确认目标名单信息存储在名单数据中后,需要对该确认结果进行本地存储,以便于后续更加快速的回复相同目标名单信息的查询请求。请参阅图7,图7为本实施例存储确认结果的流程示意图。

如图7所示,S1400之后包括:

S1431、根据所述确认结果生成返回标志;

当确认目标名单信息存储在名单数据中后,服务器端需要向用户终端或者具体的业务服务器端发送确认结果,发送时将确认结果生成返回标志,由服务器端发送至用户终端或者具体的业务服务器端。

S1432、将所述返回标志返回至发送所述用户请求的用户终端,并将所述确认结果进行本地存储。

将返回标志发送至用户终端后,需要将确认结果进行本地化存储,本地存储时,将目标名单信息和确认结果进行关联存储,当服务器端再接收到包含目标名单信息的用户请求时,则直接在本地查询是否存储确认信息,如果存在可直接生成返回标志,如果不存在,则进行S1421-S1425的流程进行查询。本地化存储能够避免对同一信息进行反复查询确认,提高了查询返回效率。

本申请可以通过实现了前述的方法的各个实施例的应用程序在计算机中的运行来构造一个相应的装置,具体请参阅图8,图8为本实施例数据处理装置基本结构示意图。

如图8所示,一种数据处理装置,包括:获取模块2100、处理模块2200、输入模块2300和执行模块2400。其中,获取模块2100用于获取待存储的名单数据,其中,所述名单数据中包括多条名单信息;处理模块2200用于基于所述名单数据,生成与所述名单数据对应的布隆过滤器的第一参数因子,其中,所述第一参数因子包括:布隆过滤器的大小以及参与存储运算的多个哈希函数;输入模块2300用于将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个偏移数字;执行模块2400用于将所述偏移数字映射至预设的存储位图的位图点阵中,并将所述偏移数字对应的存储栅格标记为存储状态,其中,所述存储位图的大小与所述布隆过滤器的大小成正相关。

数据处理装置在进行名单数据存储时,根据名单数据生成与名单数据对应的布隆过滤器的第一参数因子,确定出与布隆过滤器相关存储空间大小,以及参与布隆过滤器存储的哈希函数,将名单数据中的名单信息分别输入至多个哈希函数中,生成多个哈希值,对哈希值进行取余运算后得到多个偏移数字,并将多个偏移数字映射至由布隆过滤器的大小确定的存储位图中,将偏移数字对应的存储栅格标记为存储状态。通过上述映射存储名单数据在数据库中的存储状态,能够将冗长的名单信息映射成一组简短的数组,并且通过位图存储的方式进行记录,能够大大降低名单数据入库存储的存储空间。

在一些实施方式中,数据处理装置还包括:第一获取子模块、第一比对子模块和第一执行子模块。其中,第一获取子模块用于获取所述名单数据中表征所述名单信息条数的数据参数;第一比对子模块用于将所述数据参数表征的数值与预设的参考阈值进行比对;第一执行子模块用于当所述数据参数表征的数值大于或者等于所述参考阈值,确定生成与所述名单数据对应的布隆过滤器的第一参数因子。

在一些实施方式中,数据处理装置还包括:第二获取子模块和第一处理子模块。其中,第二获取子模块用于获取互联节点的节点通信列表;第一处理子模块用于基于所述通信列表,将所述第一参数因子扩散至分布式网络中,以使所述分布式网络中其余节点根据扩散信息更新各自布隆过滤器的参数值。

在一些实施方式中,数据处理装置还包括:第一输入子模块和第一运算子模块。其中,第一输入子模块用于将所述名单数据中的名单信息逐条输入至所述多个哈希函数中,生成与所述名单信息映射的多个哈希值;第一运算子模块用于对所述多个哈希值分别进行取余运算,生成所述多个偏移数字。

在一些实施方式中,数据处理装置还包括:第三获取子模块、第二处理子模块和第二执行子模块。其中,第三获取子模块用于获取所述名单数据的业务标识;第二处理子模块用于基于预设的数据存储格式,将所述名单数据存储至与所述业务标识对应的数据集合中;第二执行子模块用于更新所述数据集合所在数据库中的键值,并更新所述名单数据同步完成的同步完成标识。

在一些实施方式中,数据处理装置还包括:第四获取子模块、第三处理子模块、第二输入子模块、第一查询子模块和第三执行子模块。其中,第四获取子模块用于获取待处理的用户请求,其中,所述用户请求中包括目标名单信息,以及所述目标名单信息的目标业务标识;第三处理子模块用于基于所述目标业务标识,读取与所述目标业务标识对应的目标布隆过滤器的第二参数因子,其中,所述第二参数因子包括:所述目标布隆过滤器的多个目标哈希函数;第二输入子模块用于将所述目标名单信息分别输入至所述多个目标哈希函数中,并对哈希运算结果进行取余运算,生成与所述目标名单信息对应的多个目标偏移数字;第一查询子模块用于在所述存储位图中查找所述多个目标偏移数字的存储状态;第三执行子模块用于当且仅当所述多个目标偏移数字均为存储状态,确认所述目标名单信息记录在所述名单数据中。

在一些实施方式中,数据处理装置还包括:第四处理子模块和第四执行子模块。其中,第四处理子模块用于根据所述确认结果生成返回标志;第四执行子模块用于将所述返回标志返回至发送所述用户请求的用户终端,并将所述确认结果进行本地存储。

为解决上述技术问题,本申请实施例还提供一种计算机设备,用于运行根据所述数据处理方法所实现的计算机程序。具体请参阅图9,图9为本实施例计算机设备基本结构框图。

如图9所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种数据处理方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种数据处理方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本实施方式中处理器用于执行图8中获取模块2100、处理模块2200、输入模块2300和执行模块2400的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有数据处理装置中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。

计算机设备在进行名单数据存储时,根据名单数据生成与名单数据对应的布隆过滤器的第一参数因子,确定出与布隆过滤器相关存储空间大小,以及参与布隆过滤器存储的哈希函数,将名单数据中的名单信息分别输入至多个哈希函数中,生成多个哈希值,对哈希值进行取余运算后得到多个偏移数字,并将多个偏移数字映射至由布隆过滤器的大小确定的存储位图中,将偏移数字对应的存储栅格标记为存储状态。通过上述映射存储名单数据在数据库中的存储状态,能够将冗长的名单信息映射成一组简短的数组,并且通过位图存储的方式进行记录,能够大大降低名单数据入库存储的存储空间。

本申请还提供一种非易失性存储介质,所述的数据处理方法被编写成计算机程序,以计算机可读指令的形式存储于该存储介质中,计算机可读指令被一个或多个处理器执行时,意味着该程序在计算机中的运行,由此使得一个或多个处理器执行上述任一实施例数据处理方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

相关技术
  • 数据处理方法、装置、计算机设备和计算机可读存储介质
  • 数据处理方法、装置、计算机可读存储介质和计算机设备
技术分类

06120112685799