CN104850564B - 数据文件的索引查找方法和系统 - Google Patents

数据文件的索引查找方法和系统 Download PDF

Info

Publication number
CN104850564B
CN104850564B CN201410055060.3A CN201410055060A CN104850564B CN 104850564 B CN104850564 B CN 104850564B CN 201410055060 A CN201410055060 A CN 201410055060A CN 104850564 B CN104850564 B CN 104850564B
Authority
CN
China
Prior art keywords
logical block
data
file
keyword
data file
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.)
Active
Application number
CN201410055060.3A
Other languages
English (en)
Other versions
CN104850564A (zh
Inventor
张元龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410055060.3A priority Critical patent/CN104850564B/zh
Publication of CN104850564A publication Critical patent/CN104850564A/zh
Application granted granted Critical
Publication of CN104850564B publication Critical patent/CN104850564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据文件的索引查找方法和系统。所述方法包括:获取进行数据文件查找的关键词;读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块;查找得到与所述定位的逻辑块相关联的数据,并输出所述查找得到的数据。所述系统包括:关键词获取模块,用于获取进行数据文件查找的关键词;逻辑块定位模块,用于读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块;查找模块,用于查找得到与所述定位的逻辑块相关联的数据,并输出所述查找得到的数据。采用本发明能在高写入速度的前提下提升查找速度。

Description

数据文件的索引查找方法和系统
技术领域
本发明涉及数据存储技术,特别是涉及一种数据文件的索引查找方法和系统。
背景技术
随着互联网应用的发展,越来越多的业务系统存在着海量的日志数据,这些海量的日志数据将被存储于硬盘中,以备日后需要的时候查询使用。
这些海量的日志数据具备了写入量非常巨大,读取频率相对较低的特点,因此传统的日志数据的存储大都直接存入硬盘中,而不做任何索引,以避免由于索引的存在而带来的写入速度的牺牲,但是,在对写入的日志数据进行查找时由于数据量过大,通常需要数个小时才能查找到所需要的数据,无法在保证高写入速度的前提下提升查找速度。
而传统的数据索引算法则是牺牲写入速度而达到快速查找的目的,其中,传统的数据索引算法包括了B树索引算法、倒排索引算法和哈希索引算法等,因此也无法在保证高写入速度的前提下提升查找速度。
发明内容
基于此,有必要提供一种能在高写入速度的前提下提升查找速度的数据文件的索引查找方法。
此外,还有必要提供一种能在高写入速度的前提下提升查找速度的数据文件的索引查找系统。
一种数据文件的索引查找方法,包括如下步骤:
获取进行数据文件查找的关键词;
读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块;
查找得到与所述定位的逻辑块相关联的数据,并输出所述查找得到的数据。
一种数据文件的索引查找系统,包括:
关键词获取模块,用于获取进行数据文件查找的关键词;
逻辑块定位模块,用于读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块;
查找模块,用于查找得到与所述定位的逻辑块相关联的数据,并输出所述查找得到的数据。
上述数据文件的索引查找方法和系统进行查找时,将获取关键词,读取索引文件,以在索引文件中通过布隆过滤器定位关键词所在的逻辑块,此时与该逻辑块相关联的数据即为所需要的数据,由于不需要对所有的数据进行查找,因此大大提升了查找速度,并且布隆过滤器较为简单,对于数据而言仍然是顺序写入的,保证了高写入速度。
附图说明
图1为一个实施例中数据文件的索引查找方法的流程图;
图2为图1中读取索引文件,在索引文件中通过布隆过滤器定位关键词所在的逻辑块的方法流程图;
图3为另一个实施例中数据文件的索引查找方法的流程图;
图4为一个实施例中数据文件的索引查找方法的应用示意图;
图5为一个实施例中数据文件的索引查找系统的结构示意图;
图6为图5中逻辑定位模块的结构示意图;
图7为另一个实施例中数据文件的索引查找方法的结构示意图;
图8为一个实施例中可运行前述数据文件的索引查找方法的服务器结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
如图1所示,在一个实施例中,一种数据文件的索引查找方法,包括如下步骤:
步骤S110,获取进行数据文件查找的关键词。
本实施例中,进行数据文件查找的关键词将是根据当前的数据查找需求而确定的,在这一查找过程中,数据文件即为存储于后台的大批量数据的统称,用户通过一定的关键词对存储于后台的大批量数据进行查找,以得到所需要的数据。
步骤S130,读取索引文件,在索引文件中通过布隆过滤器定位关键词所在的逻辑块。
本实施例中,后台将存储索引文件和数据文件,索引文件将为数据文件的快速查找提供索引。具体的,将通过布隆过滤器判断索引文件中是否存在与关键词相符的逻辑块,若为是,则说明与该逻辑块相关联的数据即为包含了关键词的数据,可作为查询结果输出。
其中,布隆过滤器为Bloomfilter,通过布隆过滤器实现索引文件中逻辑块的遍历,以定位所有与关键词相符的逻辑块。
步骤S150,查找得到与定位的逻辑块相关联的数据,并输出查找得到的数据。
本实施例中,每一逻辑块都将与一定的数据相关联,以便于通过索引文件中的逻辑块得到存储于硬盘中的数据。
通过如上所述的方法,将使得根据关键词所进行的数据查找过程中不需要逐一对后台存储的大批量数据进行逐一查找,只需要在索引文件中进行逻辑块的定位即可,实现了数据的快速查找,并且对于索引文件和数据文件的写入而言,仍然得以保持其顺序写入的特性,进而保证了索引文件和数据文件的快速写入,同时兼顾了优异的写入性能和查找性能。
如图2所示,在一个实施例中,上述步骤S130的具体过程为:
步骤S131,读取索引文件,以得到索引文件中包含的若干个逻辑块。
本实施例中,读取存储的索引文件,将通过索引文件中包含的若干个逻辑块为存储的数据提供索引,索引文件中的每一逻辑块均有与之相关联的数据。
步骤S133,通过哈希函数对关键词进行计算以得到相应的映射位置。
本实施例中,预先设置了若干个不同的哈希函数,以分别对关键词进行哈希计算得到一组映射位置,即每一哈希函数均对关键词进行哈希计算得到一映射位置,该映射位置将为数据的查找提供路径。
预先设置的哈希函数个数将与所允许的最大错误率有关,在优选的实施例中,若需要将错误率维持在千分之一以内,则需要设置10个哈希函数。
具体的,在通过哈希函数定位关键词所在的逻辑块必然存在着一定的错误率,即f=(1-p)k,其中,k为哈希函数个数,p=e-kn/m,kn<m,m为位表中的位数。
使位表中的一半为空,即元素值为零将有利于保持错误率最低,也就是说,当p为1/2,即k=in2*(m/n)将为最优结果。
步骤S135,判断映射位置是否与逻辑块中的位表相符,若为是,则进入步骤S137,若为否,则结束。
本实施例中,索引文件中每一逻辑块均存储了位表,逻辑块中的位表将包括了若干个元素值。具体的,在实际运营中该元素值将为1或0,逐一判断逻辑块的位表中与计算得到的映射位置所对应的元素值是否为1,进而在判断到所计算得到的一组映射位置所对应的元素值均为1时,则说明所计算得到的一组映射位置是与当前这一逻辑块中的位表相符的,因此可确定当前这一逻辑块即为关键词所在的逻辑块。
若判断到逻辑块的位表中任一计算得到的映射位置所对应的元素值为0,则说明所计算得到的一组映射位置与当前这一逻辑块中的位表并不相符,因此,当前这一逻辑块并不是关键词所在的逻辑块,需要对下一逻辑块进行遍历。
步骤S137,定位位表所在的逻辑块。
如图3所示,在另一个实施例中,上述步骤S110之前还将进行索引文件和数据文件的写入,因此该方法还包括如下步骤:
步骤S210,获取待写入的数据文件,并对数据文件进行逻辑分块以得到若干块数据。
本实施例中,待写入的数据文件可以是业务系统运行过程中所产生的日志数据等,对数据文件进行逻辑分块以得到若干块数据以及每一块数据的起始偏移和结束偏移。
步骤S230,获取数据的关键词,通过哈希函数对关键词进行计算以得到相应的映射位置。
本实施例中,对每一块数据,都将获取数据的关键词,通过预先设置的一组哈希函数分别对关键词进行计算以得到一组映射位置。
步骤S250,调整逻辑块的位表中映射位置对应的元素值,将该数据与逻辑块关联存储,并将数据的相关信息写入逻辑块中,逻辑块为数据文件当前写入数据所对应的逻辑块。
本实施例中,在当前的逻辑块中将计算得到的一组映射位置所对应的若干个元素值进行数值调整,具体的,将与计算得到的一组映射位置所对应的若干个元素值调整为1,并将这一关键词所对应的数据与当前的逻辑块关联存储,此外,还将数据的相关信息写入逻辑块中以方便后续查找。
其中,数据的相关信息将包括了进行逻辑分块时在数据文件中的起始偏移和结束偏移、开始写入时间和结束写入时间。
通过如上所述的方式将使得索引文件和数据文件仍然是顺序写入的,同时也为数据的快速查找建立了索引,既不需要牺牲高写入速度又提升了查找速度。
进一步的,在索引文件的逻辑块中写入的数据的相关信息将包括开始写入时间和结束写入时间,由于数据文件和索引文件是同时写入的,因此,逻辑块中记录的开始写入时间和结束写入时间也是数据文件中某一块数据的开始写入时间和结束写入时间,因此,在进行查找的过程中,若指定了查找某一时间段的数据则可根据逻辑块中的记录进行快速查找,以快速地过滤掉那些并未处于这一时间段的数据,极大地缩小了查找范围,进一步地提高了查找速度和效率。
如图4所示,待写入的数据文件被进行逻辑分块得到了N块数据,其中,每一块数据均有其所对应的关键词。
对于每一块数据,都将通过一组哈希函数,即哈希函数1至哈希函数10对关键词进行计算以得到一组相应的映射位置,进而对逻辑块所对应的位表中与映射位置相对应的元素值置为1,将当前的这一块数据与逻辑块关联存储,并将相关信息写入逻辑块中,待即将新起一逻辑块,即当前的逻辑块满时将位表写入当前的逻辑块中。
通过如上所述的过程实现索引文件和数据文件的写入,以同时兼顾了高写入速度和快速的查找性能。
在另一个实施例中,上述步骤S250之后,该方法还包括:
判断逻辑块是否更换为新的逻辑块,若为是,则将位表写入该逻辑块中,并将数据文件当前写入数据所对应的逻辑块设置为新的逻辑块,若为否,则继续进行索引文件和数据文件的写入。
本实施例中,在判断到当前的逻辑块即将被写满时,将需要新起一个逻辑块进行索引文件的写入,此时,将当前的逻辑块所对应的位表写入至当前的逻辑块,以结束当前的逻辑块的写入,将数据文件当前写入数据所对应的逻辑块设置为新起的逻辑块。
在另一个实施例中,上述步骤S250之后,该方法还包括:根据逻辑块中位表的使用率和逻辑块的使用率对位表的大小进行调整的步骤。
本实施例中,逻辑块所对应的位表还将根据运营过程中的实际状况进行动态调整,以适应当前所进行的索引文件和数据文件写入。
具体的,位表所进行的动态调整将包括:
(1)与逻辑块的使用率相比,位表的使用率优先达到预设值时,将根据当前逻辑块的大小和预设固定值对位表进行放大以得到下一逻辑块所对应的位表大小。
若位表的使用率优先达到预设值而逻辑块的使用率并未达到预设值,则说明位表过小,可按照当前逻辑块的大小和预设固定值之间的比例进行放大,例如,该预设固定值可以是32MB。
(2)与位表的使用率相比,逻辑块的使用率优先达到预设值时,将下一逻辑块所对应的位表大小按照当前位表的使用率和预设值之间的比例调小。
其中,与逻辑块的使用率相比较的预设值和与位表的使用率相比较的预设值可以是相同的数值,例如,可均为50%,也可以根据实际需要设置不同的数值,在此不一一进行限定。
如上所述的数据文件的索引查找过程可应用于各种业务系统的数据存储,即面对海量数据的写入和查找也均能得到非常高的写入速度和查找速度。
例如,该海量数据可为即时通信工具的登录日志数据,其中,每一条登录日志数据都包括了即时通信工具标识、登录时间以及登录的IP地址,以用于记录一个即时通信工具标识在什么时间,哪个IP地址上进行了登录操作,因此,通过如上所述的数据文件的索引查找过程实现登录日志数据的快速写入和快速查找。
也就是说,在传统的海量数据查找过程中常常需要遍历一天的数据,对每一条登录日志数据进行查找方可得到查找结果;而通过如上所述的数据文件的索引查找过程只需要先通过布隆过滤器对逻辑块进行定位即可排除大部分不可能的数据,进而在剩下的小部分数据中进行精确查找即可得到所需要的登录日志数据。
如图5所示,在一个实施例中,一种数据文件的索引查找系统,包括关键词获取模块110、逻辑块定位模块130和查找模块150。
关键词获取模块110,用于获取进行数据文件查找的关键词。
本实施例中,进行数据文件查找的关键词将是根据当前的数据查找需求而确定的,在这一查找过程中,数据文件即为存储于后台的大批量数据的统称,用户通过一定的关键词对存储于后台的大批量数据进行查找,以得到所需要的数据。
逻辑块定位模块130,用于读取索引文件,在索引文件中通过布隆过滤器定位关键词所在的逻辑块。
本实施例中,后台将存储索引文件和数据文件,索引文件将为数据文件的快速查找提供索引。具体的,逻辑块定位模块130将通过布隆过滤器判断索引文件中是否存在与关键词相符的逻辑块,若为是,则说明与该逻辑块相关联的数据即为包含了关键词的数据,可作为查询结果输出。
其中,布隆过滤器为Bloomfilter,逻辑块定位模块130通过布隆过滤器实现索引文件中逻辑块的遍历,以定位所有与关键词相符的逻辑块。
查找模块150,用于查找得到与定位的逻辑块相关联的数据,并输出查找得到的数据。
本实施例中,每一逻辑块都将与一定的数据相关联,以便于通过索引文件中的逻辑块得到存储于硬盘中的数据。
通过如上所述的系统,将使得根据关键词所进行的数据查找过程中不需要逐一对后台存储的大批量数据进行逐一查找,只需要在索引文件中进行逻辑块的定位即可,实现了数据的快速查找,并且对于索引文件和数据文件的写入而言,仍然得以保持其顺序写入的特性,进而保证了索引文件和数据文件的快速写入,同时兼顾了优异的写入性能和查找性能。
如图6所示,在一个实施例中,上述逻辑定位模块130包括读取单元131、位置映射单元133和位表判断单元135。
读取单元131,用于读取索引文件,以得到索引文件中包含的若干个逻辑块。
本实施例中,读取单元131读取存储的索引文件,将通过索引文件中包含的若干个逻辑块为存储的数据提供索引,索引文件中的每一逻辑块均有与之相关联的数据。
位置映射单元133,用于通过哈希函数对关键词进行计算以得到相应的映射位置。
本实施例中,预先设置了若干个不同的哈希函数,以分别对关键词进行哈希计算得到一组映射位置,即每一哈希函数均对关键词进行哈希计算得到一映射位置,该映射位置将为数据的查找提供路径。
预先设置的哈希函数个数将与所允许的最大错误率有关,在优选的实施例中,若需要将错误率维持在千分之一以内,则需要设置10个哈希函数。
具体的,在通过哈希函数定位关键词所在的逻辑块必然存在着一定的错误率,即f=(1-p)k,其中,k为哈希函数个数,p=e-kn/m,kn<m,m为位表中的位数。
使位表中的一半为空,即元素值为零将有利于保持错误率最低,也就是说,当p为1/2,即k=in2*(m/n)将为最优结果。
位表判断单元135,用于判断映射位置是否与逻辑块中的位表相符,若为是,则定位位表所在的逻辑块,若为否,则停止执行。
本实施例中,索引文件中每一逻辑块均存储了位表,逻辑块中的位表将包括了若干个元素值。具体的,在实际运营中该元素值将为1或0,位表判断单元135逐一判断逻辑块的位表中与计算得到的映射位置所对应的元素值是否为1,进而在判断到所计算得到的一组映射位置所对应的元素值均为1时,则说明所计算得到的一组映射位置是与当前这一逻辑块中的位表相符的,因此可确定当前这一逻辑块即为关键词所在的逻辑块。
若位表判断单元135判断到逻辑块的位表中任一计算得到的映射位置所对应的元素值为0,则说明所计算得到的一组映射位置与当前这一逻辑块中的位表并不相符,因此,当前这一逻辑块并不是关键词所在的逻辑块,需要对下一逻辑块进行遍历。
如图7所示,在另一个实施例中,该系统还包括逻辑分块模块210、位置运算模块230和写入模块250。
逻辑分块模块210,用于获取待写入的数据文件,并对数据文件进行逻辑分块以得到若干块数据。
本实施例中,待写入的数据文件可以是业务系统运行过程中所产生的日志数据等,逻辑分块模块210对数据文件进行逻辑分块以得到若干块数据以及每一块数据的起始偏移和结束偏移。
位置运算模块230,用于获取数据的关键司,通过哈希函数对关键词进行计算以得到相应的映射位置。
本实施例中,对每一块数据,位置运算模块230都将获取数据的关键词,通过预先设置的一组哈希函数分别对关键词进行计算以得到一组映射位置。
写入模块250,用于调整逻辑块的位表中映射位置对应的元素值,将数据与逻辑块关联存储,并将数据的相关信息写入逻辑块中,该逻辑块为数据文件当前写入数据所对应的逻辑块。
本实施例中,在当前的逻辑块中写入模块250将计算得到的一组映射位置所对应的若干个元素值进行数值调整,具体的,将与计算得到的一组映射位置所对应的若干个元素值调整为1,并将这一关键词所对应的数据与当前的逻辑块关联存储,此外,还将数据的相关信息写入逻辑块中以方便后续查找。
其中,数据的相关信息将包括了进行逻辑分块时在数据文件中的起始偏移和结束偏移、开始写入时间和结束写入时间。
通过如上所述的方式将使得索引文件和数据文件仍然是顺序写入的,同时也为数据的快速查找建立了索引,既不需要牺牲高写入速度又提升了查找速度。
进一步的,在索引文件的逻辑块中写入的数据的相关信息将包括开始写入时间和结束写入时间,由于数据文件和索引文件是同时写入的,因此,逻辑块中记录的开始写入时间和结束写入时间也是数据文件中某一块数据的开始写入时间和结束写入时间,因此,在进行查找的过程中,若指定了查找某一时间段的数据则可根据逻辑块中的记录进行快速查找,以快速地过滤掉那些并未处于这一时间段的数据,极大地缩小了查找范围,进一步地提高了查找速度和效率。
在另一个实施例中,如上所述的系统还包括了逻辑块判断模块。
逻辑块判断模块用于判断逻辑块是否更换为新的逻辑块,若为是,则将位表写入逻辑块中,并将数据文件当前写入数据所对应的逻辑块设置为新的逻辑块。
本实施例中,在判断到当前的逻辑块即将被写满时,逻辑块判断模块将需要新起一个逻辑块进行索引文件的写入,此时,将当前的逻辑块所对应的位表写入至当前的逻辑块,以结束当前的逻辑块的写入,将数据文件当前写入数据所对应的逻辑块设置为新起的逻辑块。
在另一个实施例中,如上所述的系统还包括了位表调整模块。该位表调整模块用于根据逻辑块中位表的使用率和逻辑块的使用率对位表的大小进行调整。
本实施例中,位表调整模块对逻辑块所对应的位表还将根据运营过程中的实际状况进行动态调整,以适应当前所进行的索引文件和数据文件写入。
具体的,位表调整模块对位表所进行的动态调整将包括:
(1)与逻辑块的使用率相比,位表的使用率优先达到预设值时,位表调整模块将根据当前逻辑块的大小和预设固定值对位表进行放大以得到下一逻辑块所对应的位表大小。
若位表的使用率优先达到预设值而逻辑块的使用率并未达到预设值,则说明位表过小,位表调整模块可按照当前逻辑块的大小和预设固定值之间的比例进行放大,例如,该预设固定值可以是32MB。
(2)与位表的使用率相比,逻辑块的使用率优先达到预设值时,位表调整模块将下一逻辑块所对应的位表大小按照当前位表的使用率和预设值之间的比例调小。
其中,与逻辑块的使用率相比较的预设值和与位表的使用率相比较的预设值可以是相同的数值,例如,可均为50%,也可以根据实际需要设置不同的数值,在此不一一进行限定。
在一个实施例中,如图8所示,提供了一种可运行前述数据文件的索引查找方法的服务器结构示意图。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(如图5中的键词获取模块110、逻辑块定位模块130和查找模块150),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。上述图1所示实施例中所述的由服务器所执行的步骤可以基于该图8所示的服务器结构。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种数据文件的索引查找方法,包括如下步骤:
获取进行数据文件查找的关键词;
读取索引文件,在所述索引文件中通过布隆过滤器定位所述数据文件查找的关键词所在的逻辑块;所述索引文件包括多个逻辑块;
查找得到与定位的逻辑块相关联的数据,并输出查找得到的数据;
所述获取进行数据文件查找的关键词的步骤之前,所述方法还包括:
获取待写入的数据文件,并对所述数据文件进行逻辑分块以得到若干块数据;
获取数据的关键词,通过哈希函数对所述数据的关键词进行计算以得到相应的映射位置;
调整逻辑块的位表中映射位置对应的元素值,将所述数据与所述逻辑块关联存储,并将所述数据的相关信息写入所述逻辑块中,所述逻辑块为数据文件当前写入数据所对应的逻辑块;
数据的相关信息包括进行逻辑分块时在数据文件中的开始写入时间和结束写入时间。
2.根据权利要求1所述的方法,其特征在于,所述读取索引文件,在所述索引文件中通过布隆过滤器定位所述关键词所在的逻辑块的步骤包括:
读取索引文件,以得到索引文件中包含的若干个逻辑块;
通过哈希函数对所述数据文件查找的关键词进行计算以得到相应的映射位置;
判断所述映射位置是否与所述逻辑块中的位表相符,若为是,则定位所述位表所在的逻辑块。
3.根据权利要求1所述的方法,其特征在于,所述调整逻辑块的位表中映射位置对应的元素值,将所述数据与所述逻辑块关联存储,并将所述数据的相关信息写入所述逻辑块中的步骤之后,所述方法还包括:
判断所述逻辑块是否更换为新的逻辑块,若为是,则将所述位表写入所述逻辑块中,并将数据文件当前写入数据所对应的逻辑块设置为新的逻辑块。
4.根据权利要求1所述的方法,其特征在于,所述调整逻辑块的位数据组中映射位置对应的元素值,将所述数据与所述逻辑块关联存储,并将所述数据的相关信息写入所述逻辑块中的步骤之后,所述方法还包括:
所述逻辑块中位表的使用率优先达到预设值时,根据所述逻辑块的大小对下一逻辑块中所述位表的大小进行调整。
5.一种数据文件的索引查找系统,其特征在于,包括:
关键词获取模块,用于获取进行数据文件查找的关键词;
逻辑块定位模块,用于读取索引文件,在所述索引文件中通过布隆过滤器定位所述数据文件查找的关键词所在的逻辑块;所述索引文件包括多个逻辑块;
查找模块,用于查找得到与定位的逻辑块相关联的数据,并输出查找得到的数据;
所述系统还包括:
逻辑分块模块,用于获取待写入的数据文件,并对所述数据文件进行逻辑分块以得到若干块数据;
位置运算模块,用于获取数据的关键词,通过哈希函数对所述数据的关键词进行计算以得到相应的映射位置;
写入模块,用于调整逻辑块的位表中映射位置对应的元素值,将所述数据与所述逻辑块关联存储,并将所述数据的相关信息写入所述逻辑块中,所述逻辑块为数据文件当前写入数据所对应的逻辑块;
数据的相关信息包括进行逻辑分块时在数据文件中的开始写入时间和结束写入时间。
6.根据权利要求5所述的系统,其特征在于,所述逻辑块定位模块包括:
读取单元,用于读取索引文件,以得到索引文件中包含的若干个逻辑块;
位置映射单元,用于通过哈希函数对所述数据文件查找的关键词进行计算以得到相应的映射位置;
位表判断单元,用于判断所述映射位置是否与所述逻辑块中的位表相符,若为是,则定位所述位表所在的逻辑块。
7.根据权利要求5所述的系统,其特征在于,所述系统还包括:
逻辑块判断模块,用于判断所述逻辑块是否更换为新的逻辑块,若为是,则将所述位表写入所述逻辑块中,并将数据文件当前写入数据所对应的逻辑块设置为新的逻辑块。
8.根据权利要求5所述的系统,其特征在于,所述系统还包括:
位表调整模块,用于所述逻辑块中位表的使用率优先达到预设值时,根据所述逻辑块的大小对下一逻辑块中所述位表的大小进行调整。
CN201410055060.3A 2014-02-18 2014-02-18 数据文件的索引查找方法和系统 Active CN104850564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410055060.3A CN104850564B (zh) 2014-02-18 2014-02-18 数据文件的索引查找方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410055060.3A CN104850564B (zh) 2014-02-18 2014-02-18 数据文件的索引查找方法和系统

Publications (2)

Publication Number Publication Date
CN104850564A CN104850564A (zh) 2015-08-19
CN104850564B true CN104850564B (zh) 2019-07-05

Family

ID=53850210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410055060.3A Active CN104850564B (zh) 2014-02-18 2014-02-18 数据文件的索引查找方法和系统

Country Status (1)

Country Link
CN (1) CN104850564B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055679A (zh) * 2016-06-02 2016-10-26 南京航空航天大学 一种多层次缓存感知型索引方法
CN106407362A (zh) * 2016-09-08 2017-02-15 福建中金在线信息科技有限公司 一种关键词信息检索的方法及装置
CN109033360B (zh) * 2018-07-26 2020-11-17 腾讯科技(深圳)有限公司 一种数据查询方法、装置、服务器及存储介质
CN111767364B (zh) * 2019-03-26 2023-12-29 钉钉控股(开曼)有限公司 数据处理方法、装置和设备
CN110176984B (zh) * 2019-05-28 2020-11-03 创意信息技术股份有限公司 一种用于安全字符串模式匹配的数据结构构造及匹配方法
CN110222015B (zh) * 2019-06-19 2021-07-09 北京泰迪熊移动科技有限公司 一种文件数据的读取、查询方法、装置及可读存储介质
CN114866262B (zh) * 2022-07-07 2022-11-22 万商云集(成都)科技股份有限公司 一种数据证书文件的存储取用方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944134A (zh) * 2010-10-18 2011-01-12 江苏大学 一种海量存储系统的元数据服务器和元数据索引方法
CN102246172A (zh) * 2008-10-13 2011-11-16 法卢资产有限公司 用于电子内容的分布式索引搜索的系统及方法
CN102782643A (zh) * 2010-03-10 2012-11-14 Emc公司 使用布隆过滤器的索引搜索
CN103440249A (zh) * 2013-07-23 2013-12-11 南京烽火星空通信发展有限公司 一种非结构化数据快速检索的系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977626B2 (en) * 2012-07-20 2015-03-10 Apple Inc. Indexing and searching a data collection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102246172A (zh) * 2008-10-13 2011-11-16 法卢资产有限公司 用于电子内容的分布式索引搜索的系统及方法
CN102782643A (zh) * 2010-03-10 2012-11-14 Emc公司 使用布隆过滤器的索引搜索
CN101944134A (zh) * 2010-10-18 2011-01-12 江苏大学 一种海量存储系统的元数据服务器和元数据索引方法
CN103440249A (zh) * 2013-07-23 2013-12-11 南京烽火星空通信发展有限公司 一种非结构化数据快速检索的系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于计数型布隆过滤器的文本检索模型;冯加军 等;《计算机工程》;20140215;第40卷(第2期);第58-61页

Also Published As

Publication number Publication date
CN104850564A (zh) 2015-08-19

Similar Documents

Publication Publication Date Title
CN104850564B (zh) 数据文件的索引查找方法和系统
CN106649346B (zh) 数据重复性校验方法及装置
JP5956558B2 (ja) 製品カテゴリ情報を判断する方法および装置
WO2021091489A1 (en) Method and apparatus for storing time series data, and server and storage medium thereof
CN102761627B (zh) 基于终端访问统计的云网址推荐方法及系统及相关设备
CN103324699B (zh) 一种适应大数据应用的快速重复数据删除方法
WO2018177275A1 (zh) 一种多数据源用户信息整合方法和装置
WO2013152678A1 (zh) 元数据查询方法和装置
CN103093761A (zh) 音频指纹检索方法及装置
CN106547784A (zh) 一种数据拆分存储方法及装置
US8880511B2 (en) Database query optimization and cost estimation
CN107679104B (zh) 大表流式并行高速数据比对方法
WO2012174906A1 (zh) 一种数据存储、查找方法及装置
CN104598632B (zh) 热点事件检测方法和装置
CN105787118A (zh) HBase二级索引的设计方法及查询方法
US20190179823A1 (en) Extreme value computation
CN103440249A (zh) 一种非结构化数据快速检索的系统及方法
CN104021223A (zh) 一种集群数据库测点的访问方法及装置
CN104615621B (zh) 搜索中的相关性处理方法和系统
CN107423321B (zh) 适用大批量小文件云存储的方法及其装置
CN102722557B (zh) 一种相同数据块的自适应识别方法
CN107133335A (zh) 一种基于分词与索引技术的重复记录检测方法
CN109218211A (zh) 数据流的控制策略中阈值的调整方法、装置和设备
CN104424189A (zh) 基于云平台的定位解算方法和系统
CN102902701B (zh) 信息查询系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190809

Address after: 518000 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.