CN110069500B - 一种非关系型数据库动态混合索引方法 - Google Patents

一种非关系型数据库动态混合索引方法 Download PDF

Info

Publication number
CN110069500B
CN110069500B CN201910327502.8A CN201910327502A CN110069500B CN 110069500 B CN110069500 B CN 110069500B CN 201910327502 A CN201910327502 A CN 201910327502A CN 110069500 B CN110069500 B CN 110069500B
Authority
CN
China
Prior art keywords
primary key
field
index
query
value
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
CN201910327502.8A
Other languages
English (en)
Other versions
CN110069500A (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.)
Donghua University
Original Assignee
Donghua University
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 Donghua University filed Critical Donghua University
Priority to CN201910327502.8A priority Critical patent/CN110069500B/zh
Publication of CN110069500A publication Critical patent/CN110069500A/zh
Application granted granted Critical
Publication of CN110069500B publication Critical patent/CN110069500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明一种非关系型数据库动态混合索引方法,其特征在于,包括以下步骤:建立键值对非关系型数据库的非主键索引结构;定义非主键字段的权重,通过一个周期内字段作为查询条件的频次以及字段的历史权重,更新非主键字段的权重值;动态划分索引类型;进行混合索引。本发明提出的键值对非关系型数据库的混合索引方法,可以有效的提升非主键字段的条件查询效率。该方法克服了键值对非关系型数据不支持非主键字段不支持索引查询的弱点,建立了非主键字段的混合索引。在大数据的存储上,即实现了快速查询的功能,又节省了不必要的存储开销。

Description

