一种数据查询方法、客户端、服务端及系统与流程

文档序号:13207854阅读:327来源:国知局
一种数据查询方法、客户端、服务端及系统与流程

本发明涉及计算机技术领域,特别涉及一种数据查询方法、客户端、服务端及系统。



背景技术:

随着大数据技术的飞速发展,hbase集群、hive分布式数据库、hdfs(hadoopdistributedfilesystem,分布式文件系统)及mysql数据库等不同类型的数据源大量产生,每一种数据源分别提供各自所对应的客户端,以便用户通过提供的客户端访问对应的数据源。

目前,由于不同数据源分别对应不同的客户端,当用户需要从多个数据源查询相应的待查询数据时,则需要利用各个数据源所分别对应的客户端连接相应的数据源,以通过连接的各个客户端从相应的数据源中查询到待查询数据,进而通过人工汇总方式对多个客户端分别查询到的待查询数据进行汇总。

可见,上述技术方案无法通过统一的客户端从多个不同的数据源分别获取相应的待查询数据,影响数据查询效率。



技术实现要素:

本发明实施例提供了一种数据查询方法、客户端、服务端及系统,可提高数据查询效率。

第一方面,本发明提供了一种数据查询方法,应用于客户端,包括:

获取至少两个待访问数据源所分别对应的配置信息;

将各个所述配置信息发送至服务端,以使所述服务器端针对每一个所述配置信息均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

向服务端发送数据查询请求;

接收所述服务端根据所述数据查询请求从各个所述数据存储表格中读取并发送的至少两个待查询数据。

优选地,

所述获取至少两个待访问数据源所分别对应的配置信息,进一步包括:获取至少两个所述待访问数据源所分别对应的数据存储表格的表格名称;

所述将各个所述配置信息发送至服务端,进一步包括:将各个所述待访问数据源所分别对应的数据存储表格的表格名称发送至所述客户端;

则,所述向服务端发送数据查询请求,包括:

根据各个所述表格名称配置结sql(structuredquerylanguage,结构化查询语言)语句;

向所述服务端发送配置的所述sql语句。

第二方面,本发明实施例提供了一种数据查询方法,应用于服务端,包括:

接收客户端发送的至少两个配置信息;

针对于每一个所述配置信息,均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

接收所述客户端发送的数据查询请求;

根据接收的所述数据查询请求,从各个所述数据存储表格中分别读取待查询数据,并将读取的至少两个所述待查询数据发送至所述客户端。

优选地,

所述接收客户端发送的至少两个配置信息,进一步包括:接收所述客户端发送的至少两个待访问数据源所分别对应的数据存储表格的表格名称;

所述构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据,进一步包括:根据所述目标待访问数据源所对应的数据存储表格的表格名称命名构建的所述数据存储表格;

则,

所述接收所述客户端发送的数据查询请求,包括:接收所述客户端发送的sql语句;

所述根据接收的所述数据查询请求,从各个所述数据存储表格中分别读取待查询数据,包括:

解析所述sql语句以确定至少一个子查询sql语句;

针对每一个所述子查询sql语句,根据当前所述子查询sql语句中携带的表格名称确定对应的数据存储表格,从确定的所述数据存储表格中读取对应的待查询数据。

第三方面,本发明实施例提供了一种客户端,包括:

获取单元,用于获取至少两个待访问数据源所分别对应的配置信息;

信息发送单元,用于将各个所述配置信息发送至服务端,以使所述服务器端针对每一个所述配置信息均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

查询请求单元,用于向服务端发送数据查询请求;

数据接收单元,用于接收所述服务端根据所述数据查询请求从各个所述数据存储表格中读取并发送的至少两个待查询数据。

优选地,

所述获取单元,进一步用于获取至少两个所述待访问数据源所分别对应的数据存储表格的表格名称;

所述信息发送单元,进一步用于将各个所述待访问数据源所分别对应的数据存储表格的表格名称发送至所述客户端;

所述查询请求单元,包括:配置子单元和发送子单元;其中,

所述配置子单元,用于根据各个所述表格名称配置sql语句;

所述发送子单元,用于向所述服务端发送配置的所述sql语句。

第四方面,本发明实施例提供了一种服务端,包括:

信息接收单元,用于接收客户端发送的至少两个配置信息;

数据处理单元,用于针对于每一个所述配置信息,均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

查询响应单元,用于接收所述客户端发送的数据查询请求;

查询处理单元,用于根据接收的所述数据查询请求,从各个所述数据存储表格中分别读取待查询数据,并将读取的至少两个所述待查询数据发送至所述客户端。

优选地,

所述信息接收单元,进一步用于接收所述客户端发送的至少两个待访问数据源所分别对应的数据存储表格的表格名称;

所述数据处理单元,进一步用于根据所述目标待访问数据源所对应的数据存储表格的表格名称命名构建的所述数据存储表格;

则,

所述查询响应单元,进一步用于接收所述客户端发送的sql语句;

所述查询处理单元,包括:解析子单元和查询子单元;其中,

所述解析子单元,用于解析所述sql语句以确定至少一个子查询sql语句;

所述查询子单元,用于针对每一个所述子查询sql语句,根据当前所述子查询sql语句中携带的表格名称确定对应的数据存储表格,从确定的所述数据存储表格中读取对应的待查询数据。

第五方面,本发明实施例提供了一种数据查询系统,包括:

至少两个数据源、如第三方面中任一所述的客户端,以及如第四方面中任一所述的服务端;其中,

所述服务端与所述客户端相连;

每一个所述数据源均与所述服务端相连;

所述数据源,用于存储备查询数据。

优选地,

所述至少两个数据源,包括:hbase集群、hive分布式数据库、hdfs及mysql数据库中的至少两个。

本发明实施例提供了一种数据查询方法、客户端、服务端及系统,应用于客户端的方法中,客户端首先获取至少两个待访问数据源所分别对应的配置信息,并将获取的各个配置信息发送至服务端,则可使服务端针对于每一个配置信息,根据当前配置信息从当前配置信息所对应的目标待访问数据源读取相应的备查询数据,并构建对应于目标待访问数据源的数据存储表格来存储从目标待访问数据源中读取的备查询数,即实现通过服务端构建的各个数据存储表格来存储各个待访问数据源中存储的备查询数据;当需要查询各个待访问数据中的待查询数据时,则可通过客户端向服务端发送相应的数据查询请求,使得服务端根据数据查询请求从各个数据查询表格中读取相应的待查询数据,并将读取的待查询数据反馈到客户端,客户端无需访问各个待访问数据源即可获取到各个待访问数据源中分别存储的待查询数据。综上可见,本发明实施例提供的技术方案,仅需要通过一个统一的客户端则可实现对多个待访问数据源中分别存储的待查询数据进行关联查询,以从多个不同的数据源分别获取相应的待查询数据,可提高数据查询效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种应用于客户端的数据查询方法的流程图;

图2是本发明一实施例提供的一种应用于服务端的数据查询方法的流程图;

图3是本发明一实施例提供的一种客户端的结构示意图;

图4是本发明一实施例提供的另一种客户端的结构示意图;

图5是本发明一实施例提供的一种服务端的结构示意图;

图6是本发明一实施例提供的另一种服务端的结构示意图;

图7是本发明一实施例提供的一种数据查询系统的结构示意图;

图8是本发明一实施例提供的又一种数据查询方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种数据查询方法,应用于客户端,包括:

步骤101,获取至少两个待访问数据源所分别对应的配置信息;

步骤102,将各个所述配置信息发送至服务端,以使所述服务器端针对每一个所述配置信息均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

步骤103,向服务端发送数据查询请求;

步骤104,接收所述服务端根据所述数据查询请求从各个所述数据存储表格中读取并发送的至少两个待查询数据。

本发明上述实施例中,客户端首先获取至少两个待访问数据源所分别对应的配置信息,并将获取的各个配置信息发送至服务端,则可使服务端针对于每一个配置信息,根据当前配置信息从当前配置信息所对应的目标待访问数据源读取相应的备查询数据,并构建对应于目标待访问数据源的数据存储表格来存储从目标待访问数据源中读取的备查询数,即实现通过服务端构建的各个数据存储表格来存储各个待访问数据源中存储的备查询数据;当需要查询各个待访问数据中的待查询数据时,则可通过客户端向服务端发送相应的数据查询请求,使得服务端根据数据查询请求从各个数据查询表格中读取相应的待查询数据,并将读取的待查询数据反馈到客户端,客户端无需访问各个待访问数据源即可获取到各个待访问数据源中分别存储的待查询数据。综上可见,本发明实施例提供的技术方案,仅需要通过一个统一的客户端则可实现对多个待访问数据源中分别存储的待查询数据进行关联查询,以从多个不同的数据源分别获取相应的待查询数据,可提高数据查询效率。

