查询数据的方法和数据查询系统技术方案

技术编号:17615364 阅读:62 留言:0更新日期:2018-04-04 06:39
本发明专利技术提供了一种查询数据的方法和数据查询系统,数据查询系统包括客户端Client模块和多个代理Agent模块,多个代理Agent模块中的每个Agent模块对应一个数据存储集群,方法包括:Client模块获取序列化查询指令集合,序列化查询指令集合包括至少两个查询指令;第一Agent模块根据序列化查询指令集合,从第一数据存储集群的数据库中查询数据,得到第一查询结果;第一Agent模块将第一查询结果返回Client模块。本发明专利技术的查询数据的方法可以减少系统中无效数据的传输,提高数据存储集群间的带宽利用率,并且可以降低Client模块和数据存储集群间的交互次数,能够提高查询响应速度。

Method and data query system for querying data

The present invention provides a method of data query and data query system, data query system including client Client module and the multi proxy Agent module, Agent module comprises a plurality of agents in each Agent module and a corresponding data storage cluster method: Client module gets serialized query instruction set, the instruction set includes at least two sequence of query a query; the first Agent module according to the sequence of query instruction set, query the data from the first data storage cluster database, the first query results; the first Agent module will first return query results of Client module. The method of querying data can reduce the transmission of invalid data in the system, improve the bandwidth utilization ratio of data storage clusters, and reduce the number of interactions between Client modules and data storage clusters, and improve query response speed.

