【技术实现步骤摘要】
一种数据查询方法和服务器
本申请涉及通信
,尤其涉及一种数据查询方法和服务器。
技术介绍
HBase数据库是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用于提供对大型数据集的随机、实时读写访问服务。其中,该HBase数据库以数据表(本文中称为HBase表)的形式存储数据,HBase表可以由行和列族组成,如表1所示,为HBase表的示例。行键(RowKey)是HBase表的索引,当接收到查询请求时,若查询请求携带的RowKey是001,则从HBase表中查询到的内容是第一行数据,因此,返回第一行数据。此外,列族(ColumnFamily)可以由一个或者多个列组成,表1中姓名、地址、年龄、手机号、邮箱等为元数据,每个元数据对应多个属性值,例如姓名对应的属性值有张三、李四。表1在上述方式下,若查询请求未携带RowKey,而是携带某个元数据(如地址)的属性值,如北京,则无法通过RowKey快速查询到行数据,而是需要对整个HBase表进行全表扫描,以查询到具有“北京”的行数据,查询性能很低。
技术实现思路
本申请提供一种数据查询方法,所述方法包括:查询器向连接器发送SparkSQL查询指令;所述SparkSQL查询指令携带HBase表的表标识、所述HBase表的元数据、与所述元数据对应的属性值;所述连接器在接收到SparkSQL查询指令后,若存储器存在所述表标识、所述元数据对应的索引表,则生成第一Phoenix查询指令,并发送给所述存储器;所述第一Phoenix查询指令携带所述表标识、所述元数据、所述属性值;所述存储器在接收到第一Phoenix查询指令后 ...
【技术保护点】
1.一种数据查询方法,其特征在于,所述方法包括:查询器向连接器发送SparkSQL查询指令;所述SparkSQL查询指令携带HBase表的表标识、所述HBase表的元数据、与所述元数据对应的属性值;所述连接器在接收到SparkSQL查询指令后,若存储器存在所述表标识、所述元数据对应的索引表,则生成第一Phoenix查询指令,并发送给所述存储器;所述第一Phoenix查询指令携带所述表标识、所述元数据、所述属性值;所述存储器在接收到第一Phoenix查询指令后,从所述表标识、所述元数据对应的索引表中,获取所述属性值对应的行键,从所述表标识对应的HBase表中,获取所述行键对应的行数据,将所述行数据返回给所述连接器;其中,索引表用于记录HBase表的元数据的属性值、HBase表的行键的对应关系;所述连接器在接收到所述行数据后,将所述行数据返回给所述查询器。
【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:查询器向连接器发送SparkSQL查询指令;所述SparkSQL查询指令携带HBase表的表标识、所述HBase表的元数据、与所述元数据对应的属性值;所述连接器在接收到SparkSQL查询指令后,若存储器存在所述表标识、所述元数据对应的索引表,则生成第一Phoenix查询指令,并发送给所述存储器;所述第一Phoenix查询指令携带所述表标识、所述元数据、所述属性值;所述存储器在接收到第一Phoenix查询指令后,从所述表标识、所述元数据对应的索引表中,获取所述属性值对应的行键,从所述表标识对应的HBase表中,获取所述行键对应的行数据,将所述行数据返回给所述连接器;其中,索引表用于记录HBase表的元数据的属性值、HBase表的行键的对应关系;所述连接器在接收到所述行数据后,将所述行数据返回给所述查询器。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述查询器向所述连接器发送SparkSQL创建指令;其中,所述SparkSQL创建指令携带HBase表的表标识、所述HBase表的元数据;所述连接器在接收到SparkSQL创建指令后,生成Phoenix创建指令,并发送给所述存储器;所述Phoenix创建指令携带所述表标识、所述元数据;所述存储器接收到Phoenix创建指令后,从所述表标识对应的HBase表中,获取所述元数据对应的属性值、所述属性值对应的行键,创建所述表标识、所述元数据对应的索引表,在索引表中记录所述属性值与所述行键的对应关系。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:查询器向连接器发送SparkSQL存储指令,SparkSQL存储指令携带HBase表的表标识、HBase表的至少一个元数据、每个元数据对应的属性值、行键;所述连接器在接收到SparkSQL存储指令后,针对每个元数据执行如下操作:若所述存储器存在所述表标识、所述元数据对应的索引表,则生成第一Phoenix存储指令,并发送给所述存储器,所述第一Phoenix存储指令携带所述表标识、所述元数据、所述元数据对应的属性值、所述属性值对应的行键;所述存储器在接收到第一Phoenix存储指令后,在所述表标识、所述元数据对应的索引表中,记录所述属性值与所述行键的对应关系。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:所述连接器在接收到所述SparkSQL存储指令后,生成第二Phoenix存储指令,并发送给所述存储器;所述第二Phoenix存储指令携带所述表标识、所述至少一个元数据、所述每个元数据对应的属性值、所述行键;所述存储器在接收到第二Phoenix存储指令后,在所述表标识对应的HBase表中,记录所述行键与每个元数据对应的属性值的对应关系。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述查询器向所述连接器发送SparkSQL删除指令;所述连接器在接收到SparkSQL删除指令后,根据所述SparkSQL删除指令生成Phoenix删除指令,并发送给所述存储器;所述存储器在接收到Phoenix删除指令后,若所述Phoenix删除指令携带HBase表的表标识、HBase表的元数据,则删除所述表标识、所述元数据对应的索引表;若所述Phoenix删除指令携带HBase表的表标识、HBase表的元数据、所述元数据对应的属性值,则从所述表标识、所述元数据对应的索引表中删除所述属性值对应的行数据。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述查询器向所述连接器发送SparkSQL获取指令;所述连接器在接收到SparkSQL获取指令后,根据所述SparkSQL获取指令生成Phoenix获取指令,并发送给所述存储器;所述存储器在接收到Phoenix获取指令后,若所述Phoenix获取指令携带HBase表的表标识、HBase表的元数据,则通过所述连接器将所述表标识、所述元数据对应的索引表返回给所述查询器;若所述Phoenix获取指令携带HBase表的表标识、HBase表的元数据、与所述元数据对应的属性值,则从所述表标识、所述元数据对应的索引表中,获取所述属性值对应的行数据,并通过所述连接器将所述行数据返回给所述查询器。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述查询器向连接器发送SparkSQL关联查询指令;所述SparkSQL关联查询指令携带HBase表的第一表标识、所述HBase表对应的关联HBase表的第二表标识;所述连接器在接收到SparkSQL关联查询指令后,生成第一Phoenix关联查询指令,并发送给所述存储器;所述第一Phoenix关联查询指令携带所述第二表标识;所述存储器在接收到第一Phoenix关联查询指令后,从所述第二表标识对应的关联HBase表中,获取所有第一类行数据,并将所有第一类行数据返回给所述连接器;其中,每个第一类行数据均包括至少一个元数据对应的属性值;针对每个第一类行数据中的每个元数据执行如下操作:若所述存储器存在第一表标识、所述元数据对应的索引表,则所述连接器生成第二Phoenix关联查询指令,并发送给所述存储器;所述第二Phoenix关联查询指令携带所述第一表标识、所述元数据、所述元数据对应的属性值;所述存储器接收到第二Phoenix关联查询指令后,从所述第一表标识、所述元数据对应的索引表中,获取所述属性值对应的行键,并从所述第一表标识对应的HBase表中,获取所述行键对应的第二类行数据,并将所述第二类行数据返回给所述连接器;所述连接器将所述第一类行数据和所述第二类行数据进行关联后,返回给所述查询器。8.一种服务器,其特征在于,包括:查询器、...
【专利技术属性】
技术研发人员:丁远普,李日光,
申请(专利权)人:新华三大数据技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。