CN113704302A - 基于hash映射的海量数据检索方法、系统、终端及存储介质 - Google Patents
基于hash映射的海量数据检索方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN113704302A CN113704302A CN202110874459.4A CN202110874459A CN113704302A CN 113704302 A CN113704302 A CN 113704302A CN 202110874459 A CN202110874459 A CN 202110874459A CN 113704302 A CN113704302 A CN 113704302A
- Authority
- CN
- China
- Prior art keywords
- data
- hash
- hash value
- data segments
- characteristic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013507 mapping Methods 0.000 title claims abstract description 18
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 56
- 230000002085 persistent effect Effects 0.000 claims abstract description 14
- 238000013500 data storage Methods 0.000 claims abstract description 12
- 239000012634 fragment Substances 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 12
- 238000000354 decomposition reaction Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000015556 catabolic process Effects 0.000 abstract description 6
- 230000035515 penetration Effects 0.000 abstract description 3
- 230000009467 reduction Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于HASH映射的海量数据检索方法、系统、终端及存储介质,包括:预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。本发明过滤了大量无效检索字段,保护了服务集群的稳定性和高效性,提高了海量数据的检索效率。有效避免了因缓存穿透、缓存击穿导致的服务器性能下降和宕机。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种基于HASH映射的海量数据检索方法、系统、终端及存储介质。
背景技术
在当前大数据的时代,企业级的数据往往以TB甚至PB的单位来计量。在如此规模的数据之下,数据的检索无疑成了一个很大的难题。尤其是在高并发场景下,高效检索数据的难度成几何倍率的增长。在企业实际应用场景中,一种常见的存储方案是REDIS+MYSQL。存入数据时,首先将数据持久化到MYSQL数据库(或其他持久层数据库产品),然后将热点数据同步到REDIS缓存层。在进行数据检索时,先访问REDIS缓存层,如果缓存层存在需要的数据,取出返回即可;如果缓存层不存在要检索的数据,此时便发生了缓存击穿,检索请求穿过REDIS缓存层,直接访问持久层数据库,进行IO操作。而如果持久层也不存在要检索的数据,此时便发生了缓存穿透。在高并发场景下,过多的无效查询导致大量IO操作直达数据库,这会使数据库性能急剧下降甚至宕机。
发明内容
针对现有技术存在的无效查询过多导致的大量IO操作直达数据库,使数据库性能下降甚至宕机的问题,本发明提供一种基于HASH映射的海量数据检索方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种基于HASH映射的海量数据检索方法,包括:
预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;
对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;
通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;
若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
进一步的,预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层,包括:
将缓存层的每条数据分解为数据片段后,对所有数据片段进行去重处理得到数据片段集合;
分别利用哈希算法组中的各哈希算法对数据片段进行计算,得到多个特征哈希值,将多个特征哈希值保存为数据片段的特征哈希值组合。
进一步的,所述哈希算法组包括左移运算、右移运算和信息摘要运算。
进一步的,对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合,包括:
利用无监督关键词提取方法提取用户端发送的请求数据中的关键词;
建立多个哈希值计算线程,每个线程均利用哈希算法组中的各哈希算法对关键词进行计算,得到多个哈希值,并将多个特征哈希值保存为关键词的哈希值组合。
进一步的,通过匹配哈希值组合从过滤层查找关键词的匹配数据片段,包括:
判断过滤层是否存在与关键词哈希值组合相同的特征哈希值组合:
若是,则判定所述关键词在过滤层存在匹配数据片段;
若否,则判定所述关键词在过滤层不存在匹配数据片段。
第二方面,本发明提供一种基于HASH映射的海量数据检索系统,包括:
数据分解单元,用于预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;
请求分解单元,用于对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;
哈希匹配单元,用于通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;
数据查询单元,用于若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
进一步的,所述数据分解单元用于:
将缓存层的每条数据分解为数据片段后,对所有数据片段进行去重处理得到数据片段集合;
分别利用哈希算法组中的各哈希算法对数据片段进行计算,得到多个特征哈希值,将多个特征哈希值保存为数据片段的特征哈希值组合。
进一步的,所述哈希算法组包括左移运算、右移运算和信息摘要运算。
进一步的,请求分解单元用于:
利用无监督关键词提取方法提取用户端发送的请求数据中的关键词;
建立多个哈希值计算线程,每个线程均利用哈希算法组中的各哈希算法对关键词进行计算,得到多个哈希值,并将多个特征哈希值保存为关键词的哈希值组合。
进一步的,哈希匹配单元用于:
判断过滤层是否存在与关键词哈希值组合相同的特征哈希值组合:
若是,则判定所述关键词在过滤层存在匹配数据片段;
若否,则判定所述关键词在过滤层不存在匹配数据片段。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的基于HASH映射的海量数据检索方法、系统、终端及存储介质,通过预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层,实现对缓存层的特征预存;然后对用户请求数据进行关键词提取,并计算利用哈希算法组计算各关键词的哈希值组合;通过匹配哈希值组合从过滤层查找关键词的匹配数据片段实现用户请求数据的片段式检索,此种方式提高了运算效率;若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。本发明过滤了大量无效检索字段,保护了服务集群的稳定性和高效性,提高了海量数据的检索效率。有效避免了因缓存穿透、缓存击穿导致的服务器性能下降和宕机。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种基于HASH映射的海量数据检索系统。
如图1所示,该方法包括:
步骤110,预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;
步骤120,对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;
步骤130,通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;
步骤140,若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
为了便于对本发明的理解,下面以本发明基于HASH映射的海量数据检索方法的原理,结合实施例中对基于HASH映射的海量数据进行检索的过程,对本发明提供的基于HASH映射的海量数据检索方法做进一步的描述。
在一般的数据检索过程中,往往也会使用一些数据结构或内存数据库来对常用查询字段进行存储,用以减少数据库IO次数,典型的解决方案就是使用REDIS数据库作缓存,或者直接使用哈希表(HASH TABLE),如JAVA中的HashMap。在数据量较小时可以这么做,如果数据量上亿乃至几十亿,占用的内存往往会达到一个惊人的地步。但如果给REDIS或缓存结构分配的内存空间过小,又容易导致高并发检索的场景下缓存击穿,大量请求直接到达数据库,从而产生大量IO,影响数据库性能。
为了解决这个问题,本发明提出以下核心解决方案:
1、数据入库前预处理
2、检索字段预处理
3、过滤无效检索
具体的,所述基于HASH映射的海量数据检索方法包括:
S1、预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层。
将缓存层的每条数据分解为数据片段后,对所有数据片段进行去重处理得到数据片段集合;分别利用哈希算法组中的各哈希算法对数据片段进行计算,得到多个特征哈希值,将多个特征哈希值保存为数据片段的特征哈希值组合。
在数据存储时,原始数据直接存入持久层数据库,并将数据同步至缓存层。缓存层接收到新存储的数据时,对新数据进行片段分解,对需要入库的原始数据进行预处理,将数据进行分词,形成多个数据片段。如原始数据为“我爱中国”,进行分词处理后,形成数据片段为[“我”,“爱”,“中国”]。然后计算各数据片段的特征哈希值组合。将新增数据的特征哈希值组合保存至过滤层。
哈希算法组包括左移运算、右移运算和信息摘要运算。
以右移运算为例,创建一个大小为10的位阵列[0,0,0,0,0,0,0,0,0,0],使用一个十分简单的HASH算法——位运算,将关键词进行左移或右移运算,如右移运算:'a'>>2,结果为24,进行取余操作24%10,得到该散列值在位阵列中的位置为4,将第四位置为1,即[0,0,0,0,0,1,0,0,0,0]。这样,字符'a'就存入了该过滤器中。
通过此种方式实现的HASH过滤器存在一定的误报率,有可能出现这种情况:过滤器已经存储了相当多的元素,即已经有许多比特位置为1,而此时查询一个从未存入过滤器的元素,如‘mysql’,发现经过k次HASH计算后,映射到的比特位均已经置为1,此时就产生了误报。即,查询一个本不存在的元素,却返回了‘存在’。
过滤器的长度m越大,选取的HASH函数的个数k越多,误报率也会越低,但是误报率仍会随着过滤器中存储的元素个数n的增加而增长。但是请注意,若过滤器返回了不存在,那么这个元素必定不存在。
误报率p,选取的HASH函数的个数k,过滤器的大小m,过滤器中的元素个数n之间的关系有如下公式:
根据上述公式,可以推出HASH函数个数k的选取公式:
以及过滤器大小m的确定公式:
假设要存储一亿个长度为8字节的HASH串,当选取误判率p=0.01,存储元素个数n=108,由上述公式可计算出m≈2.21×108。此时过滤器占据空间为2.21×108÷1024÷1024÷8≈26MB,而若使用JAVA中的HashMap存储,则需要占据8kb×108÷1024×2≈1.6GB的存储空间,并且哈希表随着存储元素个数的增加,查询效率会逐渐降低,而过滤器的查询效率始终为O(1)。
因此,考虑到哈希算法的误报率,本实施例设置多个哈希算法,从而有效避免误报问题。
S2、对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合。
利用无监督关键词提取方法提取用户端发送的请求数据中的关键词;建立多个哈希值计算线程,每个线程均利用哈希算法组中的各哈希算法对关键词进行计算,得到多个哈希值,并将多个特征哈希值保存为关键词的哈希值组合。
关键词的哈希值组合计算方法参考步骤S1,本实施例通过多线程同步计算,为每个关键词均创建一个线程,从而提高请求数据处理效率。
S3、通过匹配哈希值组合从过滤层查找关键词的匹配数据片段。
判断过滤层是否存在与关键词哈希值组合相同的特征哈希值组合:若是,则判定所述关键词在过滤层存在匹配数据片段;若否,则判定所述关键词在过滤层不存在匹配数据片段。
S4、若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
具体的用户检索请求处理流程如下:
1)当检索请求发送至服务器,服务器首先对检索字段进行分词处理,将完整的检索语句拆分成关键词组,再对关键词组进行循环,使用过滤器的k个HASH算法对每一个关键词进行计算和映射,如果位阵列中对应的比特位有任何一个为0,那么我们就判定该关键词在数据库中不存在,当所有关键词循环完毕且均不存在时,结束检索,返回空值。否则,认定该关键词存在,检索请求将进入REDIS缓存层。
2)当上个步骤中任意一个关键词经过k次哈希计算后,得到的映射值在位阵列中均存在,即,映射得到的k个比特位均为1时,过滤器将放行本次检索,允许其请求REDIS缓存,如果REDIS缓存中查询到了结果,直接返回该结果并展示。否则,检索请求将进入持久层,直接查询数据库。
3)当上个步骤中,REDIS缓存未能查询到结果,此时开始请求持久化层数据库,进行真正的查询,并将查询结果返回。至此,整个查询结束。
如图2所示,该系统200包括:
数据分解单元210,用于预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;
请求分解单元220,用于对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;
哈希匹配单元230,用于通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;
数据查询单元240,用于若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
可选地,作为本发明一个实施例,所述数据分解单元用于:
将缓存层的每条数据分解为数据片段后,对所有数据片段进行去重处理得到数据片段集合;
分别利用哈希算法组中的各哈希算法对数据片段进行计算,得到多个特征哈希值,将多个特征哈希值保存为数据片段的特征哈希值组合。
可选地,作为本发明一个实施例,所述哈希算法组包括左移运算、右移运算和信息摘要运算。
可选地,作为本发明一个实施例,请求分解单元用于:
利用无监督关键词提取方法提取用户端发送的请求数据中的关键词;
建立多个哈希值计算线程,每个线程均利用哈希算法组中的各哈希算法对关键词进行计算,得到多个哈希值,并将多个特征哈希值保存为关键词的哈希值组合。
可选地,作为本发明一个实施例,哈希匹配单元用于:
判断过滤层是否存在与关键词哈希值组合相同的特征哈希值组合:
若是,则判定所述关键词在过滤层存在匹配数据片段;
若否,则判定所述关键词在过滤层不存在匹配数据片段。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的基于HASH映射的海量数据检索方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层,实现对缓存层的特征预存;然后对用户请求数据进行关键词提取,并计算利用哈希算法组计算各关键词的哈希值组合;通过匹配哈希值组合从过滤层查找关键词的匹配数据片段实现用户请求数据的片段式检索,此种方式提高了运算效率;若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。本发明过滤了大量无效检索字段,保护了服务集群的稳定性和高效性,提高了海量数据的检索效率。有效避免了因缓存穿透、缓存击穿导致的服务器性能下降和宕机,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于HASH映射的海量数据检索方法,其特征在于,包括:
预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;
对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;
通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;
若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
2.根据权利要求1所述的方法,其特征在于,预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层,包括:
将缓存层的每条数据分解为数据片段后,对所有数据片段进行去重处理得到数据片段集合;
分别利用哈希算法组中的各哈希算法对数据片段进行计算,得到多个特征哈希值,将多个特征哈希值保存为数据片段的特征哈希值组合。
3.根据权利要求1或2所述的方法,其特征在于,所述哈希算法组包括左移运算、右移运算和信息摘要运算。
4.根据权利要求1所述的方法,其特征在于,对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合,包括:
利用无监督关键词提取方法提取用户端发送的请求数据中的关键词;
建立多个哈希值计算线程,每个线程均利用哈希算法组中的各哈希算法对关键词进行计算,得到多个哈希值,并将多个特征哈希值保存为关键词的哈希值组合。
5.根据权利要求1所述的方法,其特征在于,通过匹配哈希值组合从过滤层查找关键词的匹配数据片段,包括:
判断过滤层是否存在与关键词哈希值组合相同的特征哈希值组合:
若是,则判定所述关键词在过滤层存在匹配数据片段;
若否,则判定所述关键词在过滤层不存在匹配数据片段。
6.一种基于HASH映射的海量数据检索系统,其特征在于,包括:
数据分解单元,用于预先在数据存储阶段将缓存层数据分解为数据片段,利用哈希算法组计算数据片段的特征哈希值组合,并将所有数据片段的特征哈希值组合保存至过滤层;
请求分解单元,用于对用户请求数据进行关键词提取,并计算利用所述哈希算法组计算各关键词的哈希值组合;
哈希匹配单元,用于通过匹配哈希值组合从过滤层查找关键词的匹配数据片段;
数据查询单元,用于若用户请求数据的所有关键词均存在匹配数据片段则从缓存层查询请求数据,否则从持久层查询请求数据。
7.根据权利要求6所述的系统,其特征在于,所述数据分解单元用于:
将缓存层的每条数据分解为数据片段后,对所有数据片段进行去重处理得到数据片段集合;
分别利用哈希算法组中的各哈希算法对数据片段进行计算,得到多个特征哈希值,将多个特征哈希值保存为数据片段的特征哈希值组合。
8.根据权利要求6或7所述的系统,其特征在于,所述哈希算法组包括左移运算、右移运算和信息摘要运算。
9.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-5任一项所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110874459.4A CN113704302A (zh) | 2021-07-30 | 2021-07-30 | 基于hash映射的海量数据检索方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110874459.4A CN113704302A (zh) | 2021-07-30 | 2021-07-30 | 基于hash映射的海量数据检索方法、系统、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704302A true CN113704302A (zh) | 2021-11-26 |
Family
ID=78651060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110874459.4A Pending CN113704302A (zh) | 2021-07-30 | 2021-07-30 | 基于hash映射的海量数据检索方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704302A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1940922A (zh) * | 2005-09-30 | 2007-04-04 | 腾讯科技(深圳)有限公司 | 一种提高搜索信息速度的方法及系统 |
CN102214174A (zh) * | 2010-04-08 | 2011-10-12 | 上海市浦东科技信息中心 | 一种海量数据信息检索系统及其方法 |
CN102479207A (zh) * | 2010-11-29 | 2012-05-30 | 阿里巴巴集团控股有限公司 | 一种信息搜索的方法、系统及信息搜索设备 |
CN106294573A (zh) * | 2016-07-28 | 2017-01-04 | Tcl集团股份有限公司 | 一种海量数据实时查询方法及系统 |
CN106682147A (zh) * | 2016-12-22 | 2017-05-17 | 北京锐安科技有限公司 | 一种基于海量数据的查询方法及装置 |
CN109558521A (zh) * | 2018-11-28 | 2019-04-02 | 南京中孚信息技术有限公司 | 大规模关键词多模匹配方法、装置以及设备 |
CN110162528A (zh) * | 2019-05-24 | 2019-08-23 | 安徽芃睿科技有限公司 | 海量大数据检索方法及系统 |
CN111639099A (zh) * | 2020-06-09 | 2020-09-08 | 武汉虹旭信息技术有限责任公司 | 全文索引方法及系统 |
CN111831716A (zh) * | 2020-06-17 | 2020-10-27 | 西安电子科技大学 | 数据缓存与检索方法、系统、介质、计算机设备、终端 |
CN113157735A (zh) * | 2021-04-20 | 2021-07-23 | 清华大学 | 一种区块链存储数据的查询方法及装置 |
-
2021
- 2021-07-30 CN CN202110874459.4A patent/CN113704302A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1940922A (zh) * | 2005-09-30 | 2007-04-04 | 腾讯科技(深圳)有限公司 | 一种提高搜索信息速度的方法及系统 |
CN102214174A (zh) * | 2010-04-08 | 2011-10-12 | 上海市浦东科技信息中心 | 一种海量数据信息检索系统及其方法 |
CN102479207A (zh) * | 2010-11-29 | 2012-05-30 | 阿里巴巴集团控股有限公司 | 一种信息搜索的方法、系统及信息搜索设备 |
CN106294573A (zh) * | 2016-07-28 | 2017-01-04 | Tcl集团股份有限公司 | 一种海量数据实时查询方法及系统 |
CN106682147A (zh) * | 2016-12-22 | 2017-05-17 | 北京锐安科技有限公司 | 一种基于海量数据的查询方法及装置 |
CN109558521A (zh) * | 2018-11-28 | 2019-04-02 | 南京中孚信息技术有限公司 | 大规模关键词多模匹配方法、装置以及设备 |
CN110162528A (zh) * | 2019-05-24 | 2019-08-23 | 安徽芃睿科技有限公司 | 海量大数据检索方法及系统 |
CN111639099A (zh) * | 2020-06-09 | 2020-09-08 | 武汉虹旭信息技术有限责任公司 | 全文索引方法及系统 |
CN111831716A (zh) * | 2020-06-17 | 2020-10-27 | 西安电子科技大学 | 数据缓存与检索方法、系统、介质、计算机设备、终端 |
CN113157735A (zh) * | 2021-04-20 | 2021-07-23 | 清华大学 | 一种区块链存储数据的查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
富亚军: "企业互联网架构原理与实践", 31 May 2021, 机械工业出版社, pages: 243 - 244 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9575984B2 (en) | Similarity analysis method, apparatus, and system | |
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
CN104679778B (zh) | 一种搜索结果的生成方法及装置 | |
US20150081637A1 (en) | Difference determination in a database environment | |
US20190005101A1 (en) | Method and apparatus for accessing time series data in memory | |
US20220358178A1 (en) | Data query method, electronic device, and storage medium | |
CN111400308A (zh) | 缓存数据的处理方法、电子装置及可读存储介质 | |
US11755555B2 (en) | Storing an ordered associative array of pairs using an append-only storage medium | |
US20230128085A1 (en) | Data aggregation processing apparatus and method, and storage medium | |
EP3173947A1 (en) | Paged inverted index | |
US10558636B2 (en) | Index page with latch-free access | |
CN114490527A (zh) | 元数据检索方法、系统、终端及存储介质 | |
CN113297266B (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
CN111291083B (zh) | 网页源码数据处理方法、装置及计算机设备 | |
CN113704302A (zh) | 基于hash映射的海量数据检索方法、系统、终端及存储介质 | |
EP4024226A1 (en) | Query tree labeling and processing | |
CN110554992A (zh) | 一种分布式元数据路径管理方法、系统、终端及存储介质 | |
US8281000B1 (en) | Variable-length nonce generation | |
CN115963987A (zh) | 分布式存储方法、装置、设备及计算机可读存储介质 | |
CN110851437A (zh) | 一种存储方法、装置及设备 | |
CN114238334A (zh) | 异构数据编码、解码方法和装置、计算机设备和存储介质 | |
CN113742344A (zh) | 电力系统数据的索引方法及装置 | |
CN112015791A (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN111290803B (zh) | 数据预加载方法、装置、设备及存储介质 | |
CN116955364A (zh) | 基于区块链的数据存储方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |