CN107368477B - 基于HBase协处理器的类SQL查询的方法和系统 - Google Patents

基于HBase协处理器的类SQL查询的方法和系统 Download PDF

Info

Publication number
CN107368477B
CN107368477B CN201610308094.8A CN201610308094A CN107368477B CN 107368477 B CN107368477 B CN 107368477B CN 201610308094 A CN201610308094 A CN 201610308094A CN 107368477 B CN107368477 B CN 107368477B
Authority
CN
China
Prior art keywords
hbase
query
sql
layer service
regionserver
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
CN201610308094.8A
Other languages
English (en)
Other versions
CN107368477A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610308094.8A priority Critical patent/CN107368477B/zh
Publication of CN107368477A publication Critical patent/CN107368477A/zh
Application granted granted Critical
Publication of CN107368477B publication Critical patent/CN107368477B/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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (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

本发明提供一种基于HBase协处理器的类SQL查询的方法和系统,能够规范统一查询的条件及返回的结果,并能在避免对上层业务侵入的同时,执行高性能的实时数据并行计算。该方法包括:在HBase客户端预先配置HBase存储的表的元数据;建立上层业务接入连接,解析从上层业务传入的SQL查询语句,生成查询请求;所述HBase客户端将所述查询请求分发至RegionServer;所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;所述HBase客户端合并由所述RegionServer返回的数据并封装结果集。

Description

基于HBase协处理器的类SQL查询的方法和系统
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种基于HBase协处理器的类SQL查询的方法和系统。
背景技术
近年来,电商行业不断发展,对于大数据的存储、抽取、计算、分析以及展示越来越受到各大电商的关注。随着电商数据的爆炸性增长及对大数据处理分析的迫切需求,同时由于数据存储空间与数据访问时间之间的矛盾,各大电商选择分布式的存储系统HBase(HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统)来对数据进行存储,以满足对数据高效的插入和读取操作。
但是由于业务需求的多样化,导致了针对HBase的原生API查询条件以及对其查询所得到的Key-Value数据模型趋于多元化、差异化,无法使得上层业务以一种统一的、规范的形式来进行对HBase数据的查询和计算;另外,单纯的使用HBase原生API来进行HBase的查询,并将查询所得到的数据在客户端进行单节点的计算,会导致了HBase资源没有充分利用且计算效率低下等问题。
目前,针对HBase上的查询引擎解决方案,根据与HBase的操作方式,可以分为两种:一种是以Map-Reduce为核心,结合Map-Reduce思想,单个任务使用HBase-Client API原始接口访问,以Hive SQL为代表;另一种是以HBase-Coprocessor为核心,结合GoogleDremel的思想,客户端合并多个节点的处理结果,以Phoenix为核心。
但是上述两种方式中,由于Hive基于Map-Reduce思想,数据查询响应时间长,实时性较差,在较小的数量级上的数据查询及计算的效率较低;而Phoenix对HBase有着极强的侵入性,其创建的表HBase可以识别并使用,但是使用HBase创建的表,Phoenix不能识别,因此无法应对现有线上HBase数据表的业务需求。故现有的针对HBase的查询方式并不能解决现有HBase查询过程中无法应对业务需求多样化需求及查询效率低下、HBase资源不能充分利用的问题。
发明内容
有鉴于此,本发明提供一种基于HBase协处理器的类SQL查询的方法和系统,能够规范统一查询的条件及返回的结果,并能在避免对上层业务侵入的同时,执行高性能的实时数据并行计算。
为实现上述目的,根据本发明的一个方面,提供了一种基于HBase协处理器的类SQL查询的方法。
本发明的基于HBase协处理器的类SQL查询的方法包括:在HBase客户端预先配置HBase存储的表的元数据;建立从上层业务接入连接,解析上层业务传入的SQL查询语句,生成查询请求;所述HBase客户端将所述查询请求分发至RegionServer;所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;所述HBase客户端合并由所述RegionServer返回的数据并封装结果集。
可选地,所述上层业务接入连接采用JDBC连接方式。
可选地,解析从上层业务传入的SQL查询语句还包括:接收业务端的SQL查询语句,对SQL查询语句进行预处理,并通过词法、语法分析生成SQL查询请求。
可选地,所述HBase客户端将所述查询请求分发至RegionServer还包括:根据Rowkey信息将所述查询请求分发至所述RegionServer。
可选地,所述HBase客户端封装结果集由行聚合而成,行则由列聚合而成。
为实现上述目的,根据本发明的另一方面,提供一种基于HBase协处理器的类SQL查询的系统。
本发明的基于HBase协处理器的类SQL查询的系统包括:配置模块,用于在HBase客户端预先配置HBase存储的表的元数据;上层业务连接模块,用于建立上层业务接入连接,解析从上层业务传入的SQL查询语句,生成查询请求;以及HBase,其中,在HBase中,所述HBase客户端将所述查询请求分发至RegionServer;所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;所述HBase客户端合并由所述RegionServer返回的数据并封装结果集。
可选地,所述上层业务连接模块还用于采用JDBC连接方式为上层业务提供接入连接。
可选地,所述上层业务连接模块还用于:接收业务端的SQL查询语句,对SQL查询语句进行预处理,并通过词法、语法分析生成SQL查询请求。
可选地,所述HBase客户端还用于:根据Rowkey信息将所述查询请求分发至所述RegionServer。
可选地,所述HBase客户端封装结果集由行聚合而成,行则由列聚合而成。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的基于HBase协处理器的类SQL查询的方法。
为实现上述目的,根据本发明实施例的又一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的基于HBase协处理器的类SQL查询的方法。
根据本发明的技术方案,通过预先对表的元数据进行定义,从而可以在保证对HBase的无侵入性的同时,实现对HBase存储的任意的表使用类SQL查询方式;通过使用以上层业务连接池、JDBC连接、SQL解析器以及HBase客户端等组成的HBase查询引擎隔离数据与上层业务,从而可以统一上层业务对HBase的查询过程及结果获得;通过利用HBase协处理器以一种数据并行计算的方式进行数据查询和处理,从而可以提高在大数据量的情况下对数据过滤及计算的效率。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种基于HBase协处理器的类SQL查询的方法的主要步骤的示意图;
图2是根据本发明实施例的一种基于HBase协处理器的类SQL查询的方法的数据逻辑模型层架构的示意图;
图3是根据本发明实施例的一种基于HBase协处理器的类SQL查询的方法中解析上层业务传入的SQL查询语句的主要流程的示意图;
图4是根据本发明实施例的一种基于HBase协处理器的类SQL查询的方法中利用HBase协处理器并行查询和处理数据的主要流程的示意图;
图5是根据本发明实施例的一种基于HBase协处理器的类SQL查询的系统的主要部分的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明的具体实施方式是以一种类SQL(SQL是一种关系型数据库的查询语言,类SQL语法类似于SQL但不可覆盖真正的SQL。此处的类SQL是对上层业务对下层HBase数据统一查询的描述)的形式对HBase存储的数据进行计算及查询,规范统一查询的条件及结果,并且通过HBase协处理器执行高性能的实时数据并行计算,同时避免对上层业务的侵入性。
图1是根据本发明实施例的一种基于HBase协处理器的类SQL查询的方法的主要步骤的示意图。
如图1所示,本发明实施例的一种基于HBase协处理器的类SQL查询的方法主要包括如下步骤:
步骤S11:在HBase客户端预先配置HBase存储的表的元数据;
步骤S12:建立上层业务接入连接,解析从上层业务传入的SQL查询语句,生成查询请求;
步骤S13:所述HBase客户端将所述查询请求分发至RegionServer;
步骤S14:所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;
步骤S15:所述HBase客户端合并由所述RegionServer返回的数据并封装结果集。
HBase中存储的表数据,在HBase中的存储形式为Byte,需要通过元数据还原HBase中的业务数据,也就是将Byte格式的数据转化为相应的数据类型的数据,如Byte到int或者string等基本类型。本发明实施例中,HBase存储的表的元数据可以是预先配置在HBase客户端的,如此,可以实现在查询数据的时候,元数据的获取并不依赖HBase存储系统。
另外,上层业务接入连接可采用JDBC连接方式。
此外,解析上层业务传入的SQL查询语句还可以包括:接收业务端的SQL查询语句,对SQL查询语句进行预处理,并通过词法、语法分析生成SQL查询请求。
如图2所示,本发明实施例中,上述查询方法的数据逻辑模型层架构整体可分为两层:HBase查询引擎和HBase存储系统。
HBase查询引擎对上层业务应用提供JDBC的连接方式,并对上层业务传入的SQL语句通过SQL解析器(SQL Parser)对SQL进行语法分析,将SQL分析为SQL Query Plan。常规的查询任务在HBase客户端层会将SQL Query Plan直接解析为HBase API实现,对HBase进行数据请求。
HBase存储系统分为Master节点,RegionServer节点和底层存储。其中Master节点主要监控集群中的所有RegionServer,并根据上层解析的HBase API依照Rowkey的规则将其分发到各个RegionServer上。RegionServer向底层存储请求获得数据,并通过HBase协处理器Coprocessor对数据依次执行扫描、过滤以及数据聚合等操作处理。
最后HBase查询引擎的客户端再对已经过HBase协处理器Coprocessor处理完毕的数据进行收集、归并计算以及封装操作。具体模型架构见图2。
在本发明具体实施例中,解析上层业务传入的SQL查询语句,即类SQL解析的过程主要包括:首先,对SQL语句执行预处理,包括表、列、类型的预处理等;其次,对SQL语句进行词法和语法分析并生成相应的SQL查询对象,即为HBase Query Plan,等待分发。具体流程如图3所示。
本发明实施例的分发查询请求的过程中,HBase客户端与Master进行通信,依照Rowkey信息将已经解析好的HBase Query Plan分发到相应的RegionServer上,并告知RegionServer通过使用事先已经加载好的HBase协处理器的Calculate Protocol来执行数据的处理。
本发明实施例中,HBase客户端首先可以根据业务需求对Query Plan进行分类,例如可以分为三类,包含聚合操作的为一类,不包含聚合且包含排序操作的为一类,两者都不包含的为一类。其中,前两者的数据的过滤与计算通过协处理器来执行。由于数据分布式存储的特性,数据在HBase协处理器Coprocessor执行完会传输到HBase客户端进行数据合并,在合并的过程中,需要对数据进行二次加工并封装。具体的RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据的过程如图4所示。
HBase客户端对结果集进行封装并返回。本发明实施例中对于结果集的封装,可以是结果集ResultSet由行Row聚合而成,行Row则由列Column聚合而成。这样的结果集的模型设计便于列Column之间的算术运算以及行Row之间的比较运算。同时也将HBase查询引擎从HBase存储系统所查询获取的键值对(Key-Value)结果集转化为了关系型结果集,完成了数据模型由Key-Value型数据逻辑模型到关系型数据逻辑模型的转化,统一了数据结果的规范。
根据本发明实施例的基于HBase协处理器的类SQL查询方法可以看出,通过预先对表的元数据进行定义,从而可以在保证对HBase的无侵入性的同时,实现对HBase存储的任意的表使用类SQL查询方式;通过使用以上层业务连接池、JDBC连接、SQL解析器以及HBase客户端等组成的HBase查询引擎隔离数据与上层业务,从而可以统一上层业务对HBase的查询过程及结果获得;通过利用HBase协处理器以一种数据并行计算的方式进行数据查询和处理,从而可以提高在大数据量的情况下对数据过滤及计算的效率。
图5是根据本发明实施例的一种基于HBase协处理器的类SQL查询的系统的主要部分的示意图。
如图5所示,本发明实施例的一种基于HBase协处理器的类SQL查询的系统50主要包括如下部分:
配置模块501,用于在HBase客户端预先配置HBase存储的表的元数据;
上层业务连接模块502,用于建立上层业务接入连接,解析从上层业务传入的SQL查询语句,生成查询请求;以及
HBase503,其中,在HBase503中,
所述HBase客户端将所述查询请求分发至RegionServer;
所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;
所述HBase客户端合并由所述RegionServer返回的数据并封装结果集。
上层业务连接模块502还可用于采用JDBC连接方式为上层业务提供接入连接。
上层业务连接模块502还可用于对SQL语句进行解析,包括:接收业务端的SQL查询语句,对SQL查询语句进行预处理,并通过词法、语法分析生成SQL查询请求。
在HBase503中,其中HBase客户端还可用于:根据Rowkey信息将查询请求分发至所述RegionServer。
HBase客户端封装结果集可以是由行Row聚合而成,行Row则由列Column聚合而成。
从以上描述可以看出,通过预先对表的元数据进行定义,从而可以在保证对HBase的无侵入性的同时,实现对HBase存储的任意的表使用类SQL查询方式;通过使用以上层业务连接池、JDBC连接、SQL解析器以及HBase客户端等组成的HBase查询引擎隔离数据与上层业务,从而可以统一上层业务对HBase的查询过程及结果获得;通过利用HBase协处理器以一种数据并行计算的方式进行数据查询和处理,从而可以提高在大数据量的情况下对数据过滤及计算的效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种基于HBase协处理器的类SQL查询的方法,其特征在于,包括:
在HBase客户端预先配置HBase存储的表的元数据,通过元数据还原HBase中的业务数据;
通过HBase查询引擎建立上层业务接入连接,解析从上层业务传入的SQL查询语句,生成查询请求;
所述HBase客户端将所述查询请求分发至RegionServer;
所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;
所述HBase客户端合并由所述RegionServer返回的数据并封装结果集;其中,所述结果集由行聚合而成,行则由列聚合而成。
2.根据权利要求1所述的方法,其特征在于,所述上层业务接入连接采用JDBC连接方式。
3.根据权利要求1所述的方法,其特征在于,解析从上层业务传入的SQL查询语句还包括:接收业务端的SQL查询语句,对SQL查询语句进行预处理,并通过词法、语法分析生成SQL查询请求。
4.根据权利要求1所述的方法,其特征在于,所述HBase客户端将所述查询请求分发至RegionServer还包括:根据Rowkey信息将所述查询请求分发至所述RegionServer。
5.一种基于HBase协处理器的类SQL查询的系统,其特征在于,包括:
配置模块,用于在HBase客户端预先配置HBase存储的表的元数据,通过元数据还原HBase中的业务数据;
上层业务连接模块,用于通过HBase查询引擎建立上层业务接入连接,解析从上层业务传入的SQL查询语句,生成查询请求;以及
HBase,其中,在所述HBase中,
所述HBase客户端将所述查询请求分发至RegionServer;
所述RegionServer根据所述查询请求利用HBase协处理器并行查询和处理数据;
所述HBase客户端合并由所述RegionServer返回的数据并封装结果集;其中,所述结果集由行聚合而成,行则由列聚合而成。
6.根据权利要求5所述的系统,其特征在于,所述上层业务连接模块还用于采用JDBC连接方式为上层业务提供接入连接。
7.根据权利要求5所述的系统,其特征在于,所述上层业务连接模块还用于:接收业务端的SQL查询语句,对SQL查询语句进行预处理,并通过词法、语法分析生成SQL查询请求。
8.根据权利要求5所述的系统,其特征在于,所述HBase客户端还用于:根据Rowkey信息将所述查询请求分发至所述RegionServer。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201610308094.8A 2016-05-11 2016-05-11 基于HBase协处理器的类SQL查询的方法和系统 Active CN107368477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610308094.8A CN107368477B (zh) 2016-05-11 2016-05-11 基于HBase协处理器的类SQL查询的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610308094.8A CN107368477B (zh) 2016-05-11 2016-05-11 基于HBase协处理器的类SQL查询的方法和系统

Publications (2)

Publication Number Publication Date
CN107368477A CN107368477A (zh) 2017-11-21
CN107368477B true CN107368477B (zh) 2021-02-26

Family

ID=60303454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610308094.8A Active CN107368477B (zh) 2016-05-11 2016-05-11 基于HBase协处理器的类SQL查询的方法和系统

Country Status (1)

Country Link
CN (1) CN107368477B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280123B (zh) * 2017-12-11 2021-12-21 西安烽火软件科技有限公司 一种HBase的列聚合方法
CN112069179A (zh) * 2020-08-31 2020-12-11 银盛支付服务股份有限公司 一种基于Hbase查询性能优化的装置及其方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1920324A1 (en) * 2005-08-19 2008-05-14 Nxp B.V. Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
JP2012242539A (ja) * 2011-05-18 2012-12-10 Renesas Electronics Corp セキュリティシステム及びマイクロコンピュータ
CN102707924B (zh) * 2012-05-02 2015-06-10 广州中大微电子有限公司 一种rfid智能卡芯片的rsa协处理器
CN104462161A (zh) * 2013-10-18 2015-03-25 上海宝信软件股份有限公司 基于分布式数据库的结构化数据查询方法
CN103646051B (zh) * 2013-11-27 2017-02-08 武汉邮电科学研究院 一种基于列存储的大数据并行处理系统及方法
CN103646073A (zh) * 2013-12-11 2014-03-19 浪潮电子信息产业股份有限公司 一种基于HBase表的条件查询优化方法
CN104750757B (zh) * 2013-12-31 2018-05-08 中国移动通信集团公司 一种基于HBase的数据存储方法和设备
CN104112013A (zh) * 2014-07-17 2014-10-22 浪潮(北京)电子信息产业有限公司 HBase二级索引方法及装置
CN104346447A (zh) * 2014-10-28 2015-02-11 浪潮电子信息产业股份有限公司 一种面向混合型大数据处理系统的分区连接方法
CN104391957A (zh) * 2014-12-01 2015-03-04 浪潮电子信息产业股份有限公司 一种针对混合型大数据处理系统的数据交互分析方法
CN105117433A (zh) * 2015-08-07 2015-12-02 北京思特奇信息技术股份有限公司 一种基于Hive解析HFile统计查询HBase的方法和系统
CN105069151A (zh) * 2015-08-24 2015-11-18 用友网络科技股份有限公司 HBase二级索引构建装置和方法

Also Published As

Publication number Publication date
CN107368477A (zh) 2017-11-21

Similar Documents

Publication Publication Date Title
US10713247B2 (en) Executing queries for structured data and not-structured data
CN107291947B (zh) 一种半结构化数据查询的方法和分布式NewSQL数据库系统
US10311055B2 (en) Global query hint specification
US20210165782A1 (en) Managed materialized views created from heterogeneous data sources
US10095732B2 (en) Scalable analysis platform for semi-structured data
EP3285178B1 (en) Data query method in crossing-partition database, and crossing-partition query device
US9418101B2 (en) Query optimization
CN108009236A (zh) 一种大数据查询方法、系统、计算机及存储介质
US11074261B1 (en) Format independent processing for distributed data
US11321330B1 (en) Combining nested data operations for distributed query processing
CN103646073A (zh) 一种基于HBase表的条件查询优化方法
CN106294695A (zh) 一种面向实时大数据搜索引擎的实现方法
CN107066546B (zh) 一种基于mpp引擎的跨数据中心快速查询方法和系统
CN108228743A (zh) 一种实时大数据搜索引擎系统
CN104133858A (zh) 基于列存储的智能双引擎分析系统及方法
CN108108466A (zh) 一种分布式系统日志查询分析方法及装置
CN107368477B (zh) 基于HBase协处理器的类SQL查询的方法和系统
US10592506B1 (en) Query hint specification
US20170068703A1 (en) Local database cache
KR20100132752A (ko) 데이터베이스 분산을 통한 서비스 성능 향상을 위한 질의 데이터 분산 처리시스템
CN108319604B (zh) 一种hive中大小表关联的优化方法
CN111159213A (zh) 一种数据查询方法、装置、系统和存储介质
CN110245184B (zh) 一种基于tagSQL的数据处理方法、系统及装置
US20180032591A1 (en) Integration management for structured and unstructured data
CN103942249A (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