【技术实现步骤摘要】
查询数据的方法和数据查询系统
本申请涉及计算领域,并且更具体地,涉及一种查询数据的方法和数据查询系统。
技术介绍
大型企业或大型组织通常会在不同的地理位置部署多个数据中心(DataCenter,DC)。例如,Hbase就是一种大数据场景中通用的分布式数据存储集群,不同的集群会部署在地理上分散的多个数据中心中。Hbase的不同的集群通常会存储不同的数据,数据采用键值(key-value)存储方式。用户在使用Hbase时,通常会涉及到查询多个数据中心的数据库中的数据。目前用户与Hbase通信时,主要依赖HbaseClient。一个HbaseClient一次只能连接一个Hbase集群。用户如果需要访问多个集群的数据,只能通过在HbaseClient中部署相应的应用程序,利用HbaseClient分别和特定的一个或多个集群通信。HbaseClient分别向不同的集群发起数据请求,完成数据的汇总和处理。具体地,例如Hbase中包括两个集群,每个集群中有两张表,分别为Table_1和Table_2。每张表在不同的集群中具有完全相同的表结构,但是每张表在不同的集群中具有不同的数据内容。查询数据时,HbaseClient根据查询指令先到每个集群中分别查询Table_1,获取其中的中间结果content_1,将所有集群查询到的content_1汇总到一起。而后,HbaseClient再根据汇总后的content_1到每个集群中分别查询Table_2,得到最终的查询结果。在该过程中,Hbase跨数据中心对于用户进行多表之间的关联查询时,会造成大量无效数据的传输,增大了集群中设备的负荷,并且HbaseClient需要和Hbase的不同集群进行多次交互才能得到最终的查询结果,导致查询响应慢。
技术实现思路
本申请提供一种查询数据的方法和数据查询系统,坑容易提高数据存储集群间的带宽利用率,能够提高查询响应速度。第一方面,提供了一种查询数据的方法,所述方法由数据查询系统执行,所述数据查询系统包括客户端Client模块和多个代理Agent模块,所述多个Agent模块中的每个Agent模块对应一个数据存储集群,其中,第一Agent模块对应第一数据存储集群,所述第一Agent模块用于从所述第一数据存储集群的数据库中查询数据,所述方法包括:所述Client模块获取序列化查询指令集合,所述序列化查询指令集合包括至少两个查询指令;所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果;所述第一Agent模块将所述第一查询结果返回所述Client模块。第一方面的查询数据的方法,通过增加Agent模块,Client模块获取序列化查询指令集合,并下发给Agent模块,由Agent模块在其所对应的数据存储集群中执行数据查询,并将最终的查询结果返回Client模块,可以减少系统中无效数据的传输,提高数据存储集群间的带宽利用率,并且可以降低Client模块和数据存储集群间的交互次数,能够提高查询响应速度。结合第一方面,在第一方面的第一种可能的实现方式中,所述序列化查询指令集合包括N个查询指令,所述N个查询指令按照查询的逻辑顺序包括查询指令1,…,查询指令i,…,查询指令N,其中,查询指令i对应第一中间结果i,N大于或等于2,所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果,包括:所述第一Agent模块根据所述查询指令1,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果1;所述第一Agent模块将第一中间结果i-1作为所述查询指令i的查询条件,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果i,其中,i的取值为2,…,N,当i等于N时,将第一中间结果N作为所述第一查询结果。第一种可能的实现方式可以适用于将第一中间结果i-1作为查询指令i的查询条件时,第一中间结果i也存储在同一个数据存储集群的情况。结合第一方面,在第一方面的第二种可能的实现方式中,所述序列化查询指令集合包括N个查询指令,所述N个查询指令按照查询的逻辑顺序包括查询指令1,…,查询指令i,…,查询指令N,其中,查询指令i对应第一中间结果i,N大于或等于2,所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果,包括:所述第一Agent模块根据所述查询指令1,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果1;所述第一Agent模块根据元数据信息,确定将第一中间结果i-1作为所述查询指令i的查询条件时得到的中间结果i所在的数据存储集群;当将第一中间结果i-1作为所述查询指令i的查询条件时得到的中间结果i所在的数据存储集群为所述第一数据存储集群时,所述第一Agent模块将第一中间结果i-1作为所述查询指令i的查询条件,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果i,其中,i的取值为2,…,N,当i等于N时,将第一中间结果N作为所述第一查询结果;当将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群不为所述第一数据存储集群时,所述第一Agent模块将所述第一中间结果i-1发送给第二数据存储集群对应的第二Agent模块。第二种可能的实现方式可以适用于将第一中间结果i-1作为查询指令i的查询条件时,第一中间结果i可能存储在同一个数据存储集群,也可能存储在不同的数据存储集群的情况。结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述元数据信息包括所述第一数据存储集群的数据库中数据的第一元数据信息,所述第一Agent模块根据元数据信息,确定将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群,包括:所述第一Agent模块根据所述第一元数据信息,确定将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群不为所述第一数据存储集群;所述第一Agent模块将所述第一中间结果i-1发送给第二数据存储集群对应的第二Agent模块,包括:所述第一Agent模块将所述第一中间结果i-1发送给与所述第一数据存储集群相邻的所述第二数据存储集群对应的所述第二Agent模块。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:所述第一Agent模块向所述第二Agent模块发送指示信息,所述指示信息用于指示已经在所述第一数据存储集群中查询过将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i,并且将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群不是所述第一数据存储集群。在第一方面的第四种可能的实现方式可以防止第一中间结果i-1在Agent模块中重复的进行传输,甚至出现死循环的情况。结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述元数据信息包括第一元数据信息和第二元数据信息,所述第一元数据信息为所述第一数据存储集群的数据库中数据的元数据信息,所述第二元数据信息为除所述第一数据存储集群以外的其它数据存储集群的数本文档来自技高网
...
查询数据的方法和数据查询系统

【技术保护点】
一种查询数据的方法,其特征在于,所述方法由数据查询系统执行,所述数据查询系统包括客户端Client模块和多个代理Agent模块,所述多个Agent模块中的每个Agent模块对应一个数据存储集群,其中,第一Agent模块对应第一数据存储集群,所述第一Agent模块用于从所述第一数据存储集群的数据库中查询数据,所述方法包括:所述Client模块获取序列化查询指令集合,所述序列化查询指令集合包括至少两个查询指令;所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果;所述第一Agent模块将所述第一查询结果返回所述Client模块。

