CN105989150A - 一种基于大数据环境的数据查询方法及装置 - Google Patents
一种基于大数据环境的数据查询方法及装置 Download PDFInfo
- Publication number
- CN105989150A CN105989150A CN201510092865.XA CN201510092865A CN105989150A CN 105989150 A CN105989150 A CN 105989150A CN 201510092865 A CN201510092865 A CN 201510092865A CN 105989150 A CN105989150 A CN 105989150A
- Authority
- CN
- China
- Prior art keywords
- statement
- data
- node
- big data
- query
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 60
- 238000013519 translation Methods 0.000 claims description 46
- 238000013507 mapping Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000003780 insertion Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- ZRHANBBTXQZFSP-UHFFFAOYSA-M potassium;4-amino-3,5,6-trichloropyridine-2-carboxylate Chemical group [K+].NC1=C(Cl)C(Cl)=NC(C([O-])=O)=C1Cl ZRHANBBTXQZFSP-UHFFFAOYSA-M 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于大数据环境的数据查询方法,包括:接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并形成语句顺序;基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;生成与各结点相对应的数据操作语句;将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果,并将所述查询结果输出至所述客户端。本发明还同时公开了一种基于大数据环境的数据查询装置。采用本发明技术方案,能提供Hadoop大数据环境与关系数据库的统一查询接口,弥补了现有关系数据库数据和Hadoop大数据环境数据无法直接互通的技术瓶颈。
Description
技术领域
本发明涉及数据存储与管理领域,尤其涉及一种基于大数据环境的数据查询方法及装置。
背景技术
海杜普数据库(HBase,Hadoop Database)的特点主要有:1、大:一个表可以有上亿行,上百万列;2、面向列:面向列(族)的存储和权限控制,列(族)独立检索;3、稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
关系数据库的特点是:关系检索操作,比较便利,能够支持复杂的条件查询。
目前,大量的数据仓库数据是依托关系数据库建立的。实际应用中,数据仓库应用Hadoop技术一般采用混搭式方案,主要有以下几种:
1、把Hadoop大数据环境结果数据迁移到关系数据库环境;
2、把关系数据库数据迁移到Hadoop大数据环境;
3、通过定制开发的程序,在程序内完成特定的Hadoop结果数据和关系数据库数据的混合操作;
4、管理操作接口有多个,方法有多套。
但是,对于数据迁移,把关系数据库数据迁移到Hadoop大数据环境,这种方式占用资源包括迁移时的输入/输出(I/O,Input/Output)资源和空间资源,如果涉及增量还需要定期更新,浪费磁盘空间;把Hadoop大数据环境结果数据迁移到关系数据库环境,关系数据库的磁盘空间非常紧张而且价格远比分布式系统要贵。通过中间代码如分布式计算(MR,MapReaduce)实现对Hadoop环境下的关联查询和分析,虽然能够完成,但关系操作通过程序继续进行,则通过定制开发的程序,可复用性差,要另外投入资源,因为目前还没有一个统一的接口实现该功能。虽然现有技术中的管理操作接口有多个、方法有多套,但是,互相不兼容和支持,企业需要投入至少更多的学习成本。
发明内容
有鉴于此,本发明实施例期望提供一种基于大数据环境的数据查询方法及装置,能提供Hadoop大数据环境与关系数据库的统一查询接口,弥补了现有关系数据库和Hadoop大数据环境数据无法直接互通的技术瓶颈。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明提供了一种基于大数据环境的数据查询方法,所述方法包括:
接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序;其中,所述查询请求由标准结构化查询语言SQL语句组成;
基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;
根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句;
将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果,并将所述查询结果输出至所述客户端;
其中,所述结点类型至少包括下述类型中的一种或几种:
关系数据库类型、Hadoop大数据环境库类型、专用服务器数据库类型。
优选地,所述根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句,包括:
根据结点的结点类型确定与该结点相匹配的操作语言类型;
对于结点类型为关系数据库的数据源,生成Java数据库连接JDBC类的数据操作语句;
对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句;
对于结点类型为专用服务器的数据源,生成分布式计算MR类的中间代码。
优选地,所述对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句,包括:
将标准SQL语句翻译成HiveSQL语句,其中,所述将标准SQL语句翻译成HiveSQL语句,包括:能进行直译时,按照直译规则进行翻译;不能进行直译时,按照预设规则进行兼容处理。
优选地,所述按照预设规则进行兼容处理,包括:
读取标准SQL语句与HiveSQL语句的映射关系集合;
根据标准SQL语句的关键字从映射关系集合中确定将所述标准SQL语句翻译成HiveSQL语句所需兼容处理内容以及翻译方式;
其中,所述映射关系集合中至少包括下述兼容处理内容:
与创建、选择、插入、更新、删除、声明有关的语法树,以及等值连接处理、分号字符处理、空处理。
优选地,所述方法还包括:
基于公共仓库元模型CWM定义关系数据库的元模型以及Hadoop大数据环境库的元模型;
收集大数据环境下各系统的元数据信息,其中,所述大数据库环境至少包括Hadoop大数据环境库和关系数据库。
本发明还提供了一种基于大数据环境的数据查询装置,所述装置包括:收发模块、分析模块、执行模块和缓存模块;其中:
所述收发模块,用于接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序;其中,所述查询请求由标准SQL语句组成;还用于将所述查询结果输出至所述客户端;
所述分析模块,用于基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;
所述执行模块,用于根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句;
所述缓存模块,用于将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果。
其中,所述结点类型至少包括下述类型中的一种或几种:
关系数据库类型、Hadoop大数据环境库类型、专用服务器数据库类型。
优选地,所述执行模块包括确定子模块和翻译子模块,包括:
所述确定子模块,用于根据结点的结点类型确定与该结点相匹配的操作语言类型;
所述翻译子模块,用于对于结点类型为关系数据库的数据源,生成JDBC类的数据操作语句;对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句;对于结点类型为专用服务器的数据源,生成MR类的中间代码。
优选地,所述翻译子模块,还用于:
将标准SQL语句翻译成HiveSQL语句,其中,所述将标准SQL语句翻译成HiveSQL语句,包括:能进行直译时,按照直译规则进行翻译;不能进行直译时,按照预设规则进行兼容处理。
优选地,所述翻译子模块,还用于:
读取标准SQL语句与HiveSQL语句的映射关系集合;
根据标准SQL语句的关键字从映射关系集合中确定将所述标准SQL语句翻译成HiveSQL语句所需兼容处理内容以及翻译方式;
其中,所述映射关系集合中至少包括下述兼容处理内容:
与创建、选择、插入、更新、删除、声明有关的语法树,以及等值连接处理、分号字符处理、空处理。
优选地,所述装置还包括设置模块和收集模块,其中:
所述设置模块,用于基于CWM定义关系数据库的元模型以及Hadoop大数据环境库的元模型;
所述收集模块,用于收集大数据环境下各系统的元数据信息,其中,所述大数据库环境至少包括Hadoop大数据环境库和关系数据库。
本发明实施例所提供的基于大数据环境的数据查询方法及装置,接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序;基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句;将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果,并将所述查询结果输出至所述客户端。如此,提供了Hadoop大数据环境与关系数据库的统一查询接口,为使用者屏蔽了Hadoop大数据环境与关系数据库的两个环境的操作差异,使用者可以同时用统一的方法去操作数据,不需要预先迁移数据;弥补了现有关系数据库和Hadoop大数据环境数据无法直接互通的技术瓶颈,提高了Hadoop大数据的查询效率,扩展了关系数据库的容量,集中了管理模式,实现了关系数据和Hadoop大数据的真正互补。
另外,本发明所述技术方案,还解决了蜂巢结构化查询语言(HiveSQL,Hive Structured Query Language)与标准结构化查询语言(SQL,Structured QueryLanguage)的转换机兼容问题,实现写入标准SQL就能对Hadoop大数据环境进行操作,将大大提升Hadoop技术的普及率。
此外,本发明所述技术方案适用于数据仓库混搭式的大数据环境,尤其适用于目前已经具备一定规模的数据仓库系统应用,例如,中国移动经营分析系统,目前数据仓库规模已经比较庞大,无论往Hadoop大数据环境迁移数据还是将Hadoop大数据环境结果数据迁移回关系数据库,都是非常大的工程量和资源投入,如果在一定效率范围内,不大量移动数据,将对历史数据的保护和系统的发展有巨大的帮助。
附图说明
图1为本发明实施例提供的基于大数据环境的数据查询方法的流程示意图;
图2为本发明实施例提供的基于大数据环境的数据查询装置的组成结构示意图;
图3为本发明实施例提供的一种用于实现基于大数据环境的数据查询功能的框架示意图。
具体实施方式
为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
本发明实施例提供的基于大数据环境的数据查询方法,如图1所示,在本发明一个优选实施例中,所述方法主要包括以下步骤:
步骤101:接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序。
其中,所述查询请求由标准SQL语句组成。
这里,对所述查询请求进行解析时,还可以获取所述查询请求的关键字、关键词等。
步骤102:基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型。
这里,所述元数据信息可以通过元数据捕获接口提前获得。
优选地,所述结点类型至少包括下述类型中的一种或几种:
关系数据库类型、Hadoop大数据环境库类型、专用服务器数据库类型。
这里,所述专用服务器可以是商业智能(BI,Business Intelligence)服务器、小型机如AS400等等。
步骤103:根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句。
优选地,所述根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句,可以包括:
根据结点的结点类型确定与该结点相匹配的操作语言类型;
对于结点类型为关系数据库的数据源,生成Java数据库连接(JDBC,JavaData Base Connectivity)类的数据操作语句;
对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句;
对于结点类型为专用服务器的数据源,生成MR类的中间代码。
优选地,所述对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句,可以包括:
将标准SQL语句翻译成HiveSQL语句,其中,所述将标准SQL语句翻译成HiveSQL语句,包括:能进行直译时,按照直译规则进行翻译;不能进行直译时,按照预设规则进行兼容处理。
这里,所述预设规则可以根据现有技术中SQL与HiveSQL的语法之间的差异进行设置。
优选地,所述按照预设规则进行兼容处理,可以包括:
读取标准SQL语句与HiveSQL语句的映射关系集合;
根据标准SQL语句的关键字从映射关系集合中确定将所述标准SQL语句翻译成HiveSQL语句所需兼容处理内容以及翻译方式;
其中,所述映射关系集合中至少包括下述兼容处理内容:
与创建、选择、插入、更新、删除、声明有关的语法树,以及等值连接处理、分号字符处理、空处理。
具体地,所述标准SQL语句与HiveSQL语句的映射关系集合可以存储于云服务器中。
步骤104:将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果,并将所述查询结果输出至所述客户端。
上述方案中,优选地,所述方法还包括:
基于公共仓库元模型(CWM,Common Warehouse Metamodel)定义关系数据库的元模型以及Hadoop大数据环境库的元模型;
收集大数据环境下各系统的元数据信息,其中,所述大数据库环境至少包括Hadoop大数据环境库和关系数据库。
当然,所述大数据环境还可以包括专用服务器数据库。
这里,可以通过JDBC接口收集关系数据库数据,通过XML文件收集Hadoop大数据;通过专门接口收集专用服务器数据库上的数据。
本实施例中,之所以基于CWM定义Hadoop大数据环境库的元模型,是为了便于Hadoop大数据环境库和关系数据库之间进行转换和翻译。
Hadoop大数据环境库表对象定义可如表1所示。
表1
本实施例中所述基于大数据环境的数据查询方法,提供了Hadoop大数据环境与关系数据库的统一查询接口,为使用者屏蔽了Hadoop大数据环境与关系数据库的两个环境的操作差异,使用者可以同时用统一的方法去操作数据,即通过输入标准SQL语句去操作数据,弥补了现有关系数据库和Hadoop大数据环境数据无法直接互通的技术瓶颈,提高了Hadoop大数据的查询效率,扩展了关系数据库的容量,集中了管理模式,实现了关系数据和Hadoop大数据的真正互补;实现写入标准SQL就能对Hadoop大数据环境进行操作,将大大提升Hadoop技术的普及率。
此外,本实施例所述技术方案适用于数据仓库混搭式的大数据环境,尤其适用于目前已经具备一定规模的数据仓库系统应用,例如,中国移动经营分析系统,目前数据仓库规模已经比较庞大,无论往Hadoop大数据环境迁移数据还是将Hadoop大数据环境结果数据迁移回关系数据库,都是非常大的工程量和资源投入,如果在一定效率范围内,不大量移动数据,将对历史数据的保护和系统的发展有巨大的帮助。
需要说明的是,所述操作并不仅仅限于查询,还可以是对关系数据库和Hadoop大数据环境库表的增、删、改等一系列的管理操作。
图2为本发明实施例提供的基于大数据环境的数据查询装置的组成结构示意图,如图2所示,所述装置包括:收发模块21、分析模块22、执行模块23和缓存模块24;其中:
所述收发模块21,用于接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序;其中,所述查询请求由标准SQL语句组成;还用于将所述查询结果输出至所述客户端;
所述分析模块22,用于基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;
所述执行模块23,用于根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句;
所述缓存模块24,用于将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果。
优选地,所述结点类型至少包括下述类型中的一种或几种:
关系数据库类型、Hadoop大数据环境库类型、专用服务器数据库类型。
优选地,所述执行模块包括确定子模块231和翻译子模块232,可以包括:
所述确定子模块231,用于根据结点的结点类型确定与该结点相匹配的操作语言类型;
所述翻译子模块232,用于对于结点类型为关系数据库的数据源,生成Java数据库连接JDBC类的数据操作语句;对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句;对于结点类型为专用服务器的数据源,生成MR类的中间代码。
具体地,所述翻译子模块232,具体还可以用于:
将标准SQL语句翻译成HiveSQL语句,其中,所述将标准SQL语句翻译成HiveSQL语句,包括:能进行直译时,按照直译规则进行翻译;不能进行直译时,按照预设规则进行兼容处理。
具体地,所述翻译子模块232,具体还可以用于:
读取标准SQL语句与HiveSQL语句的映射关系集合;
根据标准SQL语句的关键字从映射关系集合中确定将所述标准SQL语句翻译成HiveSQL语句所需兼容处理内容以及翻译方式;
其中,所述映射关系集合中至少包括下述兼容处理内容:
与创建、选择、插入、更新、删除、声明有关的语法树,以及等值连接处理、分号字符处理、空处理。
具体地,所述标准SQL语句与HiveSQL语句的映射关系集合可以存储于云服务器中。
优选地,所述装置还包括设置模块25和收集模块26,其中:
所述设置模块25,用于基于CWM定义关系数据库的元模型以及Hadoop大数据环境库的元模型;
所述收集模块26,用于收集大数据环境下各系统的元数据信息,其中,所述大数据库环境至少包括Hadoop大数据环境库和关系数据库。
上述基于大数据环境的数据查询装置可应用于客户端。
在本发明实施例中,所述装置中的收发模块21、分析模块22、执行模块23、缓存模块24、设置模块25和收集模块26,可由装置中的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)或现场可编程门阵列(FPGA,Field Programmable Gate Array)实现。
本领域技术人员应当理解,图2中所示的大数据环境的数据查询装置中的各处理模块的实现功能可参照前述大数据环境的数据查询方法的相关描述而理解。本领域技术人员应当理解,图2所示的大数据环境的数据查询装置中各处理单元的功能可通过运行于处理器上的程序而实现,也可通过具体地逻辑电路而实现。
图3为本发明实施例提供的一种用于实现基于大数据环境的数据查询功能的框架示意图,如图3所示,所述框架主要包括四层,即:接口层、翻译层、执行层和元数据层;其中,
接口层:所述接口层中包括输入输出接口、SQL语法解释器以及数据输出模块,所述接口层主要用于实现与对外操作信息的传入和结果数据返回。
具体的,在传入过程中,通过SQL语法解释器把复杂的语句分解成可以理解的上下文关系、关键字和关键词,然后,通过数据输出模块将经过分解的SQL语句发送给翻译层。
翻译层:所述翻译层包括判断模块、第一翻译器和第二翻译器;其中,所述翻译层主要用于把从接口层传入的经过分解的SQL语句,经过判断后,把该语句翻译和定位到各类环境的操作语句。
具体的,所述判断模块用于接收接口层发送的经过处理的SQL语句,分析该SQL语句应该在混搭式系统的具体所属数据结点类型,以便获知要翻译的代码类型,其中,判断的信息可以从在混搭式系统的元数据字典中获得。
具体的,所述第一翻译器用于实现标准SQL到HiveSQL的翻译,包括常规语法处理程序和兼容语法处理程序;其中,标准SQL到HiveSQL的翻译,包括:对可以直译的语句,进行直译处理;对不能直译的语句,进行特殊处理。
这里,如何对常规语法进行直译处理,以及如何对不兼容的语法进行特殊处理,将在下文进行描述,在此,不再描述。
具体的,所述第二翻译器包括Hive执行程序,用于实现标准SQL到MR程序的翻译。
执行层:主要用于将翻译完毕的语句送到相应的结点执行相应的操作,将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果;所述执行层包括JDBC执行模块、Hive执行模块、MR执行模块以及缓存池。
具体的,所述JDBC执行模块用于执行JDBC类的数据操作语句;所述Hive执行模块用于执行Hive类的数据操作语句;所述MR执行模块用于执行MR类的数据操作语句;所述缓存池将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果,将所述查询结果返回至接口层。
元数据层:主要用于收集整个混搭式环境下各系统的元数据信息,作为翻译和数据定位的依据,所述元数据层包括SQL语法树、HiveSQL语法树、混搭式系统元数据字典、混搭式元数据捕获接口。
具体的,所述混搭式元数据捕获接口用于捕获元数据,所述混搭式系统元数据字典可以用于存储元数据模型。
下面介绍几种常规语法树。
【创建(Create)语法树】
说明:上述描述方式用于创建语法树的一般表示形式。【选择(Select)语法树】
SELECT select_list
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expresion[ASC|DESC]]
说明:上述描述方式属于选择语法树的一般表示形式。【插入(Insert)语法树】
insert into
table_or_view[(colun_list)]
{data_values|select_statement}
说明:上述描述方式属于插入语法树的一般表示形式。【更新(Update)语法树】
update tablename
set fieldname=fieldvalue
说明:上述描述方式属于更新语法树的一般表示形式。【删除(Delete)语法树】
DELETE FROM表名称WHERE列名称=值,
说明:上述描述方式属于删除语法树的一般表示形式。
【声明(DECLARE)语法树】:
DECLARE cursor_name CURSOR
[LOCAL|GLOBAL]
[FORWARD_ONLY|SCROLL]
[STATIC|KEYSET|DYNAMIC]
[READ_ONLY|SCROLL_LOCKS|OPTIMISTIC]
FOR select_statement
[FOR UPDATE[OF column_list]]
说明:上述描述方式属于声明语法树的一般表示形式。
下面介绍几种需要在翻译过程中注意兼容处理的情况。
1、等值连接处理
SQL中对两表内联可以写成:select*from dual a,dual b where a.key=b.key;Hive中应为select*from dual a join dual b on a.key=b.key;而不是传统的格式:SELECT t1.a1as c1,t2.b1as c2FROM t1,t2WHERE t1.a2=t2.b2。
2、分号字符处理
分号是SQL语句结束标记,在HiveSQL中也是,但是在HiveSQL中,对分号的识别没有那么智慧,例如:select concat(key,concat(';',key))from dual;但HiveSQL在解析语句时提示:FAILED:Parse Error:line 0:-1mismatched input'<EOF>'expecting)in function specification解决的办法是,使用分号的八进制的ASCII码进行转义,那么上述语句应写成:select concat(key,concat('\073',key))from dual。
3、IS[NOT]NULL处理
SQL中null代表空值,值得警惕的是,在HiveSQL中String类型的字段若是空(empty)字符串,即长度为0,那么对它进行IS NULL的判断结果是False。
4、Hive不支持将数据插入现有的表或分区中,
仅支持覆盖重写整个表,示例如下:INSERT OVERWRITE TABLE t1SELECT*FROM t2。
5、INSERT INTO表Values(),UPDATE,DELETE操作处理
如此,就不要很复杂的锁机制来读写数据,插入语法只从0.8版本开始。INSERT INTO就是在表或分区中追加数据。
6、Hive支持嵌入Mapreduce程序,来处理复杂的逻辑
如:
FROM(
MAP doctext USING'python wc_mapper.py'AS(word,cnt)
FROM docs
CLUSTER BY word
)a
REDUCE word,cnt USING'python wc_reduce.py';
--doctext:是输入;
--word,cnt:是map程序的输出;
--CLUSTER BY:将wordhash后,又作为reduce程序的输入;
并且map程序、reduce程序可以单独使用;
-DISTRIBUTE BY:用于给reduce程序分配行数据。
7、Hive支持将转换后的数据直接写入不同的表,还能写入分区、HDFS和本地目录。这样,能免除多次扫描输入表的开销。
当然,进行兼容处理时,除上述需要注意的情况外,还有很多其他情况,在此,不再赘述。
下面结合具体实例来对本发明所述基于大数据环境的数据查询方法的实现效果,进行详细说明。
实例1:实现左边外部连接(即左外连接)
SELECT count(F.title)
FROM
Hbase.FactTable F LEFT JOIN DB2.Dim D
ON F.cid=D.cid
Where D.category_name=’bingo’,
说明:提取在Hbase的FactTable中,category_name=’bingo’的记录数,但FactTable中并没category_name信息,该信息在DB2数据库的Dim表上;title存放在Hbase的FactTable上,而category_name则存放在DB2数据库的Dim库表上,Fact全表大约有1亿行数据,Dim表记录也有100万条,而category_name=’bingo’的记录只有1000条。
现有技术中,一般的处理方法有两种,第一种方法是把FactTable和DimTable集中到一起,然后再做处理;第二种方法是手工到DB2上获得category_name=’bingo’的记录数,然后导出成文件,再到HBase中,把cid相等的记录拿出来,操作过程相当繁锁。
采用本发明所述方法,通过统一接口实现查询过程,统一接口通过解释SQL,获得上下文关系,获知首先要到DB2数据库上,取得category_name=’bingo’的记录cid,然后通过cid,在HBase上找到吻合的记录,获得记录数后,返回缓冲池,再返回客户端。操作简单,结果返回也非常快。
实例2:实现向数据库表中插入数据
INSERT INTO
DB2.FactTable1000(title,category_name)
VALUES(
SELECT F.title,D.category_name
FROM
Hbase.FactTable1F LEFT JOIN DB2.Dim D
ON F.cid=D.cid
Where D.cid>1000
)
说明:提取在HBase的FactTable中,cid>1000的title,category_name和在DimTable的category_name都存放到DB2的数据库中,以供日常查询。
采用本发明所述方法,通过统一接口实现查询过程,统一接口通过解释SQL,获得上下文关系,获知首先要到DB2数据库上,cid>1000,然后通过cid,在HBase上找到吻合的记录,获得记录后,返回缓冲池,在缓冲池中,对数据进行合并处理,再返回客户端。操作简单,结果返回也非常快。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法、设备和系统,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明实施例上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于大数据环境的数据查询方法,其特征在于,所述方法包括:
接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序;其中,所述查询请求由标准结构化查询语言SQL语句组成;
基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;
根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句;
将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果,并将所述查询结果输出至所述客户端;
其中,所述结点类型至少包括下述类型中的一种或几种:
关系数据库类型、Hadoop大数据环境库类型、专用服务器数据库类型。
2.根据权利要求1所述的方法,其特征在于,所述根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句,包括:
根据结点的结点类型确定与该结点相匹配的操作语言类型;
对于结点类型为关系数据库的数据源,生成Java数据库连接JDBC类的数据操作语句;
对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句;
对于结点类型为专用服务器的数据源,生成分布式计算MR类的中间代码。
3.根据权利要求2所述的方法,其特征在于,所述对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句,包括:
将标准SQL语句翻译成HiveSQL语句,其中,所述将标准SQL语句翻译成HiveSQL语句,包括:能进行直译时,按照直译规则进行翻译;不能进行直译时,按照预设规则进行兼容处理。
4.根据权利要求3所述的方法,其特征在于,所述按照预设规则进行兼容处理,包括:
读取标准SQL语句与HiveSQL语句的映射关系集合;
根据标准SQL语句的关键字从映射关系集合中确定将所述标准SQL语句翻译成HiveSQL语句所需兼容处理内容以及翻译方式;
其中,所述映射关系集合中至少包括下述兼容处理内容:
与创建、选择、插入、更新、删除、声明有关的语法树,以及等值连接处理、分号字符处理、空处理。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于公共仓库元模型CWM定义关系数据库的元模型以及Hadoop大数据环境库的元模型;
收集大数据环境下各系统的元数据信息,其中,所述大数据库环境至少包括Hadoop大数据环境库和关系数据库。
6.一种基于大数据环境的数据查询装置,其特征在于,所述装置包括:收发模块、分析模块、执行模块和缓存模块;其中:
所述收发模块,用于接收到客户端输入的查询请求时,对所述查询请求进行解析,获取所述查询请求的上下文关系,并根据所述上下文关系形成语句顺序;其中,所述查询请求由标准SQL语句组成;还用于将所述查询结果输出至所述客户端;
所述分析模块,用于基于元数据信息,对按顺序区分的语句进行分析,获得数据源所在的结点及结点类型;
所述执行模块,用于根据数据源所在的结点及结点类型,生成与各结点相对应的数据操作语句;
所述缓存模块,用于将各结点反馈的操作结果汇总到缓冲池,根据语句顺序进行合并处理,生成查询结果。
其中,所述结点类型至少包括下述类型中的一种或几种:
关系数据库类型、Hadoop大数据环境库类型、专用服务器数据库类型。
7.根据权利要求6所述的装置,其特征在于,所述执行模块包括确定子模块和翻译子模块,包括:
所述确定子模块,用于根据结点的结点类型确定与该结点相匹配的操作语言类型;
所述翻译子模块,用于对于结点类型为关系数据库的数据源,生成JDBC类的数据操作语句;对于结点类型为Hadoop大数据环境库的数据源,生成Hive类的数据操作语句;对于结点类型为专用服务器的数据源,生成MR类的中间代码。
8.根据权利要求7所述的装置,其特征在于,所述翻译子模块,还用于:
将标准SQL语句翻译成HiveSQL语句,其中,所述将标准SQL语句翻译成HiveSQL语句,包括:能进行直译时,按照直译规则进行翻译;不能进行直译时,按照预设规则进行兼容处理。
9.根据权利要求7所述的装置,其特征在于,所述翻译子模块,还用于:
读取标准SQL语句与HiveSQL语句的映射关系集合;
根据标准SQL语句的关键字从映射关系集合中确定将所述标准SQL语句翻译成HiveSQL语句所需兼容处理内容以及翻译方式;
其中,所述映射关系集合中至少包括下述兼容处理内容:
与创建、选择、插入、更新、删除、声明有关的语法树,以及等值连接处理、分号字符处理、空处理。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括设置模块和收集模块,其中:
所述设置模块,用于基于CWM定义关系数据库的元模型以及Hadoop大数据环境库的元模型;
所述收集模块,用于收集大数据环境下各系统的元数据信息,其中,所述大数据库环境至少包括Hadoop大数据环境库和关系数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510092865.XA CN105989150B (zh) | 2015-03-02 | 2015-03-02 | 一种基于大数据环境的数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510092865.XA CN105989150B (zh) | 2015-03-02 | 2015-03-02 | 一种基于大数据环境的数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105989150A true CN105989150A (zh) | 2016-10-05 |
CN105989150B CN105989150B (zh) | 2019-11-26 |
Family
ID=57038096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510092865.XA Active CN105989150B (zh) | 2015-03-02 | 2015-03-02 | 一种基于大数据环境的数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105989150B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239548A (zh) * | 2017-06-05 | 2017-10-10 | 携程旅游网络技术(上海)有限公司 | 基于SQL Server和HIVE的报表处理方法 |
CN107273504A (zh) * | 2017-06-19 | 2017-10-20 | 浪潮软件集团有限公司 | 一种基于Kudu的数据查询方法和装置 |
CN107480252A (zh) * | 2017-08-14 | 2017-12-15 | 浪潮软件股份有限公司 | 一种数据查询方法、客户端、服务端及系统 |
CN107566372A (zh) * | 2017-09-06 | 2018-01-09 | 南京南瑞集团公司 | 大数据环境下基于特征值反馈的安全数据采集优化方法 |
CN108009236A (zh) * | 2017-11-29 | 2018-05-08 | 北京锐安科技有限公司 | 一种大数据查询方法、系统、计算机及存储介质 |
CN108228916A (zh) * | 2018-04-08 | 2018-06-29 | 中国联合网络通信集团有限公司 | 数据的查询方法及装置 |
CN108536728A (zh) * | 2018-02-24 | 2018-09-14 | 国家计算机网络与信息安全管理中心 | 一种数据查询方法和装置 |
CN109582695A (zh) * | 2018-12-04 | 2019-04-05 | 用友网络科技股份有限公司 | 一种微服务架构下数据通用查询方法及查询系统 |
WO2019097362A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
CN110032575A (zh) * | 2019-04-15 | 2019-07-19 | 网易(杭州)网络有限公司 | 数据查询方法、装置、设备和存储介质 |
CN110069489A (zh) * | 2017-10-17 | 2019-07-30 | 株式会社日立制作所 | 一种信息处理方法、装置、设备及计算机可读存储介质 |
CN110083655A (zh) * | 2018-12-29 | 2019-08-02 | 广东益萃网络科技有限公司 | 商户数据的查询方法、装置、计算机设备及存储介质 |
CN110489442A (zh) * | 2019-08-22 | 2019-11-22 | 行吟信息科技(上海)有限公司 | 一种数据查询方法及系统 |
CN110781205A (zh) * | 2019-09-12 | 2020-02-11 | 成都四方伟业软件股份有限公司 | 一种基于jdbc的数据库直查方法、装置及系统 |
CN111708848A (zh) * | 2020-06-12 | 2020-09-25 | 北京思特奇信息技术股份有限公司 | 一种数据查询方法、系统及电子设备 |
CN111797147A (zh) * | 2019-04-08 | 2020-10-20 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及装置、电子设备 |
CN111831684A (zh) * | 2019-04-15 | 2020-10-27 | 北京沃东天骏信息技术有限公司 | 数据的查询方法、装置和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521254A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 异构数据库的统一访问方法 |
CN103440303A (zh) * | 2013-08-21 | 2013-12-11 | 曙光信息产业股份有限公司 | 一种异构云存储系统及其数据处理方法 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
-
2015
- 2015-03-02 CN CN201510092865.XA patent/CN105989150B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521254A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 异构数据库的统一访问方法 |
CN103440303A (zh) * | 2013-08-21 | 2013-12-11 | 曙光信息产业股份有限公司 | 一种异构云存储系统及其数据处理方法 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239548B (zh) * | 2017-06-05 | 2020-04-07 | 携程旅游网络技术(上海)有限公司 | 基于SQL Server和HIVE的报表处理方法 |
CN107239548A (zh) * | 2017-06-05 | 2017-10-10 | 携程旅游网络技术(上海)有限公司 | 基于SQL Server和HIVE的报表处理方法 |
CN107273504A (zh) * | 2017-06-19 | 2017-10-20 | 浪潮软件集团有限公司 | 一种基于Kudu的数据查询方法和装置 |
CN107480252A (zh) * | 2017-08-14 | 2017-12-15 | 浪潮软件股份有限公司 | 一种数据查询方法、客户端、服务端及系统 |
CN107566372A (zh) * | 2017-09-06 | 2018-01-09 | 南京南瑞集团公司 | 大数据环境下基于特征值反馈的安全数据采集优化方法 |
CN107566372B (zh) * | 2017-09-06 | 2018-06-05 | 南京南瑞集团公司 | 大数据环境下基于特征值反馈的安全数据采集优化方法 |
CN110069489A (zh) * | 2017-10-17 | 2019-07-30 | 株式会社日立制作所 | 一种信息处理方法、装置、设备及计算机可读存储介质 |
CN111295652A (zh) * | 2017-11-17 | 2020-06-16 | 国际商业机器公司 | 将外部数据自动连接到业务分析过程 |
US10956420B2 (en) | 2017-11-17 | 2021-03-23 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
WO2019097362A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
CN111295652B (zh) * | 2017-11-17 | 2024-02-27 | 国际商业机器公司 | 将外部数据自动连接到业务分析过程 |
US11188536B2 (en) | 2017-11-17 | 2021-11-30 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
GB2581917A (en) * | 2017-11-17 | 2020-09-02 | Ibm | Automatically connecting external data to business analytics process |
CN108009236A (zh) * | 2017-11-29 | 2018-05-08 | 北京锐安科技有限公司 | 一种大数据查询方法、系统、计算机及存储介质 |
CN108536728A (zh) * | 2018-02-24 | 2018-09-14 | 国家计算机网络与信息安全管理中心 | 一种数据查询方法和装置 |
CN108228916A (zh) * | 2018-04-08 | 2018-06-29 | 中国联合网络通信集团有限公司 | 数据的查询方法及装置 |
CN109582695A (zh) * | 2018-12-04 | 2019-04-05 | 用友网络科技股份有限公司 | 一种微服务架构下数据通用查询方法及查询系统 |
CN110083655A (zh) * | 2018-12-29 | 2019-08-02 | 广东益萃网络科技有限公司 | 商户数据的查询方法、装置、计算机设备及存储介质 |
CN111797147A (zh) * | 2019-04-08 | 2020-10-20 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及装置、电子设备 |
CN111797147B (zh) * | 2019-04-08 | 2022-12-13 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及装置、电子设备 |
CN111831684A (zh) * | 2019-04-15 | 2020-10-27 | 北京沃东天骏信息技术有限公司 | 数据的查询方法、装置和计算机可读存储介质 |
CN110032575A (zh) * | 2019-04-15 | 2019-07-19 | 网易(杭州)网络有限公司 | 数据查询方法、装置、设备和存储介质 |
CN111831684B (zh) * | 2019-04-15 | 2024-04-05 | 北京沃东天骏信息技术有限公司 | 数据的查询方法、装置和计算机可读存储介质 |
CN110489442A (zh) * | 2019-08-22 | 2019-11-22 | 行吟信息科技(上海)有限公司 | 一种数据查询方法及系统 |
CN110781205A (zh) * | 2019-09-12 | 2020-02-11 | 成都四方伟业软件股份有限公司 | 一种基于jdbc的数据库直查方法、装置及系统 |
CN111708848A (zh) * | 2020-06-12 | 2020-09-25 | 北京思特奇信息技术股份有限公司 | 一种数据查询方法、系统及电子设备 |
CN111708848B (zh) * | 2020-06-12 | 2024-02-23 | 北京思特奇信息技术股份有限公司 | 一种数据查询方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105989150B (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105989150B (zh) | 一种基于大数据环境的数据查询方法及装置 | |
US11475034B2 (en) | Schemaless to relational representation conversion | |
US11907247B2 (en) | Metadata hub for metadata models of database objects | |
JP6617117B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
Karnitis et al. | Migration of relational database to document-oriented database: structure denormalization and data transformation | |
CN107491561B (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
US11789945B2 (en) | Clause-wise text-to-SQL generation | |
EP2572289B1 (en) | Data storage and processing service | |
US10180984B2 (en) | Pivot facets for text mining and search | |
US8103705B2 (en) | System and method for storing text annotations with associated type information in a structured data store | |
Chung et al. | JackHare: a framework for SQL to NoSQL translation using MapReduce | |
US8788464B1 (en) | Fast ingest, archive and retrieval systems, method and computer programs | |
US7792851B2 (en) | Mechanism for defining queries in terms of data objects | |
Khan et al. | Predictive performance comparison analysis of relational & NoSQL graph databases | |
CN117093599A (zh) | 面向异构数据源的统一sql查询方法 | |
CN116628066B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN116795859A (zh) | 数据分析方法、装置、计算机设备和存储介质 | |
CN111984745A (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
Brown et al. | Overview–The Social Media Data Processing Pipeline | |
CN115905164A (zh) | 对数据库工件的扩展的元数据的标识和导入 | |
CN114880483A (zh) | 一种元数据知识图谱构建方法、存储介质及系统 | |
CN110647518B (zh) | 一种数据源融合计算方法、组件及装置 | |
Ren et al. | Intelligent visualization system for big multi-source medical data based on data lake | |
Gašpar et al. | Integrating Two Worlds: Relational and NoSQL | |
Aljarallah | Comparative study of database modeling approaches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |