CN106648934B - 一种Impala与HBase之间的高效数据传输方法及系统 - Google Patents

一种Impala与HBase之间的高效数据传输方法及系统 Download PDF

Info

Publication number
CN106648934B
CN106648934B CN201611228895.XA CN201611228895A CN106648934B CN 106648934 B CN106648934 B CN 106648934B CN 201611228895 A CN201611228895 A CN 201611228895A CN 106648934 B CN106648934 B CN 106648934B
Authority
CN
China
Prior art keywords
impala
hbase
inquiry instruction
data
data transfer
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
CN201611228895.XA
Other languages
English (en)
Other versions
CN106648934A (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.)
Institute of Computing Technology of CAS
Original Assignee
Golaxy Data Technology Co ltd
Institute of Computing Technology of CAS
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 Golaxy Data Technology Co ltd, Institute of Computing Technology of CAS filed Critical Golaxy Data Technology Co ltd
Priority to CN201611228895.XA priority Critical patent/CN106648934B/zh
Publication of CN106648934A publication Critical patent/CN106648934A/zh
Application granted granted Critical
Publication of CN106648934B publication Critical patent/CN106648934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种Impala与HBase之间的高效数据传输方法及系统。该方法包括:步骤1,将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同;步骤2,每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区;步骤3,以socket的方式,将该缓冲区中存储的数据传输至Impala。本发明具有较高的传输性能,且通过采用以socket传输二进制数据的方式,使得本发明在数据传输层,没有序列化以及反序列化的开销,不存在性能瓶颈,使得传输性能比JNI的传输方式更加高效。

Description