一种非关系型数据库动态混合索引方法
技术领域
本发明涉及一种大数据检索中索引建立的方法,属于大数据存储、检索技术领域。
背景技术
分布式非关系型数据库具有高可用性、高扩展性以及高可靠性,常用来作为大数据的存储支撑。分布式非关系型数据库分为文档型,键值对型等多种类型,它们有各自的不足之处。一些键值对类型的非关系型分布式数据库在字段上拥有动态可扩展性,可以灵活的存储不同结构的数据,但是只能进行主键的索引查询,针对非主键的查询只能进行扫描查找。
很多学者针对这一问题进行了研究,也提出了一些提升检索速度的解决方法。在针对一些特殊的数据进行存储时,可以将某些主要字段进行编码放入主键中,提升查询效率,如空间地理位置数据。Shouwu He等提出使用Geohash算法对经纬度进行编码降低坐标维度,并使用该编码作为HBase的rowkey,使用knn算法和矩形范围查询来进行空间坐标的查询。Dandan Shen等在GEOhash编码方式的基础上提出了一种近邻车辆检索算法,将二维检索数据映射(map)成一维数据,做为RowKey的前辍,利用了RowKey的B+树索引,提升了检索速度。
当数据无法进行特殊处理时,需要建立索引表优化查询。华为公司研发并开源了非主键索引查询系统Hindex。它通过建立非主键的倒排索引表来支持非主键的索引查询,并且基于Region建立局部索引。在每一个Region内建立数据表的相关索引,插入或者查询数据时使用Region的协处理器将相关操作的作用范围控制在当前Region内。
Chen Feng等提出局部聚簇(local and cluster)索引LCIndex。在Region内建立局部索引表,并在索引表中存储与该索引查询关联度最高的字段值,使得进行一次查询,在索引表中即可获得查询数据。
Yudong Guo等提出了同构列簇索引(ICF-HBase)。与HiBase一样建立了非主键的倒排索引,不同之处在于ICF-HBase将索引与原数据存放在同一张表中,省去了索引表的维护操作。虽然使用了同一张表,但是通过特殊设计的RowKey前缀将索引和原数据在逻辑上进行隔离,使得在实际查询过程中可以先进行索引查询,再根据索引查询结果进行原数据查询。
随着互联网技术的发展与普及,数据的采集和信息的传播越来越便捷。日常生活中产生了大量的数据,传统的关系型数据库已经无法满足当下的大数据存储。为了保证存储数据的高效性和扩展性,分布式非关系型数据库得到了广泛的应用。
分布式非关系型数据库具有高可用性、高扩展性以及高可靠性。但它也有不足之处,一些键值对类型的分布式非关系型数据库虽然在字段上拥有动态可扩展性,但是只支持主键的索引查询,非主键只能进行扫描查询。如,HBases以Hadoop的HDFS为存储支撑,具有良好的扩展性和高可用性,能够满足大数据的存储需求。HBase中的主键(RoWKey)建立了类B+树索引,主键(RowKey)上的查询可以在毫秒级时间内得到反馈。但进行非主键检索时,HBase只能进行指定范围的扫描查询或者全表扫描查询,不能实时、快速的得到检索结果。大数据分析挖掘工作时,常常会针对不同的条件,提取不同的数据子集,这些提取操作涉及了非主键的查询请求,数据提取工作耗费大量时间。
发明内容
本发明要解决的技术问题是:键值对非关系型数据库自身不支持非主键字段建立索引,虽然可以装非主键字段进行编码放入主键中,使得非主键字段可以使用索引查询,但是这种方法只适应于少数特殊领域的数据存储,而且这种方法无法支持灵活的索引查询。另一方面,也可以针对非主键字段建立索引表,但是这样增加了数据的冗余性,大大耗费了存储空间。
为了解决上述技术问题,本发明的技术方案是提供了一种非关系型数据库动态混合索引方法,其特征在于,包括以下步骤:
(1)定义非主键字段的权重,通过一个周期内字段作为查询条件的频次以及字段的历史权重,更新非主键字段的权重值,更新第i个非主键字段的权重值包括以下步骤:
S101、统计查询次数
周期性统计周期内查询次数tc以及以第i个非主键字段作为查询条件的查询次数vci
S102、计算概率值
计算出第i个非主键字段周期内的作为查询条件的概率值p(ci):
Figure GDA0003633509210000031
S103、计算周期内权重
结合其他字段的查询情况,计算出当前周期内第i个非主键字段的权重值ω(i):
Figure GDA0003633509210000032
S104、计算新权重
结合第i个非主键字段的第n-1个周期结束后的历史权重值,计算出第i个非主键字段的第n个周期的新权重值
Figure GDA0003633509210000033
Figure GDA0003633509210000034
式中,ρ表示衰减系数,代表了每过一个查询周期字段权重衰减的快慢程度,取值范围为[0,1];
S105返回新的权重值;
(2)动态划分索引类型
非主键字段的权重值定期更新的同时,更新非主键字段的索引类型,根据非主键字段的权重值,将非主键字段的索引类型划分为两类:高频字段和低频字段,包括以下步骤:
S201获取非主键字段权重
在第n个周期结束后,获取所有非主键字段的权重值并将权重值按序排列,排完序后作为计算的输入数据;
S202、设定一个阈值k;
S203、分离字段
将所有非主键字段分为两个集合,集合C0和集合C1,集合C0内的非主键字段的权重值小于阈值k,集合C1内的非主键字段的权重值大于等于阈值k;
S204、计算字段占比
计算集合C0和集合C1的字段占比ω0及ω1,ω01=1,且有:
Figure GDA0003633509210000035
Figure GDA0003633509210000041
式中,Si代表i个非主键字段的权重值;
S205、计算均值
计算集合C0中的非主键字段的权重均值μ0、集合C1中的非主键字段的权重均值μ1、所有非主键字段的权重均值μT
Figure GDA0003633509210000042
Figure GDA0003633509210000043
Figure GDA0003633509210000044
S206、计算方差
通过均值计算集合C0和集合C1两个部分之间的权重方差δ2(k):
δ2(k)=ω00T)+ω11T)
S207、重新设定一个阈值k后返回步骤S203,直至遍历阈值k的所有可能值,进入步骤S208;
S208得到最终阈值
将权重方差δ2(k)最大时对应的阈值为最终阈值;
S209、将权重值大于阈值的非主键字段划分为高频字段,反之划分为低频字段;
(3)进行混合索引,建立键值对非关系型数据库的非主键索引结构
针对高频字段建立详细索引以支持快速查询,对于低频字段建立摘要索引。
优选地,步骤(3)中,建立详细索引包括以下步骤:
S301确定字段
确定需要建立详细索引的非主键字段;
S302建立索引信息
将非主键字段对应的属性值以及该条非主键字段对应记录的主键值进行合并生成索引信息的主键,主键格式如下:
<CSN+Sep+Val+Sep+RecordRowKey>
式中,CSN为索引字段别名;Val为原表中索引字段对应的值;RecordRowKey为原表的主键;Sep为分隔符;
S303插入索引表
将得到的索引信息插入在索引表中,供查询使用;
S304处理所有数据
建立表中所有数据的索引信息。
优选地,步骤(3)中,快速查询包括以下步骤:
S401发起查询
发起非主键字段的条件查询操作;
S402查找索引表
根据查询条件,生成索引表的查询条件并查询,返回查询到的原表的主键值;
S403查找原表
根据返回的主键值,获取查询数据;
S404返回查询结果。
优选地,步骤(3)中,摘要索引由概要森林实现,概要森林由概要树构成,概要树的构建流程如下:
S501、数据分段
将表中数据分为等长的段;
S502、概要提取
对第一段的数据提取概要信息包,概要信息包包含最大值、最小值、平均值、求和;
S503、建立叶子节点
对每一个概要信息包建立叶子节点,节点中存储了概要信息包和数据段的始点与终点;
S504、递归生成父节点
相邻的两个叶子节点,生成一个父节点,父节点存储的信息包含了两个叶子节点的信息,递归地生成父节点的父节点,直到生成根节点;
S505、完成构建概要树;
概要森林的构建流程如下:
S601、存储新数据
S602、生成数据段
当新数据量达到一个数据段的数据量时,生成一个数据段;
S603、生成叶子节点
从新组成的数据段中生成一个叶子节点;
S604、合并概要树
当概要森林中存在深度相同的两颗概要树时,合并这两颗概要树,直到概要森林中不存在深度相同的概要树;
S605、完成构建概要森林。
优选地,步骤(3)中,基于摘要索引进行查询包括以下步骤:
S701、发起查询
发起非主键字段的条件查询操作
S702、获取根节点
在概要森林中,根据查询条件,获取包含查询结果的概要树的根节点;
S703、获取叶子节点
从概要树的根节点开始,遍历查找符合查询要求的节点,直到找到叶子节点;
S704、生成扫描查询
根据叶子节点包含的信息生成原表的区间范围扫描查询;
S705、执行扫描查询
根据得到的扫描查询进行查询,如果有多个扫描查询,最后将多外扫描查询的结果进行合并;
S706、返回查询结果。
本发明提出的键值对非关系型数据库的混合索引方法,可以有效的提升非主键字段的条件查询效率。该方法克服了键值对非关系型数据不支持非主键字段不支持索引查询的弱点,建立了非主键字段的混合索引。将非主键字段按照被查询频率分为了高频和低频两种,对高频字段建立了详细索引,提供了快速查询的能力;对低频字段建立了概要索引,在提升查询效率的基础上,节省了索引的空间存储损耗。进一步地,通过动态更新字段的权重,来调整索引类型,使得应对不同时期的查询需要都能提借高效的检索。在大数据的存储上,即实现了快速查询的功能,又节省了不必要的存储开销。
附图说明
图1为分布式存储模式下的缓存结构;
图2为权重计算流程;
图3为阈值计算流程;
图4为详细索引建立流程;
图5为详细索引查询流程;
图6为概要树的构建流程;
图7为概要森林的构建流程;
图8为概要森林查询流程;
图9为数据检索模拟流程。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明涉及的一种非关系型数据库动态混合索引方法,主要有以下四部分内容:
(1)定义了非主键字段的权重。通过一个周期内字段作为查询条件的频次以及字段的历史权重,更新字段的权重值。
(2)动态划分索引类型。非主键字段的权重值定期更新的同时,更新字段的索引类型。根据字段的权重值,将非主键字段划分为两类:高频字段和低频字段。
(3)提出了混合索引方法,建立了键值对非关系型数据库的非主键索引结构。该方法通过字段的权重将非主键字段划分为了高频字段和低频字段。针对高频字段建立详细索引以支持快速查询,对于低频字段建立摘要索引,摘要索引可以在提升检索效率的同时节省存储空间。
本发明的技术核心在于第(1)部分和第(2)部分,在键值对非关系型数据库中提出了针对非主键字段的混合索引结构。键值对非关系型数据库自身不支持非主键字段建立索引,虽然可以装非主键字段进行编码放入主键中,使得非主键字段可以使用索引查询,但是这种方法只适应于少数特殊领域的数据存储,而且这种方法无法支持灵活的索引查询。另一方面,也可以针对非主键字段建立索引表,但是这样增加了数据的冗余性,大大耗费了存储空间。针对以上问题,本发明提出了一种针对键值对非关系型数据库的动态混合索引方法。
根据以上思想,本发明对所有的非主键字段的权重值周期性进行更新,根据周期内非主键字段作为查询条件的访问频次和非主键字段的历史权重值进行计算,以第i个非主键字段为例,具体计算流程如下:
S101统计查询次数。周期性统计周期内查询次数tc,以及非主键字段作为查询条件的次数vci
S102计算概率值。计算出第i个非主键字段周期内的作为查询条件的概率值p(ci),计算公式如下:
Figure GDA0003633509210000081
S103计算周期内权重。结合其他字段的查询情况,计算出当前第n个周期内第i个非主键字段的权重值ω(i),计算公式如下:
Figure GDA0003633509210000082
S104计算新权重。结合第i个非主键字段的第n-1个周期结束后的历史权重值,计算出第i个非主键字段的第n个周期的新权重值
Figure GDA0003633509210000083
计算公式如下:
Figure GDA0003633509210000084
式中,ρ表示衰减系数,代表了每过一个查询周期字段权重衰减的快慢程度,取值范围为[0,1]。
S105返回新的权重值。
每个周期结束后需要对非主键字段按照权重值分类,分为高频字段和低频字段。划分字段时使用最大类间方差求出一个阈值,权重大于阈值的非主键字段划分为高频字段,反之划分为低频字段。非主键字段划分的主要步骤为求出阈值。阈值的求解流程如下:
S201获取字段权重。在周期结束后,获取所有非主键字段的权重值并将权重从小到大排序。排完序后作为计算的输入数据。
S202假设阈值k。依次假设阈值k等于字段的权重值。
S203分离字段。将所有非主键字段分为两个集合,集合C0和集合C1,集合C0内的非主键字段的权重值小于阈值k,集合C1内的非主键字段的权重值大于等于阈值k。
S204计算字段占比。计算两个集合C0和集合C1的字段占比ω0及ω1,计算公式如下:
Figure GDA0003633509210000091
Figure GDA0003633509210000092
其中Si代表第i个非主键字段的权重值,由上式可知ω01=1。
S205计算均值。计算集合C0和集合C1中非主键字段的权重均值μ0、μ1和所有非主键字段的权重均值μT,计算公式如下:
Figure GDA0003633509210000093
Figure GDA0003633509210000094
Figure GDA0003633509210000095
S206计算方差。通过均值计算集合C0和集合C1两个部分之间的权重方差δ2(k),计算公式如下:
δ2(k)=ω00T)+ω11T)
S207计算所有阈值。遍历所有的阈值,直到所有的阈值均计算完成。
S208得到最终阈值。取最大方差值对应的阈值为最终阈值。
通过阈值可以将非主键字段分为两类,其中高频的非主键字段因为常被作为查询条件,所以对此类字段建立详细索引。详细索引使用倒排索引的方式建立,并将索引信息存储在非关系型数据库中。建立详细索引的流程如下:
S301确定字段。确定需要建立详细索引的非主键字段。
S302建立索引信息。将非主键字段对应的属性值,以及非主键字段的主键值进行合并生成索引信息的主键。生成的索引信息主键格式如下所示:
<CSN+Sep+Val+Sep+RecordRowKey>
其中,CSN为索引字段别名;Val为原表中索引字段对应的值;RecordRowKey为原表的主键(RowKey);Sep为分隔符(separator),分隔符可使用任意不产生混淆的字符。
S303插入索引表。将得到的索引信息插入在索引表中,供查询使用。
S304处理所有数据。建立表中所有数据的索引信息。
详细索引建立了非主键字段的属性值与原数据的主键一一对应的关系,并且索引信息存储在数据库的表中,借助了表中主键字段的索引能力,提供了快速的查询操作。具体的查询操作流程如下:
S401发起查询。发起非主键的条件查询操作。
S402查找索引表。根据查询条件,生成索引表的查询条件并查询,返回查询到的原表的主键值。
S403查找原表。根据返回的主键值,获取查询数据。
S404返回查询结果。
对低频字段建立概要索引,概要索引由概要森林实现,概要森林由概要树构成。对原表中的数据进行分段,每段得到一个概要信息包,概要信息包中包含了这段数据的概要信息。这些概要信息包组成了概要树的叶子节点,每两个相邻节点有一个父节点,父节点又包含了子节点的概要信息。概要树的构建流程如下:
S501数据分段。将表中数据分为等长的段。
S502概要提取。对第一段的数据提取概要信息包,概要信息包可以包含最大值、最小值、平均值、求和。做概要索引时通常包含了最大值,最小值。
S503建立叶子节点。对每一个概要信息包建立叶子节点,节点中存储了概要信息包和数据段的始点与终点。
S504递归生成父节点。相邻的两个叶子节点,生成一个父节点。父节点存储的信息包含了两个叶子节点的信息。递归地生成父节点的父节点,直到生成根节点。
S505完成构建概要树。
由于数据是源源不断地存储进数据库的,所以为了更好的构建索引,使用概要森林来来存储索引信息。概要森林由若干个概要树组成。每当新增加的数据组成一个数据段时,生成一个叶子节点,如果原概要森林中也有一个单独的叶子结点时,则这两个叶子节点构成一个深度为2的概要树。同时,若原概要森林中已有一个深度为2的概要树时,与新的深度为2的概要树生成一个深度为3的概要树,以此类推。具体操作流程如下:
S601存储新数据。
S602生成数据段。当新数据量达到一个数据段的数据量时,生成一个数据段。
S603生成叶子节点。从新组成的数据段中生成一个叶子节点。
S604合并概要树。当概要森林中存在深度相同的两颗概要树时,合并这两颗概要树,直到概要森林中不存在深度相同的树。
S605完成构建概要森林。
概要索引的查询操作与详细索引查询不同,概要索引的查询操作需要在概要森林中遍历,找到包含查找信息的叶子节点,然后叶子节点的概要信息生成小范围的范围扫描查询。具体操作流程如下:
S701发起查询。发起非主键的条件查询操作。
S702获取根节点。在概要森林中,根据查询条件,获取包含查询结果的概要树的根节点。
S703获取叶子节点。从概要树的根节点开始,遍历查找符合查询要求的节点,直到找到叶子节点。
S704生成扫描查询。根据叶子节点包含的信息生成原表的区间范围扫描查询。
S705执行扫描查询。根据得到的扫描查询进行查询。如果有多个扫描查询,最后将多外扫描查询的结果进行合并。
S706返回查询结果。
本发明所述的混合索引方法可以应用到不支持非主键字段索引查询的键值对非关系型数据库中,本发明应用到Apache的HBase分布式非关系型数据库中进行实验验证,在原数据库的基础上建立了非主键字段的索引信息,提升了非主键作为查询条件时的检索效率。具体方法描述如图9所示。
以国内某主流银行的真实的网络交易数据为基础,数据集包含了银行三个月的B2C交易记录,选取其中七个非主键字段建立索引。具体流程如下:
S1将B2C交易数据存入HBase中。
S2选取七个非主键字段建立索引。
S3初始状态,随机分配索引类型。
S4根据索引类型,建立相应的索引信息。
S5按照图9所示的流程进行数据检索,最后得到字段的相应索引类型及索引信息。

Claims (5)

1.一种非关系型数据库动态混合索引方法,其特征在于,包括以下步骤:
(1)定义非主键字段的权重,通过一个周期内字段作为查询条件的频次以及字段的历史权重,更新非主键字段的权重值,更新第i个非主键字段的权重值包括以下步骤:
S101、统计查询次数
周期性统计周期内查询次数tc以及以第i个非主键字段作为查询条件的查询次数vci
S102、计算概率值
计算出第i个非主键字段周期内的作为查询条件的概率值p(ci):
Figure FDA0003633509200000011
S103、计算周期内权重
结合其他字段的查询情况,计算出当前周期内第i个非主键字段的权重值ω(i):
Figure FDA0003633509200000012
S104、计算新权重
结合第i个非主键字段的第n-1个周期结束后的历史权重值,计算出第i个非主键字段的第n个周期的新权重值
Figure FDA0003633509200000013
Figure FDA0003633509200000014
式中,ρ表示衰减系数,代表了每过一个查询周期字段权重衰减的快慢程度,取值范围为[0,1];
S105返回新的权重值;
(2)动态划分索引类型
非主键字段的权重值定期更新的同时,更新非主键字段的索引类型,根据非主键字段的权重值,将非主键字段的索引类型划分为两类:高频字段和低频字段,包括以下步骤:
S201获取非主键字段权重
在第n个周期结束后,获取所有非主键字段的权重值并将权重值按序排列,排完序后作为计算的输入数据;
S202、设定一个阈值k;
S203、分离字段
将所有非主键字段分为两个集合,集合C0和集合C1,集合C0内的非主键字段的权重值小于阈值k,集合C1内的非主键字段的权重值大于等于阈值k;
S204、计算字段占比
计算集合C0和集合C1的字段占比ω0及ω1,ω01=1,且有:
Figure FDA0003633509200000021
Figure FDA0003633509200000022
式中,Si代表i个非主键字段的权重值;
S205、计算均值
计算集合C0中的非主键字段的权重均值μ0、集合C1中的非主键字段的权重均值μ1、所有非主键字段的权重均值μT
Figure FDA0003633509200000023
Figure FDA0003633509200000024
Figure FDA0003633509200000025
S206、计算方差
通过均值计算集合C0和集合C1两个部分之间的权重方差δ2(k):
δ2(k)=ω00T)+ω11T)
S207、重新设定一个阈值k后返回步骤S203,直至遍历阈值k的所有可能值,进入步骤S208;
S208得到最终阈值
将权重方差δ2(k)最大时对应的阈值为最终阈值;
S209、将权重值大于阈值的非主键字段划分为高频字段,反之划分为低频字段;
(3)进行混合索引,建立键值对非关系型数据库的非主键索引结构
针对高频字段建立详细索引以支持快速查询,对于低频字段建立摘要索引。
2.如权利要求1所述的一种非关系型数据库动态混合索引方法,其特征在于,步骤(3)中,建立详细索引包括以下步骤:
S301确定字段
确定需要建立详细索引的非主键字段;
S302建立索引信息
将非主键字段对应的属性值以及该条非主键字段对应记录的主键值进行合并生成索引信息的主键,主键格式如下:
<CSN+Sep+Val+Sep+RecordRowKey>
式中,CSN为索引字段别名;Val为原表中索引字段对应的值;RecordRowKey为原表的主键;Sep为分隔符;
S303插入索引表
将得到的索引信息插入在索引表中,供查询使用;
S304处理所有数据
建立表中所有数据的索引信息。
3.如权利要求2所述的一种非关系型数据库动态混合索引方法,其特征在于,步骤(3)中,快速查询包括以下步骤:
S401发起查询
发起非主键字段的条件查询操作;
S402查找索引表
根据查询条件,生成索引表的查询条件并查询,返回查询到的原表的主键值;
S403查找原表
根据返回的主键值,获取查询数据;
S404返回查询结果。
4.如权利要求1所述的一种非关系型数据库动态混合索引方法,其特征在于,步骤(3)中,摘要索引由概要森林实现,概要森林由概要树构成,概要树的构建流程如下:
S501、数据分段
将表中数据分为等长的段;
S502、概要提取
对第一段的数据提取概要信息包,概要信息包包含最大值、最小值、平均值、求和;
S503、建立叶子节点
对每一个概要信息包建立叶子节点,节点中存储了概要信息包和数据段的始点与终点;
S504、递归生成父节点
相邻的两个叶子节点,生成一个父节点,父节点存储的信息包含了两个叶子节点的信息,递归地生成父节点的父节点,直到生成根节点;
S505、完成构建概要树;
概要森林的构建流程如下:
S601、存储新数据
S602、生成数据段
当新数据量达到一个数据段的数据量时,生成一个数据段;
S603、生成叶子节点
从新组成的数据段中生成一个叶子节点;
S604、合并概要树
当概要森林中存在深度相同的两颗概要树时,合并这两颗概要树,直到概要森林中不存在深度相同的概要树;
S605、完成构建概要森林。
5.如权利要求4所述的一种非关系型数据库动态混合索引方法,其特征在于,步骤(3)中,基于摘要索引进行查询包括以下步骤:
S701、发起查询
发起非主键字段的条件查询操作;
S702、获取根节点
在概要森林中,根据查询条件,获取包含查询结果的概要树的根节点;
S703、获取叶子节点
从概要树的根节点开始,遍历查找符合查询要求的节点,直到找到叶子节点;
S704、生成扫描查询
根据叶子节点包含的信息生成原表的区间范围扫描查询;
S705、执行扫描查询
根据得到的扫描查询进行查询,如果有多个扫描查询,最后将多个 扫描查询的结果进行合并;
S706、返回查询结果。
CN201910327502.8A 2019-04-23 2019-04-23 一种非关系型数据库动态混合索引方法 Active CN110069500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910327502.8A CN110069500B (zh) 2019-04-23 2019-04-23 一种非关系型数据库动态混合索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910327502.8A CN110069500B (zh) 2019-04-23 2019-04-23 一种非关系型数据库动态混合索引方法