为了方便服务端能够并发查询各个数据存储表格中存储的待查询数据,本发明一个实施例中,所述获取至少两个待访问数据源所分别对应的配置信息,进一步包括:获取至少两个所述待访问数据源所分别对应的数据存储表格的表格名称;

所述将各个所述配置信息发送至服务端,进一步包括:将各个所述待访问数据源所分别对应的数据存储表格的表格名称发送至所述客户端;

则,所述向服务端发送数据查询请求,包括:

根据各个所述表格名称配置sql语句;

向所述服务端发送配置的所述sql语句。

本发明上述实施例中,客户端根据各个表格名称配置sql语句,并将配置的sql语句发送至服务端,服务端则可对接收的sql语句进行解析以得到多个子查询sql语句,由于各个子查询sql语句携带相应数据存储表格的表格名称,服务端则可根据各个子查询sql语句形成基于内存的并行计算任务,每一个并行计算任务分别对应一个子查询sql语句,从而实现并发执行从每一个数据存储表格中分别读取相应的待查询数据,进一步提高数据查询效率。

应当理解的是,sql语句中除携带各个表格名称外,还可以携带对应于待查询数据的其它指示性标识,比如待查询数据所对应的关键词、字段名称等。

显而易见的,至少两个数据源还可以是同一个数据库下的不同数据库表,通过本发明的方法可实现对同一个数据库下不同数据库表中存储的待查询数据进行关联查询。

如图2所示,本发明实施例提供了一种数据查询方法,应用于服务端,包括:

步骤201,接收客户端发送的至少两个配置信息;

步骤202,针对于每一个所述配置信息,均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

步骤203,接收所述客户端发送的数据查询请求;

步骤204,根据接收的所述数据查询请求,从各个所述数据存储表格中分别读取待查询数据,并将读取的至少两个所述待查询数据发送至所述客户端。

本发明上述实施例中,服务端在接收到客户端发送的至少两个配置信息之后,则可针对于每一个配置信息,根据当前配置信息从当前配置信息所对应的目标待访问数据源读取相应的备查询数据,并构建对应于目标待访问数据源的数据存储表格来存储从目标待访问数据源中读取的备查询数,即实现通过构建的各个数据存储表格来存储各个待访问数据源中存储的备查询数据;当客户端需要关联查询多个待访问数据源中存储的待查询数据时,则可向服务端发送相应的数据查询请求,服务端则可根据接收的数据查询请求从各个数据查询表格中读取相应的待查询数据,并将读取的待查询数据反馈到客户端,客户端无需访问各个待访问数据源即可获取到各个待访问数据源中存储的待查询数据。

本发明一个优选实施例中,所述接收客户端发送的至少两个配置信息,进一步包括:接收所述客户端发送的至少两个待访问数据源所分别对应的数据存储表格的表格名称;

所述构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据,进一步包括:根据所述目标待访问数据源所对应的数据存储表格的表格名称命名构建的所述数据存储表格;

则,

所述接收所述客户端发送的数据查询请求,包括:接收所述客户端发送的sql语句;

所述根据接收的所述数据查询请求,从各个所述数据存储表格中分别读取待查询数据,包括:

解析所述sql语句以确定至少一个子查询sql语句;

针对每一个所述子查询sql语句,根据当前所述子查询sql语句中携带的表格名称确定对应的数据存储表格,从确定的所述数据存储表格中读取对应的待查询数据。

本发明上述实施例中,服务端可对接收的sql语句进行解析以得到多个子查询sql语句,由于各个子查询sql语句携带相应数据存储表格的表格名称,服务端则可根据各个子查询sql语句形成基于内存的并行计算任务,每一个并行计算任务分别对应一个子查询sql语句,从而实现并发执行从每一个数据存储表格中分别读取相应的待查询数据,进一步提高数据查询效率。

如图3所示,本发明实施例提供了一种客户端,包括:

获取单元301,用于获取至少两个待访问数据源所分别对应的配置信息;

信息发送单元302,用于将各个所述配置信息发送至服务端,以使所述服务器端针对每一个所述配置信息均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

查询请求单元303,用于向服务端发送数据查询请求;

