CN104239576A - 查找HBase表列值中所有行的方法和装置 - Google Patents
查找HBase表列值中所有行的方法和装置 Download PDFInfo
- Publication number
- CN104239576A CN104239576A CN201410528432.XA CN201410528432A CN104239576A CN 104239576 A CN104239576 A CN 104239576A CN 201410528432 A CN201410528432 A CN 201410528432A CN 104239576 A CN104239576 A CN 104239576A
- Authority
- CN
- China
- Prior art keywords
- row
- index
- coprocessor
- train value
- hbase
- 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
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/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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/221—Column-oriented storage; 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/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种查找HBase表列值中所有行的方法和装置,包括:编写协处理器实现的索引列表;获取协处理器实现的地址;定义表描述符,将协处理器定义添加到表描述符中;创建集群的管理应用程序编程接口API,并将API添加到HBase表中;将HBase表的列值在索引列表中设置相应的对应关系,通过索引列表查找相应的列值中的所有行。本发明利用HBase中协处理器的Observer类型接口,通过将表中的列值在索引列表中设置相应的对应关系,在查找相应的特定列值中所有行的时候可以通过索引列表快速定位,并返回满足用户需求的查询结果,保证了时间效率,同时提升了性能。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种查找HBase表列值中所有行的方法和装置。
背景技术
在海量数据的时代中,大数据处理Hadoop已经成为了处理大数据的平台,它提供了Hadoop分布式文件***(HDFS,Hadoop Distributed File System)及MapReduce框架,擅长存储任意的、半结构化的数据、甚至是非结构化的数据,可以帮助用户在分析数据的时候决定如何解释这些数据。Hadoop几乎是所有现有数据库的一种补充,它给用户提供了数据存储的无限空间,支持用户在恰当的时候存储和获取数据,并针对大文件的存储、批量访问做了优化,使得用户对数据的分析变得简单快捷。但是,用户同样需要访问分析后的最终数据,需要一种随机访问模式,这种模式相对于在数据库***来说,相当于一种全表扫描和使用索引。
因此,HBase出现了。HBase是一种基于HDFS上的一种分布式数据库,提供了很好的易用性及键值对的灵活处理,同时能够快速读取表中数据等优势。但是,现有的HBase中只能提供基于行键快速查询结果,若基于特定列值查询行的情况是需要全表扫描的,假定HBase表的行数非常多的情况下,会浪费大量的时间才能得到查询结果。
有鉴于此,一种快速查询HBase表中列值中所有行的方法是本领域技术人员所需的。
发明内容
为了解决上述技术问题,本发明提供了一种查找HBase表列值中所有行的方法和装置,能够实现快速查找HBase表列值中所有行的查询。
为了达到本发明目的,本发明提供了一种查找HBase表列值中所有行的方法,包括:编写协处理器实现的索引列表;获取协处理器实现的地址;定义表描述符,将协处理器定义添加到表描述符中;创建集群的管理应用程序编程接口API,并将API添加到HBase表中;将HBase表的列值在索引列表中设置相应的对应关系,通过索引列表查找相应的列值中的所有行。
进一步地,编写协处理器实现的索引列表,包括:设置一个类,该类继承BaseRegionObserver接口;设置Preput函数进行索引列;设置索引列的Htable;将列族信息及列信息及相对应的行put到所述索引列表中。
进一步地,将列族信息及列信息及相对应的行put到索引列表,包括:接收列族名称、列名称及值,通过列族信息及列信息获取键值对,并通过键值对将索引列信息put到索引列表中。
进一步地,编写协处理器实现的索引列表之后,还包括:将协处理器实现的代码打包。
进一步地,获取协处理器实现的地址,包括:获取所述协处理器实现的包的地址。
进一步地,创建集群的管理API,并将所述API添加到HBase表中之后,还包括:确定定义的所述协处理器被正确添加。
一种查找HBase表列值中所有行的装置,包括:编写模块,用于编写协处理器实现的索引列表;获取模块,用于获取协处理器实现的地址;定义模块,用于定义表描述符,将协处理器定义添加到表描述符中;创建模块,用于创建集群的管理API,并将API添加到HBase表中;查找模块,用于将HBase表的列值在索引列表中设置相应的对应关系,通过索引列表查找相应的列值中的所有行。
进一步地,编写模块,具体用于:设置一个类,所述类继承BaseRegionObserver接口;设置Preput函数进行索引列;设置索引列的Htable;将列族信息及列信息及相对应的行put到索引列表中。
进一步地,编写模块,还用于:将所述协处理器实现的代码打包。
进一步地,获取模块,具体用于获取所述协处理器实现的包的地址。
进一步地,该装置还包括:确定模块,用于确定定义的所述协处理器被正确添加。
与现有技术相比,本发明包括:编写协处理器实现的索引列表;获取协处理器实现的地址;定义表描述符,将协处理器定义添加到表描述符中;创建集群的管理应用程序编程接口API,并将API添加到HBase表中;将HBase表的列值在索引列表中设置相应的对应关系,通过索引列表查找相应的列值中的所有行。本发明利用HBase中协处理器的Observer类型接口,通过将表中的列值在索引列表中设置相应的对应关系,在查找相应的特定列值中所有行的时候可以通过索引列表快速定位,并返回满足用户需求的查询结果,保证了时间效率,同时减少了大量的网络开销,提升了性能。
附图说明
图1是本发明查找HBase表列值中所有行的方法的流程示意图。
图2是本发明编写HBase协处理器实现的索引列表的方法的流程示意图。
图3是本发明查找HBase表列值中所有行的装置的结构示意图。
具体实施方式
下面结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。
在本发明中,需要部署分布式集群环境,在该集群中包含HDFS、MapReduce、HBase、Zookeeper组件,例如,该分布式集群环境是有3个节点,每个节点的配置是96G内存,12个core,硬盘是12*1T。
图1是本发明查找HBase表列值中所有行的方法的流程示意图。如图1所示,具体可以包括:
步骤11,编写协处理器(Coprocessor)实现的索引列表。
协处理器是HBase中的一个框架,用户可以通过继承类来扩展自己的功能,其种该类主要有两种:观察者(observer)类和端点(endpoint)类。
在observer类中,协处理器与触发器类似,通过回调函数hook在一些特定时间发生时被执行。在observer类协处理器中提供的observer相关的接口是RegionObserver、MasterObserver和WALObserver,其中,RegionObserver是用户可以用这种处理器处理数据修改事件,它们与表的region联系紧密;MasterObserver是可以被用作管理或数据库模式定义语言(DDL,DataDefinition Language)类型的操作,这些是集群级事件;WALObserver是提供控制先写日志(WAL,Write ahead Log)的hook函数。Observer提供了一些设计好的回调函数,每个操作在集群服务器端都可以被调用。在本发明中,使用的是Observer类来实现快速查找HBase表列值中所有行的查询。
在本步骤中,还可以进一步将该协处理器实现的代码打包。
在本步骤中,编写HBase协处理器实现的索引列表的方法可以参考图2所示,包括:
步骤111,设置一个类,该类继承BaseRegionObserver接口;
具体地,该类需要继承BaseRegionObserver编写索引列的coprocessor类。
步骤112,设置Preput函数进行索引列;
步骤113,设置索引列的Htable;
步骤114,将列族信息及列信息及相对应的行put到索引列表;
具体地,在该类中需要接收列族名称、列名称及值,通过列族信息及列信息获取键值对,并通过对键值对操作将索引列信息put到索引列表中。
步骤12,获取协处理器实现的地址。
在本步骤中,要将协处理器与特定的表关联,以保证该特定的表被启用的时候,会加载编写的协处理器。因此,需要获取协处理器实现的地址。
如果之前将该协处理器实现的代码打包,则获取协处理器实现的包的地址。
步骤13,定义表描述符,将协处理器定义添加到表描述符中。
步骤14,创建集群的管理应用程序编程接口(API,ApplicationProgramming Interface)并添加到表中。
步骤15,确定定义的协处理器被正确添加。
步骤16,将HBase表的列值在索引列表中设置相应的对应关系,通过索引列表查找相应的列值中的所有行。
本发明使用HBase中协处理器的特性进行设计,通过HBase中协处理器的Observer的模式进行编码,然后通过在想要查询的表中加载coprocessor为编写好的该类即可。在本发明中通过表描述符来加载,针对特定表决定哪些协处理器被加载,加载协处理器时是针对这个表的region进行的,同时只被这些reigon的region服务器使用。
在进行表描述符加载时需要得到包含协处理器实现的jar文件地址,然后定义表描述符,再将协处理器定义添加到表描述符中,创建集群的管理API并添加这个表,最后检查定义的协处理器其是否被正确的添加。这样处理过后,一旦表被启用,且region被打开,框架会首先加载配置文件中定义的协处理器,然后再加载表描述符的协处理器。
在快速查询HBase表中列值中所有行的方法中首先编写索引列的类,通过客户端API调用显示地从客户端应用传输到region服务器上,在用户进行源表***数据操作时会拦截它们,使用协处理器的相关操作将数据put到索引列表中,这是在客户端请求前执行的。索引列表中记录了特定列族、特定列的值相对应的行的信息,保证了查询速率。
综上,本发明利用HBase中协处理器Coprocessor的Observer类型接口,通过将表中的特定列值在索引列表中设置相应的对应关系,在查找相应的特定列值中所有行的时候可以通过索引列表快速定位,并返回满足用户需求的查询结果,该方法保证了时间效率,同时减少了大量的网络开销,提升了性能。
图3是本发明查找HBase表列值中所有行的装置的结构示意图,如图3所示,具体可以包括:
编写模块,用于编写协处理器实现的索引列表;
具体地,编写模块用于设置一个类,该类继承BaseRegionObserver接口;设置Preput函数进行索引列;设置索引列的Htable;将特定列族特定列的值及相对应的行put到索引列表;
此外,该编写模块还用于将该协处理器实现的代码打包。
获取模块,用于获取协处理器实现的地址;
具体地,如果编写模块将协处理器实现的代码打包,则获取模块获取协处理器实现的包的地址。
定义模块,用于定义表描述符,然后将协处理器定义添加到表描述符中。
创建模块,用于创建集群的管理API并添加到表中。
确定模块,用于确定定义的协处理器被正确添加。
查找模块,用于将HBase表的列值在索引列表中设置相应的对应关系,通过索引列表查找相应的列值中的所有行。
查找HBase表列值中所有行的装置是和查找HBase表列值中所有行的方法对应的,因此,查找HBase表列值中所有行的装置具体的实现细节可参看查找HBase表列值中所有行的方法,在此不赘述。
本发明利用HBase中协处理器Coprocessor的Observer类型接口,通过将表中的特定列值在索引列表中设置相应的对应关系,在查找相应的特定列值中所有行的时候可以通过索引列表快速定位,并返回满足用户需求的查询结果,该方法保证了时间效率,同时减少了大量的网络开销,提升了性能。。
应当理解,虽然本说明书根据实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (11)
1.一种查找HBase表列值中所有行的方法,其特征在于,包括:
编写协处理器实现的索引列表;
获取所述协处理器实现的地址;
定义表描述符,将协处理器定义添加到所述表描述符中;
创建集群的管理应用程序编程接口API,并将所述API添加到HBase表中;
将所述HBase表的列值在所述索引列表中设置相应的对应关系,通过所述索引列表查找相应的列值中的所有行。
2.根据权利要求1所述的查找HBase表列值中所有行的方法,其特征在于,所述编写协处理器实现的索引列表,包括:
设置一个类,所述类继承BaseRegionObserver接口;
设置Preput函数进行索引列;
设置所述索引列的Htable;
将列族信息及列信息及相对应的行put到所述索引列表中。
3.根据权利要求2所述的查找HBase表列值中所有行的方法,其特征在于,所述将列族信息及列信息及相对应的行put到索引列表,包括:
接收列族名称、列名称及值,通过列族信息及列信息获取键值对,并通过所述键值对将索引列信息put到所述索引列表中。
4.根据权利要求1-3中任一项所述的查找HBase表列值中所有行的方法,其特征在于,所述编写协处理器实现的索引列表之后,还包括:
将所述协处理器实现的代码打包。
5.根据权利要求4所述的查找HBase表列值中所有行的方法,其特征在于,所述获取协处理器实现的地址,包括:
获取所述协处理器实现的包的地址。
6.根据权利要求4所述的查找HBase表列值中所有行的方法,其特征在于,所述创建集群的管理API,并将所述API添加到HBase表中之后,还包括:
确定定义的所述协处理器被正确添加。
7.一种查找HBase表列值中所有行的装置,其特征在于,包括:
编写模块,用于编写协处理器实现的索引列表;
获取模块,用于获取所述协处理器实现的地址;
定义模块,用于定义表描述符,将协处理器定义添加到所述表描述符中;
创建模块,用于创建集群的管理API,并将所述API添加到HBase表中;
查找模块,用于将所述HBase表的列值在索引列表中设置相应的对应关系,通过索所述引列表查找相应的列值中的所有行。
8.根据权利要求7所述的查找HBase表列值中所有行的装置,其特征在于,所述编写模块,具体用于:设置一个类,所述类继承BaseRegionObserver接口;设置Preput函数进行索引列;设置所述索引列的Htable;将列族信息及列信息及相对应的行put到所述索引列表中。
9.根据权利要求7所述的查找HBase表列值中所有行的装置,其特征在于,所述编写模块,还用于:将所述协处理器实现的代码打包。
10.根据权利要求9所述的查找HBase表列值中所有行的装置,其特征在于,所述获取模块,具体用于获取所述协处理器实现的包的地址。
11.根据权利要求7所述的查找HBase表列值中所有行的装置,其特征在于,还包括:确定模块,用于确定定义的所述协处理器被正确添加。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410528432.XA CN104239576A (zh) | 2014-10-09 | 2014-10-09 | 查找HBase表列值中所有行的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410528432.XA CN104239576A (zh) | 2014-10-09 | 2014-10-09 | 查找HBase表列值中所有行的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104239576A true CN104239576A (zh) | 2014-12-24 |
Family
ID=52227635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410528432.XA Pending CN104239576A (zh) | 2014-10-09 | 2014-10-09 | 查找HBase表列值中所有行的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239576A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965908A (zh) * | 2015-06-30 | 2015-10-07 | 北京奇艺世纪科技有限公司 | 一种位置范围确定方法及装置 |
CN105426506A (zh) * | 2015-11-27 | 2016-03-23 | 中国科学院重庆绿色智能技术研究院 | 一种海量动态数据管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
CN103116610A (zh) * | 2013-01-23 | 2013-05-22 | 浙江大学 | 基于HBase的矢量空间大数据存储方法 |
WO2014143514A1 (en) * | 2013-02-19 | 2014-09-18 | Huawei Technologies Co., Ltd. | System and method for database searching |
-
2014
- 2014-10-09 CN CN201410528432.XA patent/CN104239576A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020325A (zh) * | 2013-01-17 | 2013-04-03 | 中国科学院计算机网络信息中心 | 基于NoSQL数据库的分布式遥感数据组织查询方法 |
CN103116610A (zh) * | 2013-01-23 | 2013-05-22 | 浙江大学 | 基于HBase的矢量空间大数据存储方法 |
WO2014143514A1 (en) * | 2013-02-19 | 2014-09-18 | Huawei Technologies Co., Ltd. | System and method for database searching |
Non-Patent Citations (2)
Title |
---|
丁飞: "基于协处理器的Hbase区域级第二索引研究与实现", 《计算机应用》 * |
卓海艺: "基于Hbase的海量数据实时查询***设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965908A (zh) * | 2015-06-30 | 2015-10-07 | 北京奇艺世纪科技有限公司 | 一种位置范围确定方法及装置 |
CN104965908B (zh) * | 2015-06-30 | 2018-08-03 | 北京奇艺世纪科技有限公司 | 一种位置范围确定方法及装置 |
CN105426506A (zh) * | 2015-11-27 | 2016-03-23 | 中国科学院重庆绿色智能技术研究院 | 一种海量动态数据管理方法 |
CN105426506B (zh) * | 2015-11-27 | 2018-10-02 | 中国科学院重庆绿色智能技术研究院 | 一种海量动态数据管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11204915B2 (en) | Blockchain-based data storage and query method and device | |
CN107291948B (zh) | 一种分布式newSQL数据库的访问方法 | |
JP7130600B2 (ja) | ファーストクラスデータベース要素としての半構造データの実装 | |
CN106970936B (zh) | 数据处理方法及装置、数据查询方法及装置 | |
CN105183735B (zh) | 数据的查询方法及查询装置 | |
US8775425B2 (en) | Systems and methods for massive structured data management over cloud aware distributed file system | |
Aydin et al. | Architecture and implementation of a scalable sensor data storage and analysis system using cloud computing and big data technologies | |
US10685042B2 (en) | Identifying join relationships based on transactional access patterns | |
Hasani et al. | Lambda architecture for real time big data analytic | |
KR101790766B1 (ko) | 데이터의 검색 방법, 장치 및 단말기 | |
CN105164673A (zh) | 跨数据库和文件***的查询一体化 | |
CN103902548B (zh) | 一种访问数据库的***和方法及注册、订票、网购*** | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
US11620311B1 (en) | Transformation of directed graph into relational data | |
US10901971B2 (en) | Random walking and cluster-based random walking method, apparatus and device | |
CN108241620B (zh) | 查询脚本的生成方法及装置 | |
CN104239576A (zh) | 查找HBase表列值中所有行的方法和装置 | |
US10114864B1 (en) | List element query support and processing | |
CN112434189A (zh) | 数据查询方法、装置及设备 | |
CN108062329B (zh) | 一种数据导入方法及装置 | |
CN112749189A (zh) | 数据查询方法及装置 | |
Kanade et al. | Cloud based databases-A changing trend | |
CN104572711A (zh) | 一种分布式文档形数据存取方法及装置 | |
Mishra et al. | Titan graph databases with cassandra | |
US11232104B2 (en) | Join and predicate filtering using string lengths for variable character fields |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141224 |
|
WD01 | Invention patent application deemed withdrawn after publication |