CN109299102A - 一种基于Elastcisearch的HBase二级索引系统及方法 - Google Patents

一种基于Elastcisearch的HBase二级索引系统及方法 Download PDF

Info

Publication number
CN109299102A
CN109299102A CN201811233194.4A CN201811233194A CN109299102A CN 109299102 A CN109299102 A CN 109299102A CN 201811233194 A CN201811233194 A CN 201811233194A CN 109299102 A CN109299102 A CN 109299102A
Authority
CN
China
Prior art keywords
hbase
secondary index
elasticsearch
data
index
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
Application number
CN201811233194.4A
Other languages
English (en)
Other versions
CN109299102B (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.)
CETC 28 Research Institute
Original Assignee
CETC 28 Research Institute
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 CETC 28 Research Institute filed Critical CETC 28 Research Institute
Priority to CN201811233194.4A priority Critical patent/CN109299102B/zh
Publication of CN109299102A publication Critical patent/CN109299102A/zh
Application granted granted Critical
Publication of CN109299102B publication Critical patent/CN109299102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种基于Elastcisearch的HBase二级索引系统,该系统包括数据表设计模块,键值匹配模块,行键返回模块,多表联合查询模块,标准SQL查询模块和接口模块。具体包括设计基于分布式列数据库的二级索引,利用二级索引技术为分布式列数据库的列值建立索引系统,并通过协处理器技术实现索引表的高效自动安全创建,打破HBase自身缺乏列族索引的缺陷;支持索引的动态增加或减少,减少随机查询带来的大量网络开销,提高二级索引的可扩展性和实用性;针对分布式数据存储SQL操作能力弱的问题,设计SQL解析器和执行器,构建并行SQL查询引擎,通过利用分布式列数据库API,协处理器和过滤器,将SQL操作转换为Region扫描操作,并充分利用二级索引机制,实现高效的并行SQL查询。

Description