【技术特征摘要】
1.一种查询数据的方法,其特征在于,所述方法由数据查询系统执行,所述数据查询系统包括客户端Client模块和多个代理Agent模块,所述多个Agent模块中的每个Agent模块对应一个数据存储集群,其中,第一Agent模块对应第一数据存储集群,所述第一Agent模块用于从所述第一数据存储集群的数据库中查询数据,所述方法包括:所述Client模块获取序列化查询指令集合,所述序列化查询指令集合包括至少两个查询指令;所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果;所述第一Agent模块将所述第一查询结果返回所述Client模块。2.根据权利要求1所述的方法,其特征在于,所述序列化查询指令集合包括N个查询指令,所述N个查询指令按照查询的逻辑顺序包括查询指令1,…,查询指令i,…,查询指令N,其中,查询指令i对应第一中间结果i,N大于或等于2,所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果,包括:所述第一Agent模块根据所述查询指令1,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果1;所述第一Agent模块将第一中间结果i-1作为所述查询指令i的查询条件,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果i,其中,i的取值为2,…,N,当i等于N时,将第一中间结果N作为所述第一查询结果。3.根据权利要求1所述的方法,其特征在于,所述序列化查询指令集合包括N个查询指令,所述N个查询指令按照查询的逻辑顺序包括查询指令1,…,查询指令i,…,查询指令N,其中,查询指令i对应第一中间结果i,N大于或等于2,所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果,包括:所述第一Agent模块根据所述查询指令1,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果1;所述第一Agent模块根据元数据信息,确定将第一中间结果i-1作为所述查询指令i的查询条件时得到的中间结果i所在的数据存储集群;当将第一中间结果i-1作为所述查询指令i的查询条件时得到的中间结果i所在的数据存储集群为所述第一数据存储集群时,所述第一Agent模块将第一中间结果i-1作为所述查询指令i的查询条件,从所述第一数据存储集群的数据库中查询数据,得到第一中间结果i,其中,i的取值为2,…,N,当i等于N时,将第一中间结果N作为所述第一查询结果;当将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群不为所述第一数据存储集群时,所述第一Agent模块将所述第一中间结果i-1发送给第二数据存储集群对应的第二Agent模块。4.根据权利要求3所述的方法,其特征在于,所述元数据信息包括所述第一数据存储集群的数据库中数据的第一元数据信息,所述第一Agent模块根据元数据信息,确定将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群,包括:所述第一Agent模块根据所述第一元数据信息,确定将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群不为所述第一数据存储集群;所述第一Agent模块将所述第一中间结果i-1发送给第二数据存储集群对应的第二Agent模块,包括:所述第一Agent模块将所述第一中间结果i-1发送给与所述第一数据存储集群相邻的所述第二数据存储集群对应的所述第二Agent模块。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述第一Agent模块向所述第二Agent模块发送指示信息,所述指示信息用于指示已经在所述第一数据存储集群中查询过将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i,并且将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群不是所述第一数据存储集群。6.根据权利要求3所述的方法,其特征在于,所述元数据信息包括第一元数据信息和第二元数据信息,所述第一元数据信息为所述第一数据存储集群的数据库中数据的元数据信息,所述第二元数据信息为除所述第一数据存储集群以外的其它数据存储集群的数据库中数据的元数据信息,所述第一Agent模块根据元数据信息,确定将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群,包括:所述第一Agent模块根据所述第一元数据信息和所述第二元数据信息,确定将第一中间结果i-1作为查询指令i的查询条件时得到的中间结果i所在的数据存储集群为所述第二数据存储集群。7.根据权利要求2至6中任一项所述的方法,其特征在于,所述第一Agent模块根据所述序列化查询指令集合,从所述第一数据存储集群的数据库中查询数据,得到第一查询结果,还包括:所述第一Agent模块接收第三Agent模块发送的第三中间结果i-1,所述第一Agent模块将所述第三中间结果i-1作为所述查询指令...

【专利技术属性】
技术研发人员:党李飞崔鑫
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1