数据接收单元304,用于接收所述服务端根据所述数据查询请求从各个所述数据存储表格中读取并发送的至少两个待查询数据。

如图4所示,本发明一个优选实施例中,所述获取单元301,进一步用于获取至少两个所述待访问数据源所分别对应的数据存储表格的表格名称;

所述信息发送单元302,进一步用于将各个所述待访问数据源所分别对应的数据存储表格的表格名称发送至所述客户端;

所述查询请求单元303,包括:配置子单元3031和发送子单元3032;其中,

所述配置子单元3031,用于根据各个所述表格名称配置sql语句;

所述发送子单元3032,用于向所述服务端发送配置的所述sql语句。

如图5所示,本发明实施例提供了一种服务端,包括:

信息接收单元501,用于接收客户端发送的至少两个配置信息;

数据处理单元502,用于针对于每一个所述配置信息,均执行:根据所述配置信息从当前所述配置信息所对应的目标待访问数据源读取备查询数据,并构建对应所述目标待访问数据源的数据存储表格以存储所述备查询数据;

查询响应单元503,用于接收所述客户端发送的数据查询请求;

查询处理单元504,用于根据接收的所述数据查询请求,从各个所述数据存储表格中分别读取待查询数据,并将读取的至少两个所述待查询数据发送至所述客户端。

如图6所示,本发明一个优选实施例中,所述信息接收单元501,进一步用于接收所述客户端发送的至少两个待访问数据源所分别对应的数据存储表格的表格名称;

所述数据处理单元502,进一步用于根据所述目标待访问数据源所对应的数据存储表格的表格名称命名构建的所述数据存储表格;

则,

所述查询响应单元503,进一步用于接收所述客户端发送的sql语句;

所述查询处理单元504,包括:解析子单元5041和查询子单元542;其中,

所述解析子单元5041,用于解析所述sql语句以确定至少一个子查询sql语句;

所述查询子单元5042,用于针对每一个所述子查询sql语句,根据当前所述子查询sql语句中携带的表格名称确定对应的数据存储表格,从确定的所述数据存储表格中读取对应的待查询数据。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

如图7所示,本发明实施例提供了一种数据查询系统,包括:

至少两个数据源701、本发明任意一个实施例提供的客户端702,以及本发明任意一个实施例提供的服务端703;其中,

所述服务端703与所述客户端702相连;

每一个所述数据源701均与所述服务端703相连;

所述数据源707,用于存储备查询数据。

本发明一个优选实施例中,所述至少两个数据源,包括:hbase集群、hive分布式数据库、hdfs及mysql数据库中的至少两个。

为了更加清楚的说明本发明的技术方案及优点,下面结合本发明实施例提供的系统,以至少两个数据源包括hdfs和mysql数据库为例,如图8所示,本发明实施例提供的数据查询方法具体可以包括如下各个步骤:

步骤801,客户端获取至少两个待访问数据源所分别对应的配置信息。

本发明实施例中,至少两个待访问数据源包括但不限于hdfs、mysql数据库、hbase集群和hive分布式数据库中的至少两个;具体地,

至少两个待访问数据源包括hdfs时,hdfs所对应的配置信息包括但不限于:hdfs所在集群的集群标识,备查询数据所对应的文件类型、文件地址和名称;

至少两个带访问数据源包括mysql数据库时,mysql数据库所对应的配置信息包括但不限于:数据库连接url、用户名、对应该用户名的登录密码以及备查询数据所对应的数据库表的表名;

至少两个待访问数据源包括hbase集群时,hbase集群所对应的配置信息包括但不限于:hbase集群的集群标识,备查询数据所对应的表名、列族和列;

至少两个带访问数据源中包括hive分布式数据库时,hive分布式数据库所对应的配置信息包括但不限于:hive分布式数据库所对应的集群标识,备查询数据所对应的hive分布式数据库的数据库名称、表名。

应当理解的是,各个待访问数据源所分别对应的配置信息可以由工作人员结合实际业务需求在客户端进行输入。

本发明实施例的下述各个步骤以至少两个待访问数据源包括hdfs和mysql数据库为例。

步骤802,客户端获取hdfs和mysql数据库分别对应的数据存储表格的表格名称。

本发明实施例的下述各个步骤中,以hdfs所对应的数据存储表格的表格名称是h,且mysql数据库所对应的数据存储表格的表格名称是m为例。

