CN113342813A - 键值数据处理方法、装置、计算机设备及可读存储介质 - Google Patents
键值数据处理方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN113342813A CN113342813A CN202110639861.4A CN202110639861A CN113342813A CN 113342813 A CN113342813 A CN 113342813A CN 202110639861 A CN202110639861 A CN 202110639861A CN 113342813 A CN113342813 A CN 113342813A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- value data
- key value
- processed
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000004931 aggregating effect Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 230000006835 compression Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012546 transfer Methods 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种键值数据处理方法、装置、计算机设备及可读存储介质,包括:获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应;根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并;将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集;将压缩键值数据集写入文件中,并将哈希值作为文件的索引项,相较于现有技术中仅利用键值对实现大数据的存储,本申请通过上述方案利用了哈希值作为存储查询依据,能够便捷地对大数据进行存储,同时提高了后续查询数据的效率。
Description
技术领域
本申请涉及大数据处理领域,具体而言,涉及键值数据处理方法、装置、计算机设备及可读存储介质。
背景技术
大数据的发展增强了各类业务的处理效率,而在相关技术中,键值对的查找是指通过给定的键来查询其对应的值的过程。利用其专业知识和技巧处理数据,能更快的找到键对应的值。在业界,通常是使用数据库来存储键值对,查找值时,使用SQL(结构化查询语言)从数据库中查找给定的键对应的值。这种方案在数据量少时,可以实现不错的性能效果,但当数据量越来越大后,会出现越来越多的问题,例如查询速度慢、数据库宕机、程序等待时间长等缺陷。
发明内容
本申请的目的在于提供一种键值数据处理方法、装置、计算机设备及可读存储介质。
第一方面,本申请实施例提供一种键值数据处理方法,包括:
获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应;
根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并;
将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集;
将压缩键值数据集写入文件中,并将哈希值作为文件的索引项。
在一种可能的实施方式中,文件包括索引文件和数据文件,将压缩键值数据集写入文件中,并将哈希值作为文件的索引项,包括:
将压缩键值数据集包括的数据写入数据文件;
将哈希值写入索引文件,并以压缩键值数据集包括的数据的首个哈希值作为文件的文件名,构建索引项;
将文件落入磁盘,并固定磁盘中存储的文件的数量。
在一种可能的实施方式中,将压缩键值数据集包括的数据写入数据文件,包括:
按照压缩键值数据集包括的数据的哈希值的顺序将压缩键值数据集包括的数据以追加方式写入数据文件,并获取压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度。
在一种可能的实施方式中,将哈希值写入索引文件,包括:
将压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度追加至索引文件中,得到多个索引项,其中,每个索引项的长度固定。
在一种可能的实施方式中,还包括:
获取待查询键数据,计算键数据对应的哈希值;
根据哈希值确定出对应的索引项;
定位到索引项在文件中的位置,并再向后读取预设数量字节的数据信息;
根据数据信息定位到键数据对应的开始偏移量,并向后读取预设字节长度,得到键数据对应的值数据。
在一种可能的实施方式中,根据数据信息定位到键数据对应的开始偏移量,并向后读取预设字节长度,得到键数据对应的值数据,包括:
对数据信息对应的数据进行解压;
根据键数据对应的开始偏移量和预设字节长度获取键数据对应的解压数据;
按照预设键加密规则对解压数据进行加密,得到加密结果;
若加密结果与键数据匹配,则将解压数据作为键数据对应的值数据;
若加密结果与键数据不匹配,则返回执行根据键数据对应的开始偏移量和预设字节长度获取键数据对应的解压数据的步骤,直至遍历数据信息对应的数据。
在一种可能的实施方式中,在定位到索引项在文件中的位置之前,包括:
获取索引项的索引项信息;
判断索引项信息的预设结尾字节是否为0;
若是,则结束查询流程,并显示键数据对应的值数据不存在;
若否,则执行定位到索引项在文件中的位置的步骤。
第二方面,本申请实施例提供一种键值数据处理装置,包括:
获取模块,用于获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应;
聚合模块,用于根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并;
压缩模块,用于将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集;
存储模块,用于将压缩键值数据集写入文件中,并将哈希值作为文件的索引项。
第三方面,本申请实施例提供一种计算机设备,计算机设备包括处理器及存储有计算机指令的非易失性存储器,计算机指令被处理器执行时,计算机设备执行第一方面至少一种可能的实施方式中的键值数据处理方法。
第四方面,本申请实施例提供一种可读存储介质,可读存储介质包括计算机程序,计算机程序运行时控制可读存储介质所在计算机设备执行第一方面至少一种可能的实施方式中任意一项的键值数据处理方法。
相比现有技术,本申请提供的有益效果包括:本申请公开了一种键值数据处理方法、装置、计算机设备及可读存储介质,包括:获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应;根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并;将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集;将压缩键值数据集写入文件中,并将哈希值作为文件的索引项,相较于现有技术中仅利用键值对实现大数据的存储,本申请通过上述方案利用了哈希值作为存储查询依据,能够便捷地对大数据进行存储,同时提高了后续查询数据的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的键值数据处理方法的步骤流程示意图;
图2为本申请实施例提供的键值数据处理装置的结构示意框图;
图3为本申请实施例提供的计算机设备的结构示意框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,“设置”、“连接”等术语应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接连接,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的具体实施方式进行详细说明。
为了解决前述背景技术中的技术问题,图1为本申请实施例提供的键值数据处理方法的流程示意图,下面对该键值数据处理方法进行详细介绍。
步骤S201,获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值。
其中,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应。
步骤S202,根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并。
步骤S203,将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集。
步骤S204,将压缩键值数据集写入文件中,并将哈希值作为文件的索引项。
应当理解的是,在大数据领域,数据存储在数据库中,数据库所存储的数据量可以是以万亿级为单位的,而存储的方式一般是以键值对的方式存储,即用户获取所需数据的键,进而确定出该键对应的值,因此在获取待处理键值数据集时,并不是直接从数据库中拿到,而是先根据预设的键值规则生成待处理键值数据集。例如,预设的键值规则可以是身份证规则,可以根据该规则从数据库中生成全部身份证,预设的键值规则也可以是手机号规则,可以根据该规则从数据库中生成全部手机号,在此不做限制。
在本申请实施例中,可以计算得到待处理键值数据集所包含的每个数据的哈希值,并进一步计算每个哈希值的绝对值。基于每个哈希值绝对值将待处理键值数据集所包含的每个数据进行聚合,可以将哈希值相同的数据合并,进而得到压缩键值数据集。
在一种可能的实施方式中,文件包括索引文件和数据文件,前述步骤S204可以通过以下详细的步骤执行实施。
子步骤S204-1,将压缩键值数据集包括的数据写入数据文件。
子步骤S204-2,将哈希值写入索引文件,并以压缩键值数据集包括的数据的首个哈希值作为文件的文件名,构建索引项。
子步骤S204-3,将文件落入磁盘,并固定磁盘中存储的文件的数量。
可以将压缩键值数据集写入索引文件和数据文件中,文件名以当前文件的第一个索引项对应的数据文件中的数值的哈希值做为文件名,且索引文件用index后缀,数据文件用data后缀进行标识。并将文件落入到磁盘,且固定文件的个数,以保证每个文件中存储的键最大的个数,数据文件和索引文件的文件名称相同,利用后缀区分。
在一种可能的实施方式中,前述子步骤S204-1可以通过以下步骤执行实施。
(1)按照压缩键值数据集包括的数据的哈希值的顺序将压缩键值数据集包括的数据以追加方式写入数据文件,并获取压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度。
在本申请实施例中,压缩键值数据集包括的数据的开始偏移量(data position)可以是前述的哈希值,其字节长度可以是8字节,而数据压缩后的数据长度(datalength)可以是4字节。
在一种可能的实施方式中,前述子步骤S204-2可以通过以下实施方式执行实施。
(1)将压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度追加至索引文件中,得到多个索引项,其中,每个索引项的长度固定。
在前述基础上,每个索引项由开始偏移量和数据压缩后的数据长度构成,因此每个索引项的长度可以为12字节。应当理解的是,索引文件和数据文件均采用追加的方式,没有换行符,这样使得数据更加紧凑。
在本申请实施例中,除了前述对键值数据进行存储的方案,本申请实施例还提供以下对应的对键值数据进行查找的方案。
步骤S205,获取待查询键数据,计算键数据对应的哈希值。
步骤S206,根据哈希值确定出对应的索引项。
步骤S207,定位到索引项在文件中的位置,并再向后读取预设数量字节的数据信息。
步骤S208,根据数据信息定位到键数据对应的开始偏移量,并向后读取预设字节长度,得到键数据对应的值数据。
在本申请实施例中,获取待查询键数据的方式可以是从文本文件、数据库、HTTP接口等获取到的。可以计算出数据的哈希值。利用哈希值找出这个键数据对应的索引项存储在磁盘中的哪个索引文件中,索引文件定位代码可以参考以下示例:“(hashCode/fileMaxCount)*fileMaxCount”,其中,hashCode是需要查找的键的哈希值,fileMaxCount是每个索引文件存储的最大的索引项条数。找出索引文件后,指定定位到当前哈希值记录的索引项在文件中的位置(position),再向后读取12个字节的数据(预设数量字节),这个内容数据(数据信息)则是需要查找的键对应数据在数据文件中的信息。数据文件信息定位可以通过以下代码实现:“(hashCode-fileName)*12”,其中,hashCode是需要查找的键的哈希值,ileName是前述步骤找到的索引文件名。
在一种可能的实施方式中,前述步骤S208可以由以下详细的实施方式执行实施。
子步骤S208-1,对数据信息对应的数据进行解压。
子步骤S208-2,根据键数据对应的开始偏移量和预设字节长度获取键数据对应的解压数据。
子步骤S208-3,按照预设键加密规则对解压数据进行加密,得到加密结果。
子步骤S208-4,若加密结果与键数据匹配,则将解压数据作为键数据对应的值数据。
子步骤S208-5,若加密结果与键数据不匹配,则返回执行根据键数据对应的开始偏移量和预设字节长度获取键数据对应的解压数据的步骤,直至遍历数据信息对应的数据。
在本申请实施例中,可以对得到的数据进行解压缩,并对解压缩后的数据按照固定长度进行获取数据,对获取的数据按照键的加密方式进行加密,对加密后的数据和键相匹配,如果匹配上,则找到,不再向剩余的数据进行迭代。否则继续向后迭代执行步骤S208-2至步骤S208-4,如果整个数据都迭代后都没有找到和键相匹配上,则没有找到对应键的对应值数据。
在一种可能的实施方式中,在执行步骤S207之前,还可以先执行以下步骤。
步骤S209,获取索引项的索引项信息。
步骤S210,判断索引项信息的预设结尾字节是否为0。
步骤S211,若是,则结束查询流程,并显示键数据对应的值数据不存在。
步骤S212,若否,则执行定位到索引项在文件中的位置的步骤。
为了提高数据处理的效率,找到数据在数据文件的位置信息后,根据索引项信息的结尾的4字节(第9~12位字节),做出以下选择:如果数据长度为0,则表示该哈希值对应的数据并不存在,结束查找流程,直接响应不存在该键对应的值的信息。如果数据长度不为0,则表示存在该哈希值对应的数据,继续执行下一步操作。
通过上述步骤,利用提前预计算的方式,将数据分为索引文件和数据文件,缩小数据的访问范围和访问时间。能够在减少计算机资源消耗的情况下,确保查询速度快,响应时间短,由于本申请在查找时利用数据的哈希定位快速定位数据所在文件位置的特点,整个过程仅仅涉及2次文件IO(输入Input/输出Output)操作,没有多余无效的操作,没有遍历大量数据的必要,因此整体上速度更快、效率更高,不仅如此,通过整个查找的过程,减少了无效的数据访问,简化了查找流程,降低了存储数据成本且提高了程序的响应速度。解决了相关技术中,利用数据库程序来进行查询值时,由于业务场景下需要查询具有快速的响应性,因此要求数据库需快速查询出对应键对应的值,而一般因数据量大,对数据库存储空间要求很高,对查询会消耗大量的查询时间和计算资源;以及在利用数据库程序查找值的方法时,数据库查询无法精准定位到数据所在的位置(索引按一定间隔来进行建立),如果查询的数据不在数据库表中,会遍历所有大量数据的问题。
本申请实施例提供一种键值数据处理装置110,请结合参考图2,键值数据处理装置110包括:
获取模块1101,用于获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应。
聚合模块1102,用于根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并。
压缩模块1103,用于将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集。
存储模块1104,用于将压缩键值数据集写入文件中,并将哈希值作为文件的索引项。
在一种可能的实施方式中,文件包括索引文件和数据文件,存储模块1104具体用于:
将压缩键值数据集包括的数据写入数据文件;将哈希值写入索引文件,并以压缩键值数据集包括的数据的首个哈希值作为文件的文件名,构建索引项;将文件落入磁盘,并固定磁盘中存储的文件的数量。
在一种可能的实施方式中,存储模块1104进一步具体用于:
按照压缩键值数据集包括的数据的哈希值的顺序将压缩键值数据集包括的数据以追加方式写入数据文件,并获取压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度。
在一种可能的实施方式中,存储模块1104进一步具体用于:
将压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度追加至索引文件中,得到多个索引项,其中,每个索引项的长度固定。
在一种可能的实施方式中,值数据处理装置还包括查找模块1105,查找模块1105用于:
获取待查询键数据,计算键数据对应的哈希值;根据哈希值确定出对应的索引项;定位到索引项在文件中的位置,并再向后读取预设数量字节的数据信息;根据数据信息定位到键数据对应的开始偏移量,并向后读取预设字节长度,得到键数据对应的值数据。
在一种可能的实施方式中,查找模块1105具体用于:
对数据信息对应的数据进行解压;根据键数据对应的开始偏移量和预设字节长度获取键数据对应的解压数据;按照预设键加密规则对解压数据进行加密,得到加密结果;若加密结果与键数据匹配,则将解压数据作为键数据对应的值数据;若加密结果与键数据不匹配,则返回执行根据键数据对应的开始偏移量和预设字节长度获取键数据对应的解压数据的步骤,直至遍历数据信息对应的数据。
在一种可能的实施方式中,查找模块1105还用于:
获取索引项的索引项信息;判断索引项信息的预设结尾字节是否为0;若是,则结束查询流程,并显示键数据对应的值数据不存在;若否,则执行定位到索引项在文件中的位置的步骤。
需要说明的是,前述键值数据处理装置110的实现原理可以参考前述键值数据处理方法的实现原理,在此不再赘述。应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,获取模块1101可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上获取模块1101的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所描述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,SOC)的形式实现。
本申请实施例提供一种计算机设备100,计算机设备100包括处理器及存储有计算机指令的非易失性存储器,计算机指令被处理器执行时,计算机设备100执行前述的键值数据处理装置110。如图3所示,图3为本申请实施例提供的计算机设备100的结构框图。计算机设备100包括键值数据处理装置110、存储器111、处理器112及通信单元113。
为实现数据的传输或交互,存储器111、处理器112以及通信单元113各元件相互之间直接或间接地电性连接。例如,可通过一条或多条通讯总线或信号线实现这些元件相互之间电性连接。键值数据处理装置110包括至少一个可以软件或固件(firmware)的形式存储于存储器111中或固化在计算机设备100的操作***(operating system,OS)中的软件功能模块。处理器112用于执行存储器111中存储的键值数据处理装置110,例如键值数据处理装置110所包括的软件功能模块及计算机程序等。
本申请实施例提供一种可读存储介质,可读存储介质包括计算机程序,计算机程序运行时控制可读存储介质所在计算机设备执行前述的键值数据处理方法。
综上所述,本申请公开了一种键值数据处理方法、装置、计算机设备及可读存储介质,包括:获取待处理键值数据集,并计算待处理键值数据集的多个哈希值的绝对值,待处理键值数据集包括多个待处理键值数据,待处理键值数据与哈希值对应;根据绝对值对待处理键值数据集进行聚合,将待处理键值数据集中具备相同哈希值的待处理键值数据合并;将聚合后的待处理键值数据集进行压缩,得到压缩键值数据集;将压缩键值数据集写入文件中,并将哈希值作为文件的索引项,相较于现有技术中仅利用键值对实现大数据的存储,本申请通过上述方案利用了哈希值作为存储查询依据,能够便捷地对大数据进行存储,同时提高了后续查询数据的效率。
出于说明目的,前面的描述是参考具体实施例而进行的。但是,上述说明性论述并不打算穷举或将本申请局限于所公开的精确形式。根据上述教导,众多修改和变化都是可行的。选择并描述这些实施例是为了最佳地说明本申请的原理及其实际应用,从而使本领域技术人员最佳地利用本申请,并利用具有不同修改的各种实施例以适于预期的特定应用。出于说明目的,前面的描述是参考具体实施例而进行的。但是,上述说明性论述并不打算穷举或将本申请局限于所公开的精确形式。根据上述教导,众多修改和变化都是可行的。选择并描述这些实施例是为了最佳地说明本申请的原理及其实际应用,从而使本领域技术人员最佳地利用本申请,并利用具有不同修改的各种实施例以适于预期的特定应用。
Claims (10)
1.一种键值数据处理方法,其特征在于,包括:
获取待处理键值数据集,并计算所述待处理键值数据集的多个哈希值的绝对值,所述待处理键值数据集包括多个待处理键值数据,所述待处理键值数据与所述哈希值对应;
根据所述绝对值对所述待处理键值数据集进行聚合,将所述待处理键值数据集中具备相同所述哈希值的所述待处理键值数据合并;
将聚合后的所述待处理键值数据集进行压缩,得到压缩键值数据集;
将所述压缩键值数据集写入文件中,并将所述哈希值作为所述文件的索引项。
2.根据权利要求1所述的方法,其特征在于,所述文件包括索引文件和数据文件,所述将所述压缩键值数据集写入文件中,并将所述哈希值作为所述文件的索引项,包括:
将所述压缩键值数据集包括的数据写入数据文件;
将所述哈希值写入所述索引文件,并以所述压缩键值数据集包括的数据的首个哈希值作为所述文件的文件名,构建所述索引项;
将所述文件落入磁盘,并固定所述磁盘中存储的所述文件的数量。
3.根据权利要求2所述的方法,其特征在于,所述将所述压缩键值数据集包括的数据写入数据文件,包括:
按照所述压缩键值数据集包括的数据的哈希值的顺序将所述压缩键值数据集包括的数据以追加方式写入数据文件,并获取所述压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度。
4.根据权利要求3所述的方法,其特征在于,所述将所述哈希值写入所述索引文件,包括:
将所述压缩键值数据集包括的数据的开始偏移量和数据压缩后的长度追加至所述索引文件中,得到多个所述索引项,其中,每个所述索引项的长度固定。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取待查询键数据,计算所述键数据对应的所述哈希值;
根据所述哈希值确定出对应的所述索引项;
定位到所述索引项在所述文件中的位置,并再向后读取预设数量字节的数据信息;
根据所述数据信息定位到所述键数据对应的开始偏移量,并向后读取预设字节长度,得到所述键数据对应的值数据。
6.根据权利要求5所述的方法,其特征在于,所述根据所述数据信息定位到所述键数据对应的开始偏移量,并向后读取预设字节长度,得到所述键数据对应的值数据,包括:
对所述数据信息对应的数据进行解压;
根据所述键数据对应的开始偏移量和所述预设字节长度获取所述键数据对应的解压数据;
按照预设键加密规则对所述解压数据进行加密,得到加密结果;
若所述加密结果与所述键数据匹配,则将所述解压数据作为所述键数据对应的所述值数据;
若所述加密结果与所述键数据不匹配,则返回执行所述根据所述键数据对应的开始偏移量和所述预设字节长度获取所述键数据对应的解压数据的步骤,直至遍历所述数据信息对应的数据。
7.根据权利要求5所述的方法,其特征在于,在所述定位到所述索引项在所述文件中的位置之前,包括:
获取所述索引项的索引项信息;
判断所述索引项信息的预设结尾字节是否为0;
若是,则结束查询流程,并显示所述键数据对应的值数据不存在;
若否,则执行所述定位到所述索引项在所述文件中的位置的步骤。
8.一种键值数据处理装置,其特征在于,包括:
获取模块,用于获取待处理键值数据集,并计算所述待处理键值数据集的多个哈希值的绝对值,所述待处理键值数据集包括多个待处理键值数据,所述待处理键值数据与所述哈希值对应;
聚合模块,用于根据所述绝对值对所述待处理键值数据集进行聚合,将所述待处理键值数据集中具备相同所述哈希值的所述待处理键值数据合并;
压缩模块,用于将聚合后的所述待处理键值数据集进行压缩,得到压缩键值数据集;
存储模块,用于将所述压缩键值数据集写入文件中,并将所述哈希值作为所述文件的索引项。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器及存储有计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述计算机设备执行权利要求1-7中任意一项所述的键值数据处理方法。
10.一种可读存储介质,其特征在于,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在计算机设备执行权利要求1-7中任意一项所述的键值数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110639861.4A CN113342813B (zh) | 2021-06-09 | 2021-06-09 | 键值数据处理方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110639861.4A CN113342813B (zh) | 2021-06-09 | 2021-06-09 | 键值数据处理方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342813A true CN113342813A (zh) | 2021-09-03 |
CN113342813B CN113342813B (zh) | 2024-01-26 |
Family
ID=77475445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110639861.4A Active CN113342813B (zh) | 2021-06-09 | 2021-06-09 | 键值数据处理方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342813B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115883545A (zh) * | 2023-02-15 | 2023-03-31 | 江西飞尚科技有限公司 | 一种高频数据传输方法及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673307A (zh) * | 2009-10-21 | 2010-03-17 | 中国农业大学 | 空间数据索引方法及*** |
CN103593436A (zh) * | 2013-11-12 | 2014-02-19 | 华为技术有限公司 | 文件合并方法和装置 |
CN106547755A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 一种基于片键的数据处理方法及装置 |
CN107870970A (zh) * | 2017-09-06 | 2018-04-03 | 北京理工大学 | 一种数据存储查询方法及*** |
CN109885535A (zh) * | 2019-01-04 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种文件存储的方法及相关装置 |
CN110532284A (zh) * | 2019-09-06 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 海量数据存储和检索方法、装置、计算机设备及存储介质 |
CN111177476A (zh) * | 2019-12-05 | 2020-05-19 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN112486994A (zh) * | 2020-11-30 | 2021-03-12 | 武汉大学 | 一种基于日志结构合并树的键值存储的数据快速读取方法 |
-
2021
- 2021-06-09 CN CN202110639861.4A patent/CN113342813B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673307A (zh) * | 2009-10-21 | 2010-03-17 | 中国农业大学 | 空间数据索引方法及*** |
CN103593436A (zh) * | 2013-11-12 | 2014-02-19 | 华为技术有限公司 | 文件合并方法和装置 |
CN106547755A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 一种基于片键的数据处理方法及装置 |
CN107870970A (zh) * | 2017-09-06 | 2018-04-03 | 北京理工大学 | 一种数据存储查询方法及*** |
CN109885535A (zh) * | 2019-01-04 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种文件存储的方法及相关装置 |
CN110532284A (zh) * | 2019-09-06 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 海量数据存储和检索方法、装置、计算机设备及存储介质 |
CN111177476A (zh) * | 2019-12-05 | 2020-05-19 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备及可读存储介质 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN112486994A (zh) * | 2020-11-30 | 2021-03-12 | 武汉大学 | 一种基于日志结构合并树的键值存储的数据快速读取方法 |
Non-Patent Citations (2)
Title |
---|
PANDIAN RAJU等: "PebblesDB:Building Key-Value Stores using Fragmented Log-Structured Merge Trees", 《SOSP 17》, pages 497 - 514 * |
孙勇等: "面向云计算的键值型分布式存储***研究", 《电子学报》, vol. 41, no. 7, pages 1 - 6 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115883545A (zh) * | 2023-02-15 | 2023-03-31 | 江西飞尚科技有限公司 | 一种高频数据传输方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113342813B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319654B (zh) | 计算***、冷热数据分离方法及装置、计算机可读存储介质 | |
WO2021091489A1 (en) | Method and apparatus for storing time series data, and server and storage medium thereof | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
US20240126817A1 (en) | Graph data query | |
CN110716965B (zh) | 一种块链式账本中的查询方法、装置及设备 | |
CN111858520A (zh) | 一种区块链节点数据分离存储的方法和装置 | |
CN111782707A (zh) | 一种数据查询方法及*** | |
CN115203148A (zh) | 修改文件的方法和装置 | |
CN108182221B (zh) | 数据处理的方法以及相关设备 | |
CN113297269A (zh) | 数据查询方法及装置 | |
US9213759B2 (en) | System, apparatus, and method for executing a query including boolean and conditional expressions | |
CN116049109A (zh) | 一种基于过滤器的文件校验方法、***、设备和介质 | |
CN112084291A (zh) | 信息推荐方法及装置 | |
CN113342813B (zh) | 键值数据处理方法、装置、计算机设备及可读存储介质 | |
CN111857574A (zh) | 一种写请求数据压缩方法、***、终端及存储介质 | |
CN111625600B (zh) | 数据存储的处理方法、***、计算机设备及存储介质 | |
CN115129791A (zh) | 一种数据压缩存储方法、装置及设备 | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN117093579A (zh) | 数据查询、数据存储方法、装置、设备及存储介质 | |
CN107609038B (zh) | 数据清理方法和装置 | |
CN114816219A (zh) | 数据写入和读取方法、装置及数据读写*** | |
CN112667682A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112612865A (zh) | 一种基于Elasticsearch的文档存储方法和装置 | |
CN116821102B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |