一种数据库数据查询方法和设备技术

技术编号:14339541 阅读:118 留言:0更新日期:2017-01-04 12:07
本申请实施例公开了一种数据库数据查询方法,应用于包括关系型数据库和非关系型数据库的系统中,当接收到需要同时在关系型数据库和非关系型数据库中进行数据查询的SQL时,根据SQL中用于在关系型数据库中进行数据查询的SQL部分,获取关系型数据库中相对应的第一数据;根据第一数据生成用于在非关系型数据库中进行数据查询的row key,并获取非关系型数据库中与row key相对应的第二数据;将第一数据与第二数据进行匹配,生成SQL对应的查询数据。从而,能够实现使用一条需要同时在关系型数据库和非关系型数据库中进行数据查询的SQL,到两个数据库中去查询相关数据,进而能够实现跨关系型数据库和非关系型数据库的连接操作的技术效果。

【技术实现步骤摘要】

本申请涉及计算机
,特别涉及一种数据库数据查询方法和设备
技术介绍
近年来,有很多公司或者企业选择将公司或者企业内部的很多数据存储于MySQL数据库(一种小型关系型数据库)和Hbase数据库(一种开源的非关系型分布式数据库)上。进一步,当这些公司或者企业要用这些数据去进行某项业务时,就需要到这两个数据库去查询相关的数据;其中,到这两个数据库中查询数据的过程中,会用到一条要同时在MySQL数据库和Hbase数据库中获取数据的SQL(StructuredQueryLanguage,结构化查询语言);其中,SQL是专门用于访问和处理数据库的标准的计算机语言。专利技术人在实现本申请的过程中发现,对于MySQL数据库而言,其是支持SQL的,而对于Hbase数据库而言,其却是不支持SQL的。因此,现有技术中无法实现使用一条同时涉及到MySQL数据库和Hbase数据库的SQL到两个数据库中去查询相关数据。现有技术中亟待找到一种能够实现使用一条同时涉及到MySQL数据库和Hbase数据库的SQL到两个数据库中去查询相关数据的方案,进而以实现跨MySQL和Hbase的join(连接)操作。
技术实现思路
本申请实施例提供一种数据库数据查询方法和设备,以实现使用一条同时涉及到MySQL数据库和Hbase数据库的SQL到两个数据库中去查询相关数据,进而以实现跨MySQL和Hbase的join操作。为了达到上述目的,本申请实施例提供一种数据库数据查询方法,其特征在于,所述方法应用于包括关系型数据库和非关系型数据库的系统中,该方法包括:当接收到需要同时在所述关系型数据库和所述非关系型数据库中进行数据查询的查询语句SQL时,获取所述SQL中用于在所述关系型数据库中进行数据查询的SQL部分;根据所述SQL部分获取所述关系型数据库中与所述SQL部分相对应的第一数据;根据所述第一数据生成用于在所述非关系型数据库中进行数据查询的主键rowkey;根据所述rowkey获取所述非关系型数据库中与所述rowkey相对应的第二数据;将所述第一数据与所述第二数据进行匹配,并根据匹配结果生成所述SQL对应的查询数据。本申请实施例还提供一种一种数据库数据查询设备,其特征在于,所述设备应用于包括关系型数据库和非关系型数据库的系统中,该设备包括:第一获取模块,用于当接收到需要同时在所述关系型数据库和所述非关系型数据库中进行数据查询的查询语句SQL时,获取所述SQL中用于在所述关系型数据库中进行数据查询的SQL部分;第二获取模块,用于根据所述SQL部分获取所述关系型数据库中与所述SQL部分相对应的第一数据;第一生成模块,用于根据所述第一数据生成用于在所述非关系型数据库中进行数据查询的主键rowkey;第三获取模块,用于根据所述rowkey获取所述非关系型数据库中与所述rowkey相对应的第二数据;第二生成模块,用于将所述第一数据与所述第二数据进行匹配,并根据匹配结果生成所述SQL对应的查询数据。与现有技术相比,本申请实施例公开的方法可以实现:使用一条同时涉及到MySQL数据库和Hbase数据库的SQL到两个数据库中去查询相关数据,进而以实现跨MySQL和Hbase的join操作。附图说明图1是本申请实施例一提供的一种数据库数据查询方法的流程示意图;图2是本申请实施例三提供的一种数据库数据查询设备的结构示意图。具体实施方式下面将结合本申请的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的部分实施例,而不是全部的实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。如图1所示,为本申请实施例一提供的数据库数据查询方法的流程示意图,具体包括以下步骤:步骤101、当接收到需要同时在所述关系型数据库和所述非关系型数据库中进行数据查询的SQL时,获取SQL中可用于在关系型数据库中进行数据查询的SQL部分。由于一条需要同时在关系型数据库和非关系型数据库中进行数据查询的SQL至少包括两部分,其中一部分为关系型数据库可执行的SQL部分,另外一部分为关系型数据库不可执行的SQL部分;又由于只有关系型数据库可执行的SQL部分才可用于在关系型数据库中进行数据查询,关系型数据库不可执行的SQL部分不但不能用于在关系型数据库中进行数据查询,当将其直接用于在关系型数据库中进行数据查询时,还会频繁的报错,最终影响从关系型数据库中捞取需要的数据;因此,在本申请的优选实施例中,只获取关系型数据库可执行的SQL部分或者称为可用于在关系型数据库中进行数据查询的SQL部分。具体的,在本申请的优选实施例中,采取如下方式实现只获取可用于在关系型数据库中进行数据查询的SQL部分:对完整的SQL进行解析,对解析结果进行拆分,从拆分结果中获取可用于在关系型数据库中进行数据查询的SQL部分。需要说明的是,为便于后续阐述和比较,在本申请的优先实施例中,将可用于在关系型数据库中进行数据查询的SQL部分称为SQL部分A。步骤S102、根据SQL部分A获取关系型数据库中与SQL部分A相对应的第一数据。由于关系型数据库存储数据的方式是:将数据存储到多张list列表中;因此当根据SQL部分A到关系型数据库中获取与SQL部分A相对应的第一数据时;首先要找对应的list列表;具体的,在本申请的优选实施例中,可通过如下步骤实现找对应的list列表:首先在list列表中提前设置一个特征值,然后在SQL部分A中携带这一特征值,最后比较SQL部分A中携带的特征值与list列表中设置的特征值是否相同,若相同,则证明该list列表为与其相对应的list列表;若不相同,则证明该list列表并非与其相对应的list列表;需要说明的是,本领域技术人员还可根据实际需要设置多个特征值用于找对应的list列表,在此不再一一列举。又由于每一张list列表中不止存储一个业务的数据,一个list列表中记录有多条数据,因此当找到对应的list列表之后,还需要到list列表中找与SQL部分A相对应的第一数据;具体的,在本申请的优选实施例中,可通过如下步骤实现获取list中与SQL部分A相对应的第一数据:首先根据预设的选取规则在list所记录的数据中选择一条数据作为待判断数据,其中,预设的选取规则可以为根据存储数据时的顺序进行选取;之后根据SQL部分A判断待判断数据是否是与其相对应的第一数据;具体的,在本申请的优选实施例中,可通过以下步骤实现根据SQL部分A判断待判断数据是否是与其相对应的第一数据:首先为第一数据提前设置一个特征值,然后在SQL部分A中携带这一特征值,比较SQL部分A中携带的特征值与待判断数据中设置的特征值是否相同,若相同,则证明待判断数据为与其相对应的第一数据;若不相同,则证明待判断数据并非与其相对应的第一数据;需要说明的是,证明待判断数据并非与其相对应的第一数据时,进一步,还会将在待判断数据的下一条数据作为新的待判断数据,判断其是否为与SQL部分A相对应的第一数据,并以此类推,直到找到SQL部分A相对应的第一数据。需要说明的是,在本申请的优选实施例中,与SQL部分A相对应的第一数据本文档来自技高网...
一种数据库数据查询方法和设备

【技术保护点】
一种数据库数据查询方法,其特征在于,所述方法应用于包括关系型数据库和非关系型数据库的系统中,该方法包括:当接收到需要同时在所述关系型数据库和所述非关系型数据库中进行数据查询的查询语句SQL时,获取所述SQL中用于在所述关系型数据库中进行数据查询的SQL部分;根据所述SQL部分获取所述关系型数据库中与所述SQL部分相对应的第一数据;根据所述第一数据生成用于在所述非关系型数据库中进行数据查询的主键row key;根据所述row key获取所述非关系型数据库中与所述row key相对应的第二数据;将所述第一数据与所述第二数据进行匹配,并根据匹配结果生成所述SQL对应的查询数据。

【技术特征摘要】
1.一种数据库数据查询方法,其特征在于,所述方法应用于包括关系型数据库和非关系型数据库的系统中,该方法包括:当接收到需要同时在所述关系型数据库和所述非关系型数据库中进行数据查询的查询语句SQL时,获取所述SQL中用于在所述关系型数据库中进行数据查询的SQL部分;根据所述SQL部分获取所述关系型数据库中与所述SQL部分相对应的第一数据;根据所述第一数据生成用于在所述非关系型数据库中进行数据查询的主键rowkey;根据所述rowkey获取所述非关系型数据库中与所述rowkey相对应的第二数据;将所述第一数据与所述第二数据进行匹配,并根据匹配结果生成所述SQL对应的查询数据。2.如权利要求1所述的方法,其特征在于,获取所述SQL中用于在所述关系型数据库中进行数据查询的SQL部分,具体包括以下步骤:解析所述SQL获得解析结果;拆分所述解析结果获得拆分结果;根据所述拆分结果确定所述用于在所述关系型数据库中进行数据查询的SQL部分。3.如权利要求1所述的方法,其特征在于,根据所述SQL部分获取所述关系型数据库中与所述SQL部分相对应的第一数据,具体包括:获取所述关系型数据库中与所述SQL部分相对应的用于存储所述第一数据的列表list;获取所述list中与所述SQL部分相对应的第一数据。4.如权利要求3所述的方法,其特征在于,获取所述list中与所述SQL部分相对应的第一数据,具体包括:根据预设的选取规则在所述list所记录的多条数据中选取一条数据作为待判断数据,判断所述待判断数据是否是与所述SQL部分相对应的第一数
\t据;若是,将所述待判断数据作为所述第一数据;若不是,将所述待判断数据的下一条数据作为新的待判断数据。5.如权利要求1所述的方法,其特征在于,根据所述第一数据生成用于在所述非关系型数据库中进行数据查询的rowkey,具体包括如下步骤:获取预先设定的rowkey生成规则中的第一参数和第二参数;所述第一参数用于对字符串进行加密,所述第二参数用于指示从字符串第几位开始取值;根据所述第一数据、所述第一参数以及所述第二参数生成所述rowkey。6.一种数据库数据查询设备,其特征...

【专利技术属性】
技术研发人员:吴辰侣
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1