Publications (2)

Publication Number Publication Date
CN110069500A CN110069500A (zh) 2019-07-30
CN110069500B true CN110069500B (zh) 2022-08-26

Family

ID=67368427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910327502.8A Active CN110069500B (zh) 2019-04-23 2019-04-23 一种非关系型数据库动态混合索引方法

Country Status (1)

Country Link
CN (1) CN110069500B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125158B (zh) * 2019-11-08 2023-03-31 泰康保险集团股份有限公司 数据表处理方法、装置、介质及电子设备
CN111400320B (zh) * 2020-03-18 2023-06-20 百度在线网络技术(北京)有限公司 用于生成信息的方法和装置
CN113076456A (zh) * 2021-03-25 2021-07-06 咪咕文化科技有限公司 一种数据搜索处理方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013082507A1 (en) * 2011-11-30 2013-06-06 Decarta Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
CN104850572A (zh) * 2014-11-18 2015-08-19 中兴通讯股份有限公司 HBase非主键索引构建与查询方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013082507A1 (en) * 2011-11-30 2013-06-06 Decarta Systems and methods for performing geo-search and retrieval of electronic point-of-interest records using a big index
CN104850572A (zh) * 2014-11-18 2015-08-19 中兴通讯股份有限公司 HBase非主键索引构建与查询方法及其系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Full-fledged semantic indexing and querying model designed for seamless integration in legacy RDBMS;Joe Tekli;《ELSEVIER》;20180930;全文 *
一种使用索引式备份的范围查询方法;薛翔;《小型微型计算机系统》;20180831;第39卷(第8期);全文 *