一种Impala与HBase之间的高效数据传输方法及系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种Impala与HBase之间的高效数据传输方法及系统。
背景技术
Impala是一款开源的大数据分析系统,其可以对HBase数据库进行数据查询。HBase作为数据源,向Impala提供数据。而Impala负责数据的计算,即通常意义上的SQL查询。在这个过程中,Impala需要向HBase访问数据。
目前Impala的做法是,以JNI(Java Native Interface)的方式,调用HBase的API进行访问。JNI是一种Java和C语言相互调用的方式。通过JNI技术,可以使得在C语言中调用Java代码,或者在Java中调用C语言代码。
HBase作为一个数据库,允许每个表有一个或者多个数据分片,即一个或者多个Region。Region之间以键值范围划分,Region两两之间无交叉,数据是相互独立的。Region的个数可以由用户在建表的时候指定,也可以由HBase自动管理,即刚开始只分配一个Region,随着该表数据量的增加,再逐步增加Region的数量。
如图1所示为现有技术中Impala-HBase数据传输示意图。其中,以HBase设有两个Region为例,部署有Impala的节点HBaseScanNode发出查询语句,依次从每个Region中获得数据,即,步骤10(Step10)先从第一个Region通过JNI的方式获取数据,步骤20(Step20)再从第二个Region通过JNI的方式获取数据。可见,Impala依次对每个Region进行访问,以获取数据。
上述数据获取方式,存在两个方面的问题:
1.Impala对HBase的Region的访问是线性的,存在性能低下的问题。
2.Impala是以C语言实现的系统,而HBase是JAVA实现的系统。所以,Impala以JNI的方式,在C代码里面调用了JAVA代码来访问HBase的数据。JNI的数据传输模式,性能低下。
发明内容
本发明解决的技术问题在于,提出一种Impala与HBase之间的高效数据传输方法及系统,以通过多并发的传输机制提高传输性能。
本发明公开了一种Impala与HBase之间的高效数据传输方法,包括:
步骤1,将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同;
步骤2,每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区;
步骤3,以socket的方式,将该缓冲区中存储的数据传输至Impala。
该查询指令为HBase可以识别的API。
该步骤2中以字节流的方式将该查询结果传输至该缓冲区,该步骤3中以字节流的方式将该缓冲区中存储的数据传输至Impala。
该步骤3中,传输数据类型为二进制类型。
步骤3之后还包括步骤4,由Impala对二进制数据进行序列化和反序列化。
本发明还公开了一种Impala与HBase之间的高效数据传输系统,包括:
编译单元,用于将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同;
查询单元,用于使得每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区;
传输单元,用于以socket的方式,将该缓冲区中存储的数据传输至Impala。
该查询指令为HBase可以识别的API。
该查询单元以字节流的方式将该查询结果传输至该缓冲区,该传输单元以字节流的方式将该缓冲区中存储的数据传输至Impala。
该传输单元的传输数据类型为二进制类型。
所述的高效数据传输系统还包括解析单元,用于由Impala对二进制数据进行序列化和反序列化。
本发明实现的技术效果在于,当HBase的某张表存在多个Region时,Impala从这张表加载数据时,所有Region均并发传输,从而获得较高的传输性能。另外,通过采用以socket传输二进制数据的方式,使得本发明在数据传输这层,没有序列化以及反序列化的开销,不存在性能瓶颈,使得传输性能比JNI的传输方式更加高效。
附图说明
图1所示为现有技术中Impala-HBase数据传输示意图。
图2所示为本发明的Impala-HBase数据传输示意图。
图3、4所示为本发明的一种Impala与HBase之间的高效数据传输方法的流程图。
图5、6所示为本发明的Impala与HBase之间的高效数据传输系统的结构示意图。
具体实施方式
以下结合具体实施例详细描述本发明的实现过程。
为了应对现有技术中对Region的线性访问,以及JNI的数据传输模式所带来的传输性能低下的问题,本发明提出了一种多并发的传输机制,对多个Region实行并发数据传输,并通过socket传输数据,以替代原有的JNI传输方式。
如图2所示为本发明的Impala-HBase数据传输示意图。如图3所示为本发明的一种Impala与HBase之间的高效数据传输方法的流程图。
本发明在Impala与HBase之间增加了一个独立进程,本发明称之为HBaseDataEngine。相对于现有技术的技术方案,Impala不再直接访问HBase的数据,而是转为Impala与独立进程HBaseDataEngine进行交互,由独立进程HBaseDataEngine从HBase获取数据,并输送给Impala。
具体请配合参见图2、3所记载的内容。
步骤1,将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同。
具体来说,当Impala需要一个表的数据时,部署有Impala的节点HBaseScanNode发出SQL查询语句至独立进程HBaseDataEngine的RPC接口,独立进程HBaseDataEngine接到该SQL查询语句后,由并行控制模块将该SQL查询语句发送至SQL编译模块,编译为查询指令。该查询指令SQL编译模块将该SQL查询语句编译成HBase可以识别的API,即图中的scanner,scanner即为前述查询指令。scanner的个数等于HBase中Region的个数。
步骤2,每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区。
具体来说,每个scanner负责一个Region,所有scanner同时进行对其对应的Region的查询,实现并行的查询。所获得的查询结果并行传输加载至一缓冲区中,直到该Region的数据加载完毕为止。
可见,当Impala需要从HBase获取数据时,所有Region全部并发起来,传输速率大幅提升。这一并发的数据传输机制,传输性能已远远领先于相对现有技术的线性传输机制。
其中,所获得的查询结果以字节流的方式传输至该缓冲区。在现有技术中,Impala通过JNI获取HBase的数据,每次均是获取一行记录中的一列数据并传输至Impala,传输性能较差。而本发明中,利用该字节流的方式可以保证每次获取多行数据,往往是10万行数据,其单词传输的数据量远远大于现有技术的方案。
步骤3,以套接字socket的方式,将该缓冲区中存储的数据传输至Impala。
每次Impala从该独立进程HBaseDataEngine获取数据时,会拉取当前缓冲区的一批数据(缓冲区大小可配,但其容量一般均远大于一行数据的大小),直到拉取到的批数据为空为止,此时代表一个表的数据传输完毕。而数据的解析,即解码编码,在Impala的进程中实现。
其中,传输数据类型为二进制类型。同时,与步骤2类似,步骤3中,也利用字节流的方式将该缓冲区中存储的数据传输至Impala。即,将缓冲区中存储的数据以字节流的方式通过RPC接口,传输至节点HBaseScanNode。
在现有技术中,Impala通过JNI方式进行数据访问,序列化以及反序列化均由JNI负责实现,传输效率低。由于本发明采用了以socket传输二进制数据,故而在数据传输这层,没有序列化以及反序列化的开销,传输性能更好。socket的传输方式不存在性能瓶颈,性能比JNI的传输方式更加高效。
在一优化实施例中,本发明进一步包括步骤4,参见如图4所示:
步骤4,由Impala对二进制数据进行序列化和反序列化。
即,由Impala承担起序列化和反序列化的工作,使得数据的传输负担更少,传输效率更高。
针对本发明的技术方案,在部署上,每台节点均有HBaseDataEngine和HBase的进程,即HBaseDataEngine只会访问本地的HBase Region。Impala的进程部署没有限制,可以和HBaseDataEngine一致或者不一致。如果一致,Impala会访问本地的HBaseDataEngine;如果不一致的话,由Impala负责分配哪个Impala进程访问哪个节点的HBaseDataEngine。
与该Impala与HBase之间的高效数据传输方法对应的,本发明还公开了一种Impala与HBase之间的高效数据传输系统。如图5、6所示,为该高效数据传输系统的结构示意图。该高效数据传输系统100包括:
编译单元101,用于将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同。
查询单元102,用于使得每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区;
传输单元103,用于以socket的方式,将该缓冲区中存储的数据传输至Impala。
该编译单元101与步骤1相对应,该查询单元102与步骤2相对应,该传输单元103与步骤3相对应。
该查询指令为HBase可以识别的API。该查询单元以字节流的方式将该查询结果传输至该缓冲区,该传输单元以字节流的方式将该缓冲区中存储的数据传输至Impala。该传输单元的传输数据类型为二进制类型。
所述的高效数据传输系统100还包括解析单元104,用于由Impala对二进制数据进行序列化和反序列化。该解析单元104与该步骤4相对应。
通过上述的技术方案,本发明实现的技术效果在于,当HBase的某张表存在多个Region时,Impala从这张表加载数据时,所有Region均并发传输,从而获得较高的传输性能。另外,通过采用以socket传输二进制数据的方式,使得本发明在数据传输这层,没有序列化以及反序列化的开销,不存在性能瓶颈,使得传输性能比JNI的传输方式更加高效。

Claims (10)

1.一种Impala与HBase之间的高效数据传输方法,其特征在于,包括:
步骤1,将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同;
步骤2,每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区;
步骤3,以socket的方式,将该缓冲区中存储的数据传输至Impala;
在Impala与HBase之间增加一个独立进程HBaseDataEngine,Impala与独立进程HBaseDataEngine进行交互,由独立进程HBaseDataEngine从HBase获取数据,并输送给Impala;当Impala需要一个表的数据时,部署有Impala的节点HBaseScanNode发出SQL查询语句至独立进程HBaseDataEngine的RPC接口,独立进程HBaseDataEngine接到该SQL查询语句后,将该SQL查询语句编译为查询指令;并将该SQL查询语句编译成HBase可以识别的API,即scanner,scanner即为所述查询指令,scanner的个数等于HBase中Region的个数。
2.如权利要求1所述的高效数据传输方法,其特征在于,该查询指令为HBase可以识别的API。
3.如权利要求1所述的高效数据传输方法,其特征在于,该步骤2中以字节流的方式将该查询结果传输至该缓冲区,该步骤3中以字节流的方式将该缓冲区中存储的数据传输至Impala。
4.如权利要求1所述的高效数据传输方法,其特征在于,该步骤3中,传输数据类型为二进制类型。
5.如权利要求4所述的高效数据传输方法,其特征在于,步骤3之后还包括步骤4,由Impala对二进制数据进行序列化和反序列化。
6.一种Impala与HBase之间的高效数据传输系统,其特征在于,包括:
编译单元,用于将Impala发出的查询语句编译为查询指令,该查询指令的数量与HBase的Region的数量相同;
查询单元,用于使得每个该查询指令对应查询该HBase的一个Region,所有该查询指令并行对该HBase进行查询,所获得的查询结果并行传输至一缓冲区;
传输单元,用于以socket的方式,将该缓冲区中存储的数据传输至Impala;
在Impala与HBase之间增加一个独立进程HBaseDataEngine,Impala与独立进程HBaseDataEngine进行交互,由独立进程HBaseDataEngine从HBase获取数据,并输送给Impala;当Impala需要一个表的数据时,部署有Impala的节点HBaseScanNode发出SQL查询语句至独立进程HBaseDataEngine的RPC接口,独立进程HBaseDataEngine接到该SQL查询语句后,由一并行控制模块将该SQL查询语句发送至一SQL编译模块,编译为查询指令;该SQL编译模块将该SQL查询语句编译成HBase可以识别的API,即scanner,scanner即为所述查询指令,scanner的个数等于HBase中Region的个数。
7.如权利要求6所述的高效数据传输系统,其特征在于,该查询指令为HBase可以识别的API。
8.如权利要求6所述的高效数据传输系统,其特征在于,该查询单元以字节流的方式将该查询结果传输至该缓冲区,该传输单元以字节流的方式将该缓冲区中存储的数据传输至Impala。
9.如权利要求6所述的高效数据传输系统,其特征在于,该传输单元的传输数据类型为二进制类型。
10.如权利要求9所述的高效数据传输系统,其特征在于,还包括解析单元,用于由Impala对二进制数据进行序列化和反序列化。
CN201611228895.XA 2016-12-27 2016-12-27 一种Impala与HBase之间的高效数据传输方法及系统 Active CN106648934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611228895.XA CN106648934B (zh) 2016-12-27 2016-12-27 一种Impala与HBase之间的高效数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611228895.XA CN106648934B (zh) 2016-12-27 2016-12-27 一种Impala与HBase之间的高效数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN106648934A CN106648934A (zh) 2017-05-10
CN106648934B true CN106648934B (zh) 2019-12-03

Family

ID=58832889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611228895.XA Active CN106648934B (zh) 2016-12-27 2016-12-27 一种Impala与HBase之间的高效数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN106648934B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625585B (zh) * 2020-05-22 2021-08-31 中科驭数(北京)科技有限公司 硬件加速数据库的访问方法、装置、主机及存储介质
CN111984679B (zh) * 2020-07-02 2021-06-04 中科驭数(北京)科技有限公司 硬件加速数据库的访问方法、装置、主机、系统及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617211A (zh) * 2013-11-20 2014-03-05 浪潮电子信息产业股份有限公司 一种HBase加载数据的导入方法
CN103955502A (zh) * 2014-04-24 2014-07-30 科技谷(厦门)信息技术有限公司 一种可视化olap的应用实现方法及系统
CN104077420A (zh) * 2014-07-21 2014-10-01 北京京东尚科信息技术有限公司 一种数据导入HBase数据库的方法和装置
CN104683472A (zh) * 2015-03-12 2015-06-03 浪潮集团有限公司 一种支持大数据量的数据传输方法
CN105376110A (zh) * 2015-10-26 2016-03-02 上海华讯网络系统有限公司 以大数据流式技术实现网络数据包的分析方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617211A (zh) * 2013-11-20 2014-03-05 浪潮电子信息产业股份有限公司 一种HBase加载数据的导入方法
CN103955502A (zh) * 2014-04-24 2014-07-30 科技谷(厦门)信息技术有限公司 一种可视化olap的应用实现方法及系统
CN104077420A (zh) * 2014-07-21 2014-10-01 北京京东尚科信息技术有限公司 一种数据导入HBase数据库的方法和装置
CN104683472A (zh) * 2015-03-12 2015-06-03 浪潮集团有限公司 一种支持大数据量的数据传输方法
CN105376110A (zh) * 2015-10-26 2016-03-02 上海华讯网络系统有限公司 以大数据流式技术实现网络数据包的分析方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Impala整体架构及操作;徐东辉;《电信网技术》;20150815(第8期);15-21 *
海量数据存储和准实时查询系统设计与实现;齐方方;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150815(第8期);I138-1054 *

Also Published As

Publication number Publication date
CN106648934A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
US9251272B2 (en) Reconfigurable hardware structures for functional pipelining of on-chip special purpose functions
US10110709B2 (en) Dynamic Utilization of Condensing Metadata
US20010056504A1 (en) Method and apparatus of data exchange using runtime code generator and translator
US20150319238A1 (en) Method, device and storage medium for data processing
US20110264819A1 (en) Binary data serialization system using machine dependant data alignement
CN103646073A (zh) 一种基于HBase表的条件查询优化方法
US20080281920A1 (en) Adaptive parsing and compression of soap messages
CN111625585B (zh) 硬件加速数据库的访问方法、装置、主机及存储介质
CN110661891B (zh) 一种基于单向网络的跨网文件即时传输方法及系统
CN106648934B (zh) 一种Impala与HBase之间的高效数据传输方法及系统
CN114356971A (zh) 数据处理方法、装置以及系统
CN108876628A (zh) 金融量化分析数据传输方法
CN103731492A (zh) 一种页面传输处理方法、装置和系统
US20120084306A1 (en) Systems, methods, and apparatus for accessing object representations of data sets
CN117743301A (zh) 数据库路由优化方法、装置、电子设备及存储介质
US9069821B2 (en) Method of processing files in storage system and data server using the method
US9201838B2 (en) Systems and methods for the efficient exchange of hierarchical data
CN111984679B (zh) 硬件加速数据库的访问方法、装置、主机、系统及介质
CN111782399B (zh) 一种基于udp的配置服务器高效实现的方法
CN111125207B (zh) 一种数据获取方法、装置、连接器及presto引擎
CN114546274A (zh) 一种基于缓存的大数据处理维表存算系统及其方法
CN110287378B (zh) 一种基于动态代码生成的图计算方法及系统
CN114003583A (zh) 一种目标格式数据请求体的构建方法、装置、介质及设备
WO2021108813A3 (en) System and method of communications using parallel data paths
CN113760986A (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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Cheng Xueqi

Inventor after: Ou Chengeng

Inventor after: Zheng Tianqi

Inventor after: Zhang Jingliang

Inventor after: Jin Xiaolong

Inventor before: Zhang Jingliang

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170712

Address after: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Applicant after: Institute of Computing Technology, Chinese Academy of Sciences

Applicant after: Branch DNT data Polytron Technologies Inc

Address before: 100190 Beijing, Zhongguancun Academy of Sciences, South Road, No., building a comprehensive research room, room 6, No. 900

Applicant before: Branch DNT data Polytron Technologies Inc

GR01 Patent grant
GR01 Patent grant