步骤803,客户端将hdfs和mysql数据库所分别对应的配置信息和表格名称发送至服务端。

步骤804,服务端根据hdfs所对应的配置信息从hdfs中读取备查询数据a1,构建以h命名的数据存储表格存储备查询数据a1;根据mysql数据库所对应的配置信息从mysql数据库中读取备查询数据a2,构建以m命名的数据存储表格存储备查询数据a2。

这里,服务端可根据mysql数据库所对应的配置信息通过jdbc(javadatabaseconnectivity,java数据库连接)方式从mysql数据库中读取备查询数据a2;根据hdfs所对应的配置信息通过sparkrdd方式访问hdfs以对hdfs下存储的相应数据文件进行转换,从而得到备查询数据a1。

步骤805,客户端根据表格名称m和表格名称h配置自定义的sql句。

应当理解的是,sql语句可以由工作人员结合实际业务需求在客户端进行配置;配置的sql语句中除携带多个数据源分别对应的数据存储表格的表格名称外,还可以携带对应于待查询数据的其它指示性标识,比如待查询数据所对应的关键词、字段名称等。

步骤806,客户端将配置的sql语句发送至服务端。

步骤807,服务端解析接收的sql语句以得到数据存储表格h对应的子查询sql语句b1,得到数据存储表格m对应的子查询sql语句b2。

步骤808,服务端根据b1和b2中分别携带的表格名称h、m,分别形成对应于数据存储表格h和数据存储表格m的并行计算任务c1和c2,根据形成的并行计算任务c1和c2并行执行从数据存储表格h中读取相应的待查询数据d1、从数据存储表格m中读取相应的待查询数据d2。

步骤809,服务端将读取的待查询数据d1和待查询数据d2发送至客户端。

可见,通过本发明实施例提供的技术方案,仅需要通过一个统一的客户端则可实现对多个待访问数据源中分别存储的待查询数据进行关联查询,该客户端无需直接访问各个待访问数据源则可实现从多个不同的数据源分别获取相应的待查询数据,可提高数据查询效率。

综上所述,本发明各个实施例至少具有如下有益效果:

1、本发明一实施例中,客户端首先获取至少两个待访问数据源所分别对应的配置信息,并将获取的各个配置信息发送至服务端,则可使服务端针对于每一个配置信息,根据当前配置信息从当前配置信息所对应的目标待访问数据源读取相应的备查询数据,并构建对应于目标待访问数据源的数据存储表格来存储从目标待访问数据源中读取的备查询数,即实现通过服务端构建的各个数据存储表格来存储各个待访问数据源中存储的备查询数据;当需要查询各个待访问数据中的待查询数据时,则可通过客户端向服务端发送相应的数据查询请求,使得服务端根据数据查询请求从各个数据查询表格中读取相应的待查询数据,并将读取的待查询数据反馈到客户端,客户端无需访问各个待访问数据源即可获取到各个待访问数据源中分别存储的待查询数据。综上可见,本发明实施例提供的技术方案,仅需要通过一个统一的客户端则可实现对多个待访问数据源中分别存储的待查询数据进行关联查询,以从多个不同的数据源分别获取相应的待查询数据,可提高数据查询效率。

2、本发明一实施例中,服务端在接收到客户端发送的至少两个配置信息之后,则可针对于每一个配置信息,根据当前配置信息从当前配置信息所对应的目标待访问数据源读取相应的备查询数据,并构建对应于目标待访问数据源的数据存储表格来存储从目标待访问数据源中读取的备查询数,即实现通过构建的各个数据存储表格来存储各个待访问数据源中存储的备查询数据;当客户端需要关联查询多个待访问数据源中存储的待查询数据时,则可向服务端发送相应的数据查询请求,服务端则可根据接收的数据查询请求从各个数据查询表格中读取相应的待查询数据,并将读取的待查询数据反馈到客户端,客户端无需访问各个待访问数据源即可获取到各个待访问数据源中存储的待查询数据。

3、本发明一实施例中,服务端可对接收的sql语句进行解析以得到多个子查询sql语句,由于各个子查询sql语句携带相应数据存储表格的表格名称,服务端则可根据各个子查询sql语句形成基于内存的并行计算任务,每一个并行计算任务分别对应一个子查询sql语句,从而实现并发执行从每一个数据存储表格中分别读取相应的待查询数据,进一步提高数据查询效率。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1