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跨数据中心对于用户进行多表之间的关联查询时,会造成大量无效数据的传输,增大了集群中设 ...
【技术保护点】
一种查询数据的方法,其特征在于,所述方法由数据查询系统执行,所述数据查询系统包括客户端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作为所述查询指令...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。