一种基于Elastcisearch的HBase二级索引系统及方法
技术领域
本发明涉及一种索引系统及方法,具体涉及一种基于Elastcisearch的HBase二级索引系统及方法。
背景技术
随着数据量的爆炸式增长,文件系统的规模也在不断膨胀,系统中文件数量达到千万甚至上亿,文件系统管理员和用户都需要通过文件元数据来定位需要的文件,如何组织和索引分布式文件系统的海量元数据是一项亟待解决的问题。
HBase是运行在Hadoop之上的NoSQL,它是一个分布式和可扩展的大数据仓库,它能融合key/value的存储模式来实时查询,以及通过Mapreduce进行离线处理或者批处理。但是,随着在HBase系统上应用的驱动,发现Global-Rowkey-Index不再满足应用的需求。单一的通过Rowkey检索数据的方式不再满足更多的应用需求,由于HBase基于行健有序存储,在查询时使用Rowkey仍然十分有效,然后想要实现关系型数据库那样的随意组合的多条件查询、查询总记录数、分页等就比较麻烦,而且现有的分布式数据查询主要使用Hive,Hive可将SQL操作转换为一连串MapReduce任务,提交到MapReduce计算引擎进行处理,因此效率较低因此。基于HBase设计和实现二级索引与标准SQL查询来满足复杂业务需求以及实时检索非常必要。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于Elastcisearch的HBase二级索引系统及方法,可以解决查询效率低以及不能实现复杂业务需求检索和实时检索的问题。
技术方案:一方面,本发明所述的基于Elastcisearch的HBase二级索引系统,该系统包括数据表设计模块,用于在所述HBase数据表中为需要创建索引的列创建二级索引,并可对二级索引进行维护;HBase包含保存所述HBase数据表相关信息的HTableDescriptor类,在所述HTableDescriptor类中添加变量secondIndexs,所述变量secondIndexs以JSON的形式保存所述HBase数据表中创建的二级索引列;
键值匹配模块,将HBase的行键作为ElasticSearch中的唯一键,HBase一行记录即为ElasticSearch中的一行,即二级索引表的行即为唯一标识HBase数据表中的一行,得到ElasticSearch索引表;
行键返回模块,在索引阶段,ElasticSearch向HBase返回查询时匹配的行键集合,将HBase数据表中需要建立二级索引的列以JSON的形式添加到所述ElasticSearch索引表中,作为ElasticSearch索引的一个列;
多表联合查询模块,用于通过ElasticSearch的套接字nested和parent-child,使得所述HBase数据表支持多表关联查询;
标准SQL查询模块,获取用户输入的SQL语句,并将SQL语句发送到Elasticsearch的Calcite,并接收所述Calcite返回的查询结果集,所述Calcite根据元数据对接收到的SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,并返回查询结果集。
优选的,接口模块,用于与其他模块交互数据,提供外部接口,提供数据存储、上层应用以及其他模块可调用接口模块的接口。
优选的,所述创建二级索引,并对二级索引进行维护的方法为:使用HBase的Coprocessor同时为多张的多列数据创建索引,并实现HBase数据表修改、删除,以及数据的插入、更新、删除和恢复操作实现相应的回调函数,通过回调函数向ElasticSearch发送相关请求,实现在ElasticSearch中自动为HBase建立和维护二级索引,形成二级索引表,所述二级索引表跟主表在同一个HRegionServer上。
优选的,所述附加规则包括过滤规则、排序规则和聚合规则。
另一方面,本发明提供一种基于Elastcisearch的HBase二级索引方法,该方法包括以下步骤:
(1)在所述HBase数据表中为需要创建索引的列创建二级索引,并对二级索引进行维护;HBase包含保存所述HBase数据表相关信息的HTableDescriptor类;
(2)在所述HTableDescriptor类中添加变量secondIndexs,所述变量secondIndexs以JSON的形式保存所述HBase数据表中创建的二级索引列;
(3)将HBase的行键作为ElasticSearch中的唯一键,HBase一行记录即为ElasticSearch中的一行,即二级索引表的行即为唯一标识HBase数据表中的一行,得到ElasticSearch索引表;
(4)在索引阶段,ElasticSearch向HBase返回查询时匹配的行键集合,将HBase数据表中需要建立二级索引的列以JSON的形式添加到所述ElasticSearch索引表中,作为ElasticSearch索引的一个列;
(5)通过ElasticSearch的套接字nested和parent-child,使得所述HBase数据表支持多表关联查询;
(6)获取用户输入的SQL语句,并将SQL语句发送到Calcite,并接收Calcite返回的查询结果集,所述Calcite根据元数据对接收到的SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,并返回查询结果集。
优选的,所述创建二级索引,并对二级索引进行维护的方法为:使用HBase的Coprocessor同时为多张的多列数据创建索引,并实现HBase数据表修改、删除,以及数据的插入、更新、删除和恢复操作实现相应的回调函数,通过回调函数向ElasticSearch发送相关请求,实现在ElasticSearch中自动为HBase建立和维护二级索引,形成二级索引表,所述二级索引表跟主表在同一个HRegionServer上。
优选的,所述附加规则包括过滤规则、排序规则和聚合规则。
有益效果:本发明与现有技术相比,其显著优点是:1、针对基于Lucene的全文索引技术,结合大数据存储和查询性能要求,比较Solr和ElasticSearch开源工具,设计基于ElasticSearch的全文检索,构建HBase二级检索方法;2、通过ElasticSearch套接字方法,设计HBase二级检索表结构,使HBase二级检索支持多表关联查询;3、通过Calcite建立一个关系模型,然后通过标准SQL查询这些数据。
附图说明
图1是本发明所述的系统ESIHBase的结构图;
图2是本发明HBase二级索引模块二级索引整体结构图;
图3为本发明HBase二级索引数据插入时索引创建流程图;
图4为本发明HBase二级索引索引删除流程图;
图5为本发明HBase二级索引数据检索流程图;
图6为本发明基于Calcite的sql查询Elasticsearch的整体结构图;
图7为本发明基于Calcite的sql查询Elasticsearch流程图;
图8为本发明所述的方法流程图。
具体实施方式
如图1所述,本发明基于大数据开源软件,针对非结构化数据,基于列数据的高效索引技术,设计基于分布式列数据库的二级索引方法,利用二级索引技术为分布式列数据库的列值建立索引系统,并通过协处理器技术实现索引表的高效自动安全创建,打破HBase自身缺乏列族索引的缺陷。本发明系统支持索引的动态增加或减少,减少随机查询带来的大量网络开销,提高二级索引的可扩展性和实用性。另外,由于现有的基于Hadoop的SQL查询主要使用Hive,将SQL操作转换为MapReduce任务,效率较低,本发明针对分布式数据存储SQL操作能力弱的问题,设计SQL解析器和执行器,构建并行SQL查询引擎,通过利用分布式列数据库API,协处理器和过滤器,将SQL操作转换为Region扫描操作,并充分利用二级索引机制,实现高效的并行SQL查询。
一种基于ElasticSearch的HBase二级索引系统,即ElasticSearch Second Indexon HBase(ESIHBase)。ESIHBase包括数据表设计模块,在用户设计HBase数据表时根据需要为表中的某些列建立二级索引,建立的是全文索引。HBase表描述类HTableDescriptor中有表名等信息,为了管理和维护的方便,本发明修改了HBase的HTableDescriptor类,除了包含如表名、列族等表基本信息,本发明还在该类中添加了一个类型为List<index1,index2,...,indexn>的secondIndexs变量,其中,n建立索引的列总数,该变量以JSON的形式保存表中创建的二级索引列。本发明同时设计提供了对应的二级索引创建方法put()、索引删除方法delete()、检索方法check()、清除方法clear()和获取方法ge()等。关于二级索引操作方法会在下面的步骤中加以说明。建立二级索引的列都以字符串“idx”作为列修饰符的前缀,以便识别哪些列上创建了二级索引。
如图2所示,本发明中将HBase强大的存储能力和ElasticSearch的快速检索能力通过HBase的Coprocessor框架结合起来,使用Coprocessor为HBase数据表的创建、修改、删除以及数据的插入、更新、删除和恢复等操作都实现了相应的回调函数,通过回调函数向ElasticSearch发送相关请求,以实现在ElasticSearch中自动为HBase建立和维护二级索引,保证数据与索引的一致性。索引表跟主表在同一个HRegionServer上,在查询的时候就可以少一次远程过程调用,提高查询效率。该方案具有良好的通用性,可以同时为多张表的多列数据建立索引。二级索引针对HBase数据表中的row key一级索引而言的,其原理就是针对数据表主键(row key)外的某个或者某些字段列建立的类似于“键-值”对的数据结构,以列的值作为“键”,以该列值对应的row key作为“值”,并按“键”的值进行排序,利用B+树或者其他查找效率高的数据结构进行存储,以建立“列值”到row key的映射关系。
如图3所示,向HBase中插入数据索引动态建立过程。HBase中是通过客户端的HTable.put()操作向表中插入数据的,因此只需要继承HBase协处理器框架中的BaseRegionObserver类,并实现其中的postPut()方法就可以实现在HBase插入数据时同步向ElasticSearch写入索引数据的钩子函数put()。BaseRegionObserver的子类ElasticSearchIndexingObserver实现了postPut()的方法,在HTable.put()执行之后,向ElasticSearch中写入二级索引数据。由于在HBase中进行数据更新和ElasticSearch中进行索引更新都是通过数据的插入操作完成的,所以可以将二级索引的更新操作合并到插入操作进行分析设计。
如图4所示,删除二级索引是由多种情况导致的,涉及到表级操作而导致二级索引被删除的情况包括HBase表中列的删除、二级索引列的撤销以及表的删除等情况。另外,HBase在删除数据时也会导致二级索引的同步删除。如果按照row key删除数据,这与二级索引的插入过程十分类似,有所不同的是HBase使用Put类存储插入时的相关信息,而使用Delete类存储删除时的相关信息。因此,在这种情况下也需要对Delete类进行扩展,添加secondIndexs变量用于存储哪些列建立了二级索引及其在ElasticSearch中对应的列名,并为secondIndexs添加相应的添加索引和获取索引方法来修改和获取secondIndexs变量内容。然后在ESIndexingObserver中实现preDelete()钩子函数的相关功能,调用ElasticSearch Java的API函数Delete()通过row key可以删除二级索引。
如图5所示,用户通过HBase client提供的API可以在ElasticSearch中进行多条件的复杂查询,并快速得到查询结果。由于ElasticSearch中的列可以选择是否存储,如果查询条件中需要的结果已经存储在ElasticSearch中,则可以直接向用户返回其需要的结果;如果没有存储,则会向用户返回该列值对应的Document ID,Document ID存储的是HBase对应的row key,用户获取到满足条件的row key集合后通过Table.get()的方式按row key在HBase查询需要的数据。
键值匹配模块,在HBase数据表设计完成之后,将HBase的行键(row key)作为ElasticSearch中的uniqueKey,用于唯一标识HBase数据表中的一行记录,此时HBase一行记录即为ElasticSearch中的一行,即二级索引表的行即为唯一标识HBase数据表中的一行。
行键返回模块,在索引阶段,ElasticSearch向HBase返回查询时匹配的行键集合,将HBase数据表中需要建立二级索引的列以JSON的形式添加到所述ElasticSearch索引表中,作为ElasticSearch索引的一个列;
多表联合查询模块,用于通过ElasticSearch的套接字nested和parent-child,使得所述HBase数据表支持多表关联查询;使用套接字进行表关联查询,是ElasticSearch表关联查询的唯一途径。但是套接字方式使用起来简单,难点在与表设计,设计合理了,才能使用套接字方式进行表关联查询。本实现方式是为了ElasticSearch能支持标准SQL查询而设计的,ElasticSearch查询语句本身比较复杂,不如标准SQL来的简单易上手。
标准SQL查询模块,获取用户输入的SQL语句,并将SQL语句发送到Elasticsearch的Calcite,并接收所述Calcite返回的查询结果集,所述Calcite根据元数据对接收到的SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,并返回查询结果集;
支持标准SQL查询模块针对分布式数据存储SQL操作能力弱的问题,设计SQL解析器和执行器,构建并行SQL查询引擎,通过利用分布式列数据库API,协处理器和过滤器,将SQL操作转换为Region扫描操作,并充分利用二级索引机制,实现高效的并行SQL查询。
图6为本发明标准SQL查询支持模块设计框图,展示了Elasticsearch。二级检索数据存储于全文检索引擎(Lucene Storage EngineCluster,在本发明中即为Elasticsearch)中,ODBC和JDBC用于获取用户输入的SQL语句,并将SQL语句发送到Calcite,并接收calcite返回的查询结果集。Calcite根据提供的元数据对接收到的SQL语句进行元数据验证;在验证通过后对SQL语句进行解析得到SQL语法树;利用附加规则将SQL语法树转换为elasticsearch可执行的匹配条件和查询执行动作,返回查询结果集。Cluster State Synchronizer为分布式集群状态同步器。
图7为本发明支持上层应用标准SQL查询解析流程。获取输入的SQL语句,根据提供的元数据对所述SQL语句进行元数据验证,在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,返回查询结果集。本方案解析SQL语句,完成SQL至Elasticsearch Java API的适配和优化。SQL On Elasticsearch相当于一个中间件,接收SQL语句作为输入,然后解析、优化、转换为Elasticsearch所能接受的API,查询得到Elasticsearch的数据后,作为结果输出。
具体实现细节如下
(1)元数据验证。
获取Elasticsearch连接的相关信息指挥,创建ElasticsearchSchema实例以表征一个数据库对象。其中,ElasticsearchSchema初始化操作建立与Elasticsearch服务器的连接;通过覆写Table类中二级索引表获取函数getTableMap()使calcite可通过表名找到Table实例;通过覆写Table类中的getRowType()方法以提供字段名称以及类型元数据。
(2)附加规则说明。
附加规则包括:过滤规则、排序规则和聚合规则。其中,排序规则为一个或多个字段的升序或降序,聚合规则为实现SQL聚合函数至Elasticsearch聚合API的映射。
过滤规则具体为:将SQL语法树中第一符号翻译为elasticsearch中的rangeQuery;在SQL的模式匹配中,若模式串不以第二符号开头,则翻译为elasticsearch中的prefixQuery,否则翻译为elasticsearch中的wildcardQuery;将where子句中的和以及或逻辑,翻译为elasticsearch中的boolQuery。第一符号为>、>=、<或<=;第二符号为_或%。
(3)标准SQL转成elasticsearch可执行语句
根据所述元数据的字段类型信息对所述elasticsearch返回的数据进行转换,并利用迭代器返回查询结果集。
在分析了元数据访问、查找、分布特性的基础上,本发明给出了一种分布数据库高效索引与查询的方法,该方法使用基于Lucene的Elasticsearch开源搜索引擎,为分布式文件系统元数据建立全文倒排表,支持元数据列的扩展,动态创建索引,提供多表联合查询和标准SQL查询方法。本发明能弥补HBase不能不能根据应用需求动态创建索引提高查询效率的弊端,能极大的提高分布式数据库数据查询的效率。
接口模块用于与其他模块交互数据;提供Jave、Python、Restful外部接口,提供数据存储、上层应用以及其他模块可调用接口模块的接口。
如图8所示,在上述系统的基础上,本发明提供一种基于Elastcisearch的HBase二级索引方法,该方法包括以下步骤:
(1)在所述HBase数据表中为需要创建索引的列创建二级索引,并对二级索引进行维护;HBase包含保存所述HBase数据表相关信息的HTableDescriptor类;
(2)在所述HTableDescriptor类中添加变量secondIndexs,所述变量secondIndexs以JSON的形式保存所述HBase数据表中创建的二级索引列;
(3)将HBase的行键作为ElasticSearch中的唯一键,HBase一行记录即为ElasticSearch中的一行,即二级索引表的行即为唯一标识HBase数据表中的一行,得到ElasticSearch索引表;
(4)在索引阶段,ElasticSearch向HBase返回查询时匹配的行键集合,将HBase数据表中需要建立二级索引的列以JSON的形式添加到所述ElasticSearch索引表中,作为ElasticSearch索引的一个列;
(5)通过ElasticSearch的套接字nested和parent-child,使得所述HBase数据表支持多表关联查询;
(6)获取用户输入的SQL语句,并将SQL语句发送到Calcite,并接收Calcite返回的查询结果集,所述Calcite根据元数据对接收到的SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,并返回查询结果集。
本发明提供了一种基于ElasticSearch的HBase二级索引系统及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干算法改进和性能提升,这些改进也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (7)

1.一种基于Elastcisearch的HBase二级索引系统,其特征在于,该系统包括数据表设计模块,用于在所述HBase数据表中为需要创建索引的列创建二级索引,并可对二级索引进行维护;HBase包含保存所述HBase数据表相关信息的HTableDescriptor类,在所述HTableDescriptor类中添加变量secondIndexs,所述变量secondIndexs以JSON的形式保存所述HBase数据表中创建的二级索引列;
键值匹配模块,将HBase的行键作为ElasticSearch中的唯一键,HBase一行记录即为ElasticSearch中的一行,即二级索引表的行即为唯一标识HBase数据表中的一行,得到ElasticSearch索引表;
行键返回模块,在索引阶段,ElasticSearch向HBase返回查询时匹配的行键集合,将HBase数据表中需要建立二级索引的列以JSON的形式添加到所述ElasticSearch索引表中,作为ElasticSearch索引的一个列;
多表联合查询模块,用于通过ElasticSearch的套接字nested和parent-child,使得所述HBase数据表支持多表关联查询;
标准SQL查询模块,获取用户输入的SQL语句,并将SQL语句发送到Elasticsearch的Calcite,并接收所述Calcite返回的查询结果集,所述Calcite根据元数据对接收到的SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,并返回查询结果集。
2.根据权利要求1所述的基于Elastcisearch的HBase二级索引系统,其特征在于,还包括接口模块,用于与其他模块交互数据,提供外部接口,提供数据存储、上层应用以及其他模块可调用接口模块的接口。
3.根据权利要求1所述的基于Elastcisearch的HBase二级索引系统,其特征在于,所述创建二级索引,并对二级索引进行维护的方法为:使用HBase的Coprocessor同时为多张的多列数据创建索引,并实现HBase数据表修改、删除,以及数据的插入、更新、删除和恢复操作实现相应的回调函数,通过回调函数向ElasticSearch发送相关请求,实现在ElasticSearch中自动为HBase建立和维护二级索引,形成二级索引表,所述二级索引表跟主表在同一个HRegionServer上。
4.根据权利要求1所述的基于Elastcisearch的HBase二级索引系统,其特征在于,所述附加规则包括过滤规则、排序规则和聚合规则。
5.一种基于Elastcisearch的HBase二级索引方法,其特征在于,该方法包括以下步骤:
(1)在所述HBase数据表中为需要创建索引的列创建二级索引,并对二级索引进行维护;HBase包含保存所述HBase数据表相关信息的HTableDescriptor类;
(2)在所述HTableDescriptor类中添加变量secondIndexs,所述变量secondIndexs以JSON的形式保存所述HBase数据表中创建的二级索引列;
(3)将HBase的行键作为ElasticSearch中的唯一键,HBase一行记录即为ElasticSearch中的一行,即二级索引表的行即为唯一标识HBase数据表中的一行,得到ElasticSearch索引表;
(4)在索引阶段,ElasticSearch向HBase返回查询时匹配的行键集合,将HBase数据表中需要建立二级索引的列以JSON的形式添加到所述ElasticSearch索引表中,作为ElasticSearch索引的一个列;
(5)通过ElasticSearch的套接字nested和parent-child,使得所述HBase数据表支持多表关联查询;
(6)获取用户输入的SQL语句,并将SQL语句发送到Calcite,并接收Calcite返回的查询结果集,所述Calcite根据元数据对接收到的SQL语句进行元数据验证;在验证通过后对所述SQL语句进行解析得到SQL语法树,利用附加规则将所述SQL语法树转换为Elasticsearch可执行的匹配条件和查询执行动作,并返回查询结果集。
6.根据权利要求5所述的基于Elastcisearch的HBase二级索引方法,其特征在于,所述创建二级索引,并对二级索引进行维护的方法为:使用HBase的Coprocessor同时为多张的多列数据创建索引,并实现HBase数据表修改、删除,以及数据的插入、更新、删除和恢复操作实现相应的回调函数,通过回调函数向ElasticSearch发送相关请求,实现在ElasticSearch中自动为HBase建立和维护二级索引,形成二级索引表,所述二级索引表跟主表在同一个HRegionServer上。
7.根据权利要求5所述的基于Elastcisearch的HBase二级索引方法,其特征在于,所述附加规则包括过滤规则、排序规则和聚合规则。
CN201811233194.4A 2018-10-23 2018-10-23 一种基于Elastcisearch的HBase二级索引系统及方法 Active CN109299102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811233194.4A CN109299102B (zh) 2018-10-23 2018-10-23 一种基于Elastcisearch的HBase二级索引系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811233194.4A CN109299102B (zh) 2018-10-23 2018-10-23 一种基于Elastcisearch的HBase二级索引系统及方法

Publications (2)

Publication Number Publication Date
CN109299102A true CN109299102A (zh) 2019-02-01
CN109299102B CN109299102B (zh) 2020-11-13

Family

ID=65158382

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811233194.4A Active CN109299102B (zh) 2018-10-23 2018-10-23 一种基于Elastcisearch的HBase二级索引系统及方法

Country Status (1)

Country Link
CN (1) CN109299102B (zh)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815219A (zh) * 2019-02-18 2019-05-28 国家计算机网络与信息安全管理中心 支持多数据库引擎的数据生命周期管理的实现方法
CN110147377A (zh) * 2019-05-29 2019-08-20 大连大学 大规模空间数据环境下基于二级索引的通用查询算法
CN110245134A (zh) * 2019-04-26 2019-09-17 石化盈科信息技术有限责任公司 一种应用于搜索服务的增量同步方法
CN110489478A (zh) * 2019-08-27 2019-11-22 恩亿科(北京)数据科技有限公司 一种数据扫描的方法及装置
CN110502607A (zh) * 2019-06-26 2019-11-26 中电万维信息技术有限责任公司 一种电子病历系统、查询电子病历的方法及服务器
CN110688382A (zh) * 2019-09-25 2020-01-14 深圳市赛为智能股份有限公司 数据存储查询方法、装置、计算机设备及存储介质
CN111143460A (zh) * 2019-12-30 2020-05-12 智慧神州(北京)科技有限公司 基于大数据的经济领域的数据的检索方法、装置与处理器
CN111159185A (zh) * 2019-12-27 2020-05-15 紫光云(南京)数字技术有限公司 基于条件下推elasticsearch的hive索引方法
CN111177303A (zh) * 2019-12-18 2020-05-19 紫光云(南京)数字技术有限公司 基于phoenix的Hbase二级全文索引方法及系统
CN111352956A (zh) * 2020-02-24 2020-06-30 交通运输部水运科学研究所 一种航运大数据的采集存储系统
CN111563095A (zh) * 2020-04-30 2020-08-21 上海新炬网络信息技术股份有限公司 一种基于HBase的数据检索装置
CN111625544A (zh) * 2020-05-27 2020-09-04 贵州易鲸捷信息技术有限公司 SQL On HBase上基于字符串切分的倒排索引的方法及系统
CN111680043A (zh) * 2020-06-05 2020-09-18 南京莱斯信息技术股份有限公司 一种针对海量数据进行快速检索方法
CN111767309A (zh) * 2020-07-07 2020-10-13 中电万维信息技术有限责任公司 一种基于开关设计模式优化检索的方法
CN112000666A (zh) * 2020-08-04 2020-11-27 广州未名中智教育科技有限公司 一种面向列的数据库管理系统
CN112131295A (zh) * 2020-09-27 2020-12-25 平安医疗健康管理股份有限公司 基于Elasticsearch的数据处理方法及设备
CN112148731A (zh) * 2020-08-13 2020-12-29 新华三大数据技术有限公司 一种数据分页查询方法、装置及存储介质
CN112416925A (zh) * 2020-11-02 2021-02-26 浙商银行股份有限公司 基于有序分布式索引结构的查询方法和分布式数据库系统
CN112434002A (zh) * 2020-12-25 2021-03-02 冯凌云 一种基于HBase与Phoenix的低成本海量结构化数据快速检索方法
CN112632157A (zh) * 2021-03-11 2021-04-09 全时云商务服务股份有限公司 一种分布式系统下的多条件分页查询方法
CN112749162A (zh) * 2020-12-31 2021-05-04 浙江省方大标准信息有限公司 一种基于es的检验检测机构快速检索排序方法
CN112765200A (zh) * 2021-01-18 2021-05-07 武汉悦学帮网络技术有限公司 一种基于Elasticsearch的数据查询方法及装置
CN112800058A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 一种HBase二级索引的实现方法
CN113190577A (zh) * 2021-03-11 2021-07-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN113297273A (zh) * 2021-06-09 2021-08-24 北京百度网讯科技有限公司 查询元数据的方法、装置和电子设备
CN113609129A (zh) * 2021-07-29 2021-11-05 沈阳蓝天智慧燃气供热有限公司 一种基于大数据的热能监控综合检索方法
CN113626473A (zh) * 2021-08-17 2021-11-09 北京京东振世信息技术有限公司 数据信息查询方法和装置
WO2021232645A1 (zh) * 2020-05-21 2021-11-25 浙江邦盛科技有限公司 一种提升聚合查询效率的聚合索引结构及聚合索引方法
CN114090589A (zh) * 2022-01-20 2022-02-25 苏州浪潮智能科技有限公司 基于HBase的数据查询方法、装置和计算机设备
CN114706625A (zh) * 2022-03-29 2022-07-05 智业软件股份有限公司 构建患者信息全局查询插件的方法、装置及存储介质
US11386089B2 (en) 2020-01-13 2022-07-12 The Toronto-Dominion Bank Scan optimization of column oriented storage
CN116541427A (zh) * 2023-06-30 2023-08-04 腾讯科技(深圳)有限公司 数据查询方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104112013A (zh) * 2014-07-17 2014-10-22 浪潮(北京)电子信息产业有限公司 HBase二级索引方法及装置
CN106503243A (zh) * 2016-11-08 2017-03-15 国网山东省电力公司电力科学研究院 基于HBase二级索引的电力大数据查询方法及系统
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统
CN107506464A (zh) * 2017-08-30 2017-12-22 武汉烽火众智数字技术有限责任公司 一种基于ES实现HBase二级索引的方法
US20180285400A1 (en) * 2013-12-31 2018-10-04 International Business Machines Corporation Index maintenance based on a comparison of rebuild vs. update

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180285400A1 (en) * 2013-12-31 2018-10-04 International Business Machines Corporation Index maintenance based on a comparison of rebuild vs. update
CN104112013A (zh) * 2014-07-17 2014-10-22 浪潮(北京)电子信息产业有限公司 HBase二级索引方法及装置
CN106503243A (zh) * 2016-11-08 2017-03-15 国网山东省电力公司电力科学研究院 基于HBase二级索引的电力大数据查询方法及系统
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统
CN107506464A (zh) * 2017-08-30 2017-12-22 武汉烽火众智数字技术有限责任公司 一种基于ES实现HBase二级索引的方法

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815219A (zh) * 2019-02-18 2019-05-28 国家计算机网络与信息安全管理中心 支持多数据库引擎的数据生命周期管理的实现方法
CN110245134A (zh) * 2019-04-26 2019-09-17 石化盈科信息技术有限责任公司 一种应用于搜索服务的增量同步方法
CN110245134B (zh) * 2019-04-26 2021-07-06 石化盈科信息技术有限责任公司 一种应用于搜索服务的增量同步方法
CN110147377B (zh) * 2019-05-29 2022-12-27 大连大学 大规模空间数据环境下基于二级索引的通用查询方法
CN110147377A (zh) * 2019-05-29 2019-08-20 大连大学 大规模空间数据环境下基于二级索引的通用查询算法
CN110502607A (zh) * 2019-06-26 2019-11-26 中电万维信息技术有限责任公司 一种电子病历系统、查询电子病历的方法及服务器
CN110489478A (zh) * 2019-08-27 2019-11-22 恩亿科(北京)数据科技有限公司 一种数据扫描的方法及装置
CN110688382A (zh) * 2019-09-25 2020-01-14 深圳市赛为智能股份有限公司 数据存储查询方法、装置、计算机设备及存储介质
CN110688382B (zh) * 2019-09-25 2022-07-01 深圳市赛为智能股份有限公司 数据存储查询方法、装置、计算机设备及存储介质
CN111177303A (zh) * 2019-12-18 2020-05-19 紫光云(南京)数字技术有限公司 基于phoenix的Hbase二级全文索引方法及系统
CN111177303B (zh) * 2019-12-18 2021-04-09 紫光云(南京)数字技术有限公司 基于phoenix的Hbase二级全文索引方法及系统
CN111159185A (zh) * 2019-12-27 2020-05-15 紫光云(南京)数字技术有限公司 基于条件下推elasticsearch的hive索引方法
CN111143460A (zh) * 2019-12-30 2020-05-12 智慧神州(北京)科技有限公司 基于大数据的经济领域的数据的检索方法、装置与处理器
US11386089B2 (en) 2020-01-13 2022-07-12 The Toronto-Dominion Bank Scan optimization of column oriented storage
CN111352956A (zh) * 2020-02-24 2020-06-30 交通运输部水运科学研究所 一种航运大数据的采集存储系统
CN111563095A (zh) * 2020-04-30 2020-08-21 上海新炬网络信息技术股份有限公司 一种基于HBase的数据检索装置
CN111563095B (zh) * 2020-04-30 2023-05-26 上海新炬网络信息技术股份有限公司 一种基于HBase的数据检索装置
WO2021232645A1 (zh) * 2020-05-21 2021-11-25 浙江邦盛科技有限公司 一种提升聚合查询效率的聚合索引结构及聚合索引方法
US11928113B2 (en) 2020-05-21 2024-03-12 Zhejiang Bangsun Technology Co., Ltd. Structure and method of aggregation index for improving aggregation query efficiency
CN111625544B (zh) * 2020-05-27 2023-08-01 贵州易鲸捷信息技术有限公司 SQL On HBase上基于字符串切分的倒排索引的方法及系统
CN111625544A (zh) * 2020-05-27 2020-09-04 贵州易鲸捷信息技术有限公司 SQL On HBase上基于字符串切分的倒排索引的方法及系统
CN111680043B (zh) * 2020-06-05 2023-11-28 南京莱斯信息技术股份有限公司 一种针对海量数据进行快速检索方法
CN111680043A (zh) * 2020-06-05 2020-09-18 南京莱斯信息技术股份有限公司 一种针对海量数据进行快速检索方法
CN111767309B (zh) * 2020-07-07 2022-06-24 中电万维信息技术有限责任公司 一种基于开关设计模式优化检索的方法
CN111767309A (zh) * 2020-07-07 2020-10-13 中电万维信息技术有限责任公司 一种基于开关设计模式优化检索的方法
CN112000666A (zh) * 2020-08-04 2020-11-27 广州未名中智教育科技有限公司 一种面向列的数据库管理系统
CN112000666B (zh) * 2020-08-04 2024-02-20 广州未名中智教育科技有限公司 一种面向列的数据库管理系统
CN112148731B (zh) * 2020-08-13 2022-05-27 新华三大数据技术有限公司 一种数据分页查询方法、装置及存储介质
CN112148731A (zh) * 2020-08-13 2020-12-29 新华三大数据技术有限公司 一种数据分页查询方法、装置及存储介质
CN112131295A (zh) * 2020-09-27 2020-12-25 平安医疗健康管理股份有限公司 基于Elasticsearch的数据处理方法及设备
CN112416925B (zh) * 2020-11-02 2024-04-09 浙商银行股份有限公司 基于有序分布式索引结构的查询方法和分布式数据库系统
CN112416925A (zh) * 2020-11-02 2021-02-26 浙商银行股份有限公司 基于有序分布式索引结构的查询方法和分布式数据库系统
CN112434002A (zh) * 2020-12-25 2021-03-02 冯凌云 一种基于HBase与Phoenix的低成本海量结构化数据快速检索方法
CN112749162B (zh) * 2020-12-31 2021-08-17 浙江省方大标准信息有限公司 一种基于es的检验检测机构快速检索排序方法
CN112749162A (zh) * 2020-12-31 2021-05-04 浙江省方大标准信息有限公司 一种基于es的检验检测机构快速检索排序方法
CN112765200A (zh) * 2021-01-18 2021-05-07 武汉悦学帮网络技术有限公司 一种基于Elasticsearch的数据查询方法及装置
CN112800058A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 一种HBase二级索引的实现方法
CN113190577A (zh) * 2021-03-11 2021-07-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN113190577B (zh) * 2021-03-11 2022-08-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN112632157A (zh) * 2021-03-11 2021-04-09 全时云商务服务股份有限公司 一种分布式系统下的多条件分页查询方法
CN113297273A (zh) * 2021-06-09 2021-08-24 北京百度网讯科技有限公司 查询元数据的方法、装置和电子设备
CN113297273B (zh) * 2021-06-09 2024-03-01 北京百度网讯科技有限公司 查询元数据的方法、装置和电子设备
CN113609129A (zh) * 2021-07-29 2021-11-05 沈阳蓝天智慧燃气供热有限公司 一种基于大数据的热能监控综合检索方法
CN113626473A (zh) * 2021-08-17 2021-11-09 北京京东振世信息技术有限公司 数据信息查询方法和装置
CN114090589A (zh) * 2022-01-20 2022-02-25 苏州浪潮智能科技有限公司 基于HBase的数据查询方法、装置和计算机设备
CN114706625A (zh) * 2022-03-29 2022-07-05 智业软件股份有限公司 构建患者信息全局查询插件的方法、装置及存储介质
CN116541427A (zh) * 2023-06-30 2023-08-04 腾讯科技(深圳)有限公司 数据查询方法、装置、设备及存储介质
CN116541427B (zh) * 2023-06-30 2023-11-14 腾讯科技(深圳)有限公司 数据查询方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN109299102B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN109299102A (zh) 一种基于Elastcisearch的HBase二级索引系统及方法
JP6617117B2 (ja) 半構造データのためのスケーラブルな分析プラットフォーム
Khasawneh et al. Sql, newsql, and nosql databases: A comparative survey
US8924373B2 (en) Query plans with parameter markers in place of object identifiers
EP2605158B1 (en) Mixed join of row and column database tables in native orientation
CN107291807B (zh) 一种基于图遍历的sparql查询优化方法
US10346397B2 (en) System and method for querying data sources
CN105574093B (zh) 一种在基于HDFS的spark-sql大数据处理系统上建立索引的方法
US20170357653A1 (en) Unsupervised method for enriching rdf data sources from denormalized data
US20220083618A1 (en) Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes
US9229961B2 (en) Database management delete efficiency
CN102193917A (zh) 一种数据处理和查询方法和装置
CN111382226A (zh) 一种数据库查询检索方法、装置和电子设备
CN104462161A (zh) 基于分布式数据库的结构化数据查询方法
Rozsnyai et al. Large-scale distributed storage system for business provenance
CN105335479A (zh) 一种基于sql的文本数据统计实现方法
KR101544560B1 (ko) 대용량 데이터를 처리하기 위하여 sql 파싱에 의한 2단계 쿼리 및 결과 캐싱을 이용한 온라인 분석 프로세싱 방법
CN106484694B (zh) 基于分布式数据库的全文搜索方法及系统
Haque et al. Distributed RDF triple store using hbase and hive
D’silva et al. Secondary indexing techniques for key-value stores: Two rings to rule them all
CN113779068B (zh) 数据查询方法、装置、设备及存储介质
CN115185973A (zh) 一种数据资源共享方法、平台、装置及存储介质
Gašpar et al. Integrating Two Worlds: Relational and NoSQL
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
CN105740250A (zh) 一种创建 xml 节点的属性索引的方法及装置

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