Also Published As

Publication number Publication date
CN110069500A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110069500B (zh) 一种非关系型数据库动态混合索引方法
CN106933833B (zh) 一种基于空间索引技术的位置信息快速查询方法
CN110059264B (zh) 基于知识图谱的地点检索方法、设备及计算机存储介质
KR100903961B1 (ko) 시그니처 파일을 이용한 고차원 데이터 색인 및 검색방법과 그 시스템
US20140156606A1 (en) Method and System for Integrating Data Into a Database
Song et al. Solutions for processing k nearest neighbor joins for massive data on mapreduce
CN106874425B (zh) 基于Storm的实时关键词近似搜索算法
CN108052514A (zh) 一种处理地理文本Skyline查询的混合空间索引机制
EP3101556B1 (en) Indexing dynamic hierarchical data
CN110275929B (zh) 一种基于网格分割的候选路段筛选方法及网格分割方法
CN109408681A (zh) 一种字符串匹配方法、装置、设备及可读存储介质
CN106991149B (zh) 一种融合编码和多版本数据的海量空间对象存储方法
CN107451302A (zh) 滑动窗口下基于位置top‑k关键词查询的建模方法及系统
CN110334290B (zh) 一种基于MF-Octree的时空数据快速检索方法
CN107562762B (zh) 数据索引构建方法及装置
CN108549696B (zh) 一种基于内存计算的时间序列数据相似性查询方法
CN108628969B (zh) 一种空间关键字索引方法及平台、存储介质
CN110580252A (zh) 多目标优化下的空间对象索引与查询方法
CN105025013A (zh) 基于优先级Trie树的动态IP匹配模型
Desai et al. Issues and challenges in big graph modelling for smart city: an extensive survey
CN104794237B (zh) 网页信息处理方法及装置
CN113448994B (zh) 一种基于核心集的连续遗憾率最小化查询方法
Svynchuk et al. Modification of query processing methods in distributed databases using fractal trees
CN108304449B (zh) 基于自适应数据集划分方式的大数据Top-k查询方法
CN112287185A (zh) 一种结合vp树和导向近邻图的近似最近邻搜索方法

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