一种数据加载方法、终端和计算集群与流程

文档序号:12124128阅读:268来源:国知局
本发明实施例涉及通信
技术领域
:,尤其涉及一种数据加载方法、终端和计算集群。
背景技术
::分布式键值KeyValue数据库能有效减少读写磁盘的次数,具有更好的读写性能,能够为用户提供更好的数据查询服务。KeyValue数据库常采用映射归约MapReduce服务组件来批量加载数据。在批量加载数据的过程中,通过执行MapReduce任务,生成与KeyValue数据库的定义的文件存储格式相一致的目标文件,并存储到分布式文件系统中,而后从分布式文件系统加载到KeyValue数据库中。其中,同时布署有MapReduce服务组件和KeyValue数据库的集群的结构示意图可以参见图1。在图1所示的集群中,MapReduce任务执行过程需要读取大量的数据,并且涉及到排序、分区等大量的计算,从而使得整个集群的中央处理器(CentralProcessingUnit,简称CPU)、网络输入/输出(Input/Output,简称I/O)口、磁盘I/O口等资源的使用率非常高。KeyValue数据库对读写时延要求较高,一般在毫秒级;但在使用MapReduce服务组件为KeyValue数据库批量加载数据时,执行MapReduce任务来加载数据的进程会占用较多资源,导致可用于KeyValue数据库的查询服务的进程的资源相对减少,从而影响KeyValue数据库的读写时延,KeyValue数据库的数据查询性能降低,导致无法满足用户的业务需求。技术实现要素:本发明实施例提供一种数据加载方法、终端和计算集群,能够降低KeyValue数据库的读写时延,提高KeyValue数据库的查询性能。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,本发明实施例提供一种数据加载方法,应用于计算集群。其中涉及查询集群,计算集群用于数据加载,查询集群用于KeyValue数据库的数据查询,计算集群与查询集群为不同集群。该方法包括:首先,计算集群接收数据加载请求,数据加载请求携带有待加载数据表的分区信息。其次,计算集群根据分区信息确定第一数据分区。其中,分区信息指示的所有分区分别绑定一个第一数据分区。然后,计算集群从分布式文件系统中分别获取分区信息指示的每个分区的源数据,对每个分区的源数据分别执行映射任务。之后,计算集群根据分区信息指示的分区与第一数据分区的绑定关系,将执行每个映射任务所得的中间数据对应地写入第一数据分区。而后,计算集群对每个第一数据分区中的中间数据分别执行归约任务,执行得到每个归约任务的目标文件,该目标文件供KeyValue数据库的加载数据表进行数据查询使用。这样,可以通过计算集群中的资源执行MapReduce任务,生成与KeyValue数据库定义的文件存储格式相同的目标文件,以供在查询集群中KeyValue数据库的加载数据表进行数据查询使用。其中,由于执行MapReduce任务的是计算集群,与为用户提供查询服务的查询集群是相互独立的两个集群,因而即使在执行MapReduce任务的过程中,会占用大量的CPU、I/O口等资源,但这些资源为计算集群中的资源,MapReduce任务的执行不会占用查询集群的相关资源,从而可以使得查询集群的负载较低,因而能够降低查询集群中KeyValue数据库的读写时延,提高KeyValue数据库的查询性能。在第一方面的一种可能的实现方式中,该方法还包括:计算集群将目标文件发送至查询集群。第二方面,本发明实施例提供一种数据加载方法,应用于终端。其中涉及计算集群和查询集群,计算集群用于数据加载,查询集群用于KeyValue数据库的数据查询,计算集群与查询集群为不同集群。该包括:终端向计算集群发送数据加载请求,数据加载请求携带有待加载数据表的分区信息。其中,数据加载请求指示计算集群根据分区信息确定第一数据分区。分区信息指示的所有分区分别绑定一个第一数据分区。第一数据分区用于存储对于第一数据分区绑定的分区中的源数据执行映射任务所得的中间数据,以便对第一数据分区中的中间数据执行归约任务来获取目标文件。在第二方面的一种可能的实现方式中,查询集群与计算集群具有各自的分布式文件系统,查询集群与计算集群各自具有的分布式文件系统相互隔离,这种情况下,终端或者查询集群需要请求计算集群将每个第一数据分区对应的目标文件发送至查询集群,以便在KeyValue数据库的待加载数据表进行数据查询时使用目标文件。在第二方面的一种可能的实现方式中,查询集群与计算集群共享分布式文件系统,查询集群从分布式文件系统中获取目标文件。在计算集群生成目标文件后,可以将目标文件保存在与查询集群共享的分布式文件系统中,查询集群可以直接从分布式文件系统中获取目标文件并加载,以便在KeyValue数据库的待加载数据表进行数据查询时使用该目标文件。在第二方面的一种可能的实现方式中,在终端向计算集群发送数据加载请求之前,该方法还包括:终端向查询集群请求待加载数据表的分区信息。从而,终端可以根据从查询集群获取的分区信息确定第一数据分区。在第二方面的一种可能的实现方式中,终端上保存有查询集群的连接配置集和计算集群的连接配置集。在终端向查询集群请求待加载数据表的分区信息之前,该方法还包括:终端根据查询集群的连接配置集向查询集群发送第一建立连接请求。在终端向计算集群发送数据加载请求之前,该方法还包括:终端根据计算集群的连接配置集向所计算集群发送第二建立连接请求。从而,在终端与查询集群/计算集群建立连接后,终端可以与查询集群/计算集群进行消息交互。在第二方面的一种可能的实现方式中,连接配置集包括IP地址、端口和安全访问配置信息中的至少一个。第三方面,本发明实施例提供一种数据加载方法,应用于查询集群。其中涉及计算集群,查询集群用于KeyValue数据库的数据查询,计算集群用于数据加载,计算集群与查询集群为不同集群。该方法包括:查询集群接收计算集群发送的每个第一数据分区对应的目标文件。而后,查询集群将每个第一数据分区对应的目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用目标文件。这样,在计算集群生成目标文件后,终端或者查询集群可以请求计算集群将目标文件发送至查询集群;查询集群在接收到计算集群发送的目标文件后,可以将目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用该目标文件。结合上述任一方面,在一种可能的实现方式中,分区信息指示的每个分区的Key值范围不同;对于具有绑定关系的分区与第一数据分区,分区的源数据与第一数据分区的中间数据具有相同的Key值范围。这样,计算集群在执行映射归约任务时,可以根据Key值范围分别获取每个分区的源数据,并将相同Key范围的中间数据分发至每个分区对应的第一数据分区中。结合上述任一方面,在一种可能的实现方式中,查询集群中具有第二数据分区,所有第二数据分区对应的Key值范围与第一数据分区对应的Key值范围相同,第二数据分区用于存储对应Key值范围的目标文件。这样,在查询集群接收到计算集群发送的目标文件后,或者从与计算集群共享的分布式文件系统中获取目标文件后,可以将与每个第一数据文件对应目标文件,分别存储在一个对应的第二数据分区中,且第二数据分区对应的Key值范围与第一数据分区对应的Key值范围相同。结合上述任一方面,在一种可能的实现方式中,分区指示信息用于指示查询集群的KeyValue数据库中,待加载数据表对应的Key值范围与M个目标第二数据分区的对应关系。并且,目标第一数据分区及其对应的目标第二数据分区对应相同的Key值范围。第四方面,本发明实施例提供一种计算集群,包括:接收模块,用于接收数据加载请求,数据加载请求携带有待加载数据表的分区信息。确定模块,用于根据分区信息确定第一数据分区。其中,分区信息指示的所有分区分别绑定一个第一数据分区。执行模块,用于从分布式文件系统中分别获取分区信息指示的每个分区的源数据,对每个分区的源数据分别执行映射任务。写入模块,用于根据分区信息指示的分区与第一数据分区的绑定关系,将执行每个映射任务所得的中间数据对应地写入第一数据分区。执行模块还用于,对每个第一数据分区中的中间数据分别执行归约任务,执行得到每个归约任务的目标文件,目标文件供查询集群的KeyValue数据库的加载数据表进行数据查询使用。在第四方面的一种可能的实现方式中,分区信息指示的每个分区的Key值范围不同。对于具有绑定关系的分区与第一数据分区,分区的源数据与第一数据分区的中间数据具有相同的Key值范围。在第四方面的一种可能的实现方式中,计算集群还包括:发送模块,用于将目标文件发送至查询集群。在第四方面的一种可能的实现方式中,查询集群中具有第二数据分区,所有第二数据分区对应的Key值范围与第一数据分区对应的Key值范围相同,第二数据分区用于存储对应Key值范围的目标文件。第五方面,本发明实施例提供一种终端,包括:发送模块,用于向计算集群发送数据加载请求。数据加载请求携带有待加载数据表的分区信息。数据加载请求指示计算集群根据分区信息确定第一数据分区。分区信息指示的所有分区分别绑定一个第一数据分区。第一数据分区用于存储对于第一数据分区绑定的分区中的源数据执行映射任务所得的中间数据,以便对第一数据分区中的中间数据执行归约任务来获取目标文件。请求模块,用于请求计算集群将每个第一数据分区对应的目标文件发送至查询集群,以便在查询集群的KeyValue数据库的待加载数据表进行数据查询时使用目标文件。在第五方面的一种可能的实现方式中,查询集群中具有第二数据分区,所有第二数据分区对应的Key值范围与第一数据分区对应的Key值范围相同,第二数据分区用于存储对应Key值范围的目标文件。在第五方面的一种可能的实现方式中,请求模块还用于:在向查询集群请求待加载数据表的分区信息之前,向查询集群请求待加载数据表的分区信息。第六方面,本发明实施例提供一种查询集群,包括:接收模块,用于接收计算集群发送的每个第一数据分区对应的目标文件。加载模块,用于将每个第一数据分区对应的目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用目标文件。在第六方面的一种可能的实现方式中,查询集群中具有第二数据分区,所有第二数据分区对应的Key值范围与第一数据分区对应的Key值范围相同,第二数据分区用于存储对应Key值范围的目标文件。又一方面,本发明实施例提供了一种计算集群,包括多个计算节点,多个计算节点中的一个计算节点执行第一方面或者第一方面的任一可能的实现方式提供的数据加载方法,或者多个计算节点中的至少两个计算节点之间进行数据交互来执行第一方面或者第一方面的任一可能的实现方式提供的数据加载方法。再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述计算集群所用的计算机软件指令,其包含用于执行实现上述第一方面或者第一方面的任一可能的实现方式提供的数据加载方法所设计的程序。又一方面,本发明实施例提供了一种终端,包括至少一个处理器、存储器和通信接口;所述至少一个处理器、所述存储器和所述通信接口均通过总线连接;所述存储器,用于存储计算机执行指令;所述至少一个处理器,用于执行所述存储器存储的计算机执行指令,使得所述计算终端通过所述通信接口与计算集群和/或查询集群进行数据交互,来执行上述实施例提供的数据加载方法。再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述终端所用的计算机软件指令,包含用于执行实现上述第二方面或者第二方面的任一可能的实现方式提供的数据加载方法所设计的程序。又一方面,本发明实施例提供了一种查询集群,包括多个查询节点,多个查询节点中的一个查询节点执行第一方面或者第一方面的任一可能的实现方式提供的数据加载方法,或者多个查询节点中的至少两个查询节点之间进行数据交互,来执行第一方面或者第一方面的任一可能的实现方式提供的数据加载方法。再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述查询集群所用的计算机软件指令,包含用于执行实现上述第三方面或者第三方面的任一可能的实现方式提供的数据加载方法所设计的程序。再一方面,本发明实施例提供了一种通信系统,包括上述方面描述的终端、计算集群和查询集群。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中的一种集群的结构示意图;图2为本发明实施例提供的一种系统架构示意图;图3为本发明实施例提供的另一种系统架构示意图;图4为本发明实施例提供的一种数据加载方法流程图;图5为本发明实施例提供的另一种数据加载方法流程图;图6为本发明实施例提供的另一种数据加载方法流程图;图7为本发明实施例提供的一种计算集群的结构示意图;图8为本发明实施例提供的一种终端的结构示意图;图9为本发明实施例提供的一种查询集群的结构示意图;图10为本发明实施例提供的一种计算设备的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。采用MapReduce服务组件为KeyValue数据库批量加载数据所涉及的系统架构可以如图2所示,该系统具体可以包括集群和多个终端。其中,该终端是可以向集群提交批量加载数据任务和查询任务等请求的设备,例如可以是台式计算机、笔记本电脑、iPad、智能手机等。该集群可以包括多个节点设备,该节点设备可以是具有计算能力的计算设备;该集群同时布署有MapReduce服务组件和KeyValue数据库,以及分布式文件系统。MapReduce服务组件具有高性能的并行计算能力,可以为KeyValue数据库批量加载数据。KeyValue数据库可以响应终端的读写请求,为终端用户提供查询服务。分布式文件系统可以为KeyValue数据库提供高可靠性的底层存储支持。示例性的,该集群具体可以是Hadoop集群,该分布式文件系统具体可以是HDFS(HadoopDistributedFileSystem),该KeyValue数据库具体可以是HBase。其中,在利用MapReduce服务组件为KeyValue数据库批量加载数据时,终端可以向集群提交一个数据加载请求,MapReduce服务组件中的一个管理节点接收到数据加载请求后,执行MapReduce任务。具体的,MapReduce任务包括Map任务和Reduce任务,其中,执行Map任务的阶段可以包括Shuffle阶段,执行Reduce任务的阶段可以包括Sort阶段。集群执行Map任务读取源数据,并对源数据进行解析得到中间数据<Key,Value>对;再将执行Map任务解析得到的<Key,Value>对,在Shuffle阶段按照key写到数据分区Partition中,以便执行Reduce任务时从该Partition获取数据。可选地,可以在执行Reduce任务时首先对Partition中的<Key,Value>对进行Sort处理。每个Reduce任务对应一个数据分区Partition,每个Partition对应KeyValue数据库中的一个数据分区Region。每个Reduce任务生成对应Partition的目标文件。其中,Reduce阶段任务生成的目标文件供KeyValue数据库的查询服务使用,因此Reduce任务生成的目标文件满足KeyValue数据库定义的文件存储格式。而后,集群从分布式文件系统中将Reduce任务生成的目标文件加载至KeyValue数据库中,以供查询使用。在图2所示的系统架构中,由于MapReduce服务组件执行MapReduce任务的进程与KeyValue数据库执行的查询服务的进程位于同一集群中,MapReduce服务组件在执行批量加载数据任务的过程中,需要读取大量的数据,并且涉及到排序和分区等大量的计算,使得整个集群的负载很大,资源使用率非常高,从而极大地影响了集群中KeyValue数据库的读写时延,降低了KeyValue数据库的查询性能。针对该问题,本发明实施例提供了一种数据加载方法、终端和计算系统,通过将MapReduce服务组件和KeyValue数据库分别设置在不同的集群中,来降低KeyValue数据库所在集群的负载,降低KeyValue数据库的读写时延,提高KeyValue数据库的查询性能;同时MapReduce服务组件能够获得足够的资源来执行MapReduce任务,提高了MapReduce任务的执行效率。如图3所示,本发明实施例提供的数据加载方法所涉及的系统架构可以包括查询集群和计算集群两个不同集群,以及终端,每个集群中均可以包括多个节点设备,该节点设备可以是具有计算能力的计算设备。查询集群布署有KeyValue数据库和分布式文件系统,可以为用户提供查询服务。示例性的,该KeyValue数据库具体可以是GoogleBigtable、ApacheHBase或ApacheCassandra等。计算集群布署有MapReduce服务组件和分布式文件系统,可以保存有源数据文件并执行MapReduce任务,为KeyValue数据库批量加载数据。其中,查询集群中的分布式文件系统和计算集群中的分布式文件系统,可以是两个分别独立的分布式文件系统,也可以是两个集群共享的同一个分布式文件系统,这里不作具体限定。基于图3所示的系统架构,本发明实施例提供一种数据加载方法,参见图4,该方法可以包括:101、终端向计算集群发送数据加载请求,数据加载请求携带有待加载数据表的分区信息,数据加载请求指示计算集群根据分区信息确定第一数据分区,分区信息指示的所有分区分别绑定一个第一数据分区,第一数据分区用于存储对于第一数据分区绑定的分区中的源数据执行映射任务所得的中间数据,以便对第一数据分区中的中间数据执行归约任务来获取目标文件。在图3所示的系统架构中,计算集群布署有MapReduce服务组件,终端可以向计算集群发送数据加载请求,以请求利用计算集群中的各项资源执行MapReduce任务,从而在MapReduce任务执行完成后进行数据加载。其中,数据加载请求中携带有待加载数据表的分区信息,该分区指示信息用于指示至少一个分区。该数据加载请求可以指示计算集群根据其中的分区信息,确定与分区信息指示的分区一一绑定的第一数据分区。第一数据分区可以用于存储,与第一数据分区绑定的分区中的源数据执行映射任务后所得的中间数据,从而使得计算集群可以对第一数据分区中的中间数据执行归约任务,进而获取目标文件。具体的,第一数据分区可以为图3所示计算集群中的数据分区Partition。102、计算集群在接收到终端发送的数据加载请求后,根据分区信息确定第一数据分区。计算集群在接收到终端发送的携带有分区指示信息的数据加载请求后,可以根据分区信息确定与分区信息指示的分区一一绑定的第一数据分区。示例性的,当分区指示信息指示的分区为3个时,计算集群确定的第一数据分区也为3个,具体可以为图3所示系统架构中的第一数据分区A(PartitionA)、第一数据分区B(PartitionB)和第一数据分区C(PartitionC)。103、计算集群从分布式文件系统中分别获取分区信息指示的每个分区的源数据,对每个分区的源数据分别执行映射任务。计算集群在接收到数据加载请求后,执行MapReduce任务。具体的,计算集群可以首先从分布式文件系统中分别获取分区信息指示的每个分区的源数据,并对每个分区的源数据分别执行映射Map任务,得到中间数据<Key,Value>对。104、计算集群根据分区信息指示的分区与第一数据分区的绑定关系,将执行每个映射任务所得的中间数据对应地写入第一数据分区。其中,计算集群执行映射Map任务的阶段可以包括Shuffle阶段。计算集群在执行Map任务解析得到<Key,Value>对后,可以在Shuffle阶段,按照key将对每个分区的源数据执行映射Map任务所得的中间数据<Key,Value>对,对应地写到每个分区对应的第一数据分区Partition中。105、计算集群对每个第一数据分区中的中间数据分别执行归约任务,执行得到每个归约任务的目标文件,目标文件供在KeyValue数据库的加载数据表进行数据查询使用。在将执行每个映射Map任务所得的中间数据对应地写入第一数据分区之后,计算集群可以对每个第一数据分区中的中间数据<Key,Value>对,分别执行归约Reduce任务,从而得到每个第一数据分区的归约Reduce任务对应的目标文件。其中,该目标文件的格式遵循KeyValue数据库定义的文件存储格式,从而可以供KeyValue数据库的加载数据表进行数据查询使用。示例性的,当KeyValue数据库为HBase时,目标文件可以为HFile格式。可见,本发明实施例提供的数据加载方法,通过计算集群中的资源执行MapReduce任务,生成与KeyValue数据库定义的文件存储格式相同的目标文件,以供在查询集群中KeyValue数据库的加载数据表进行数据查询使用。其中,由于执行MapReduce任务的是计算集群,与为用户提供查询服务的查询集群是相互独立的两个集群,因而即使在执行MapReduce任务的过程中,会占用大量的CPU、I/O口等资源,但这些资源为计算集群中的资源,而不会占用查询集群的相关资源,从而可以使得查询集群的负载较低,降低查询集群中KeyValue数据库的读写时延,提高KeyValue数据库的查询性能。也就是说,本发明实施例提供的数据加载方法,通过将MapReduce服务组件和KeyValue数据库分别布署在不同的集群中,可以避免占用大量资源的MapReduce任务进程对查询服务进程的影响,从而降低KeyValue数据库所在集群的负载,提高KeyValue数据库的查询性能。此外,在上述步骤101中,数据加载请求还可以携带有源数据文件存储路径和输出路径。计算集群可以在步骤103中,从源数据文件存储路下获取源数据,并在步骤105中生成与每个第一数据分区对应的目标文件后,将这些目标文件存储在输出路径下。需要说明的是,计算集群在生成目标文件后,具体可以将目标文件保存在本地磁盘中,也可以将目标文件保存在分布式文件系统中。并且,计算集群的分布式文件系统可以是与查询集群的分布式文件系统相互独立的分布式文件系统,也可以是与查询集群的分布式文件系统共享的同一个分布式文件系统。一方面,在计算集群将目标文件存储在本地磁盘或者与查询集群的分布式文件系统相独立的分布式文件系统中的情况下,参见图5,在步骤105之后,该方法还可以包括:106、终端请求计算集群将每个第一数据分区对应的目标文件发送至查询集群,以便在KeyValue数据库的待加载数据表进行数据查询时使用目标文件。107、计算集群将每个第一数据分区对应的目标文件发送至查询集群。108、查询集群接收计算集群发送的每个第一数据分区对应的目标文件。109、查询集群将每个第一数据分区对应的目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用目标文件。该种情况下,终端可以请求计算集群将计算集群的本地磁盘或分布式文件系统中保存的每个第一数据分区对应的目标文件,发送给查询集群;查询集群在接收到计算集群发送的每个第一数据分区对应的目标文件后,可以将每个第一数据分区对应的目标文件保存在本地磁盘,或者保存在查询集群使用的分布式文件系统(与计算集群的分布式文件系统独立的分布式文件系统)中,以便可以将本地磁盘或分布式文件系统中的目标文件加载至KeyValue数据库中,供KeyValue数据库的待加载数据表进行数据查询时使用。另一方面,在计算集群将目标文件存储在与查询集群的分布式文件系统共享的同一个分布式文件系统中的情况下,计算集群不需要将目标文件发送至查询集群。在步骤105之后,该方法还可以包括:110、查询集群从分布式文件系统中获取目标文件。在步骤105之后,查询集群可以直接从与计算集群共享的分布式文件系统中获取目标文件来进行数据加载,以便在KeyValue数据库的待加载数据表进行数据查询时使用获取的目标文件。其中,查询集群具体可以根据分区信息,从与计算集群共享的分布式文件系统中获取每个第一数据分区对应的目标文件。进一步地,参见图6,在上述步骤101之前,该方法还可以包括:111、终端向查询集群请求待加载数据表的分区信息。其中,终端向查询集群请求的待加载数据表的分区信息用于指示待加载数据表对应的至少一个分区。分区信息的表示形式可以有多种,本发明实施例对其具体形式不作限定。在KeyValue数据库中,待加载数据表中的数据对应一个Key值范围,待加载数据表可以根据Key值范围划分为至少一个分区,分区信息指示的每个分区的Key值范围不同。其中,Key是一个关键字,具体可以是待加载数据表中的一个字段、属性或特征。示例性的,KeyValue数据库中的待加载数据表为“用户信息表”,“用户信息表”具体包括“身份标识”、“姓名”、“电话”和“地址”4个字段,用户的“身份标识”的范围为00000000-29999999。该“用户数据表”的具体格式可以参见如下表1:表1身份标识姓名电话地址00000000………00000001………00000002…………………29999999………在表1所示的待加载数据表中,若key为“身份标识”这一字段,则待加载数据表对应的Key值范围为00000000-29999999。待加载数据表可以根据分界点Key值划分分区。例如,当分界点Key值为10000000和20000000时,待加载数据表可以划分为3个分区:与Key值范围00000000-09999999对应的分区1,与Key值范围10000000-19999999对应的分区2,以及与Key值范围20000000-29999999对应的分区3。在该示例中,分区指示信息可以为待加载数据表对应的Key范围00000000-29999999,以及分界点Key值10000000和20000000。该分区指示信息指示待加载数据表对应3个分区,且分区1对应的Key值范围为00000000-09999999,分区2对应的Key值范围为10000000-19999999,分区3对应的Key值范围为20000000-29999999。当分区信息指示的每个分区的Key值范围不同时,对于具有绑定关系的分区与第一数据分区,分区的源数据与第一数据分区的中间数据具有相同的Key值范围。示例性的,当分区1对应的Key值范围为00000000-09999999,分区2对应的Key值范围为10000000-19999999,分区3对应的Key值范围为20000000-29999999时,若分区1绑定的第一数据分区为PartitionA,分区2绑定的第一数据分区为PartitionB,分区3绑定的第一数据分区为PartitionC,则:PartitionA的源数据以及PartitionA的中间数据对应Key值范围00000000-09999999;PartitionB的源数据以及PartitionB的中间数据对应Key值范围10000000-19999999;PartitionC的源数据以及PartitionC的中间数据对应Key值范围20000000-29999999。从而,在步骤103中,计算集群可以从分布式文件系统中获取与分区1对应的源数据,源数据的Key值范围为00000000-09999999;并且,在步骤104中,计算集群可以将执行映射Map任务得到的Key值范围在00000000-09999999之间的中间数据,对应地写入PartitionA中。类似地,计算集群可以从分布式文件系统中获取与分区2对应的源数据,源数据的Key值范围为10000000-19999999;并且,在步骤104中,计算集群可以将执行映射Map任务得到的Key值范围在10000000-19999999之间的中间数据,对应地写入PartitionB中。并且,计算集群可以从分布式文件系统中获取与分区3对应的源数据,源数据的Key值范围为20000000-29999999;并且,在步骤104中,计算集群可以将执行映射Map任务得到的Key值范围在20000000-29999999之间的中间数据,对应地写入PartitionC中。进一步地,查询集群中还可以具有第二数据分区,所有第二数据分区对应的Key值范围与第一数据分区对应的Key值范围相同,第二数据分区用于存储对应Key值范围的目标文件。在此基础上,查询集群在步骤108中接收计算集群发送的每个第一数据分区对应的目标文件后,还可以包括:查询集群将每个第一数据分区对应的目标文件,分别保存至与每个第一数据分区对应相同Key值范围的第二数据分区中,从而将每个第二数据分区对应的目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用该目标文件。查询集群在步骤110中直接从与计算集群共享的分布式文件系统中,获取每个第一数据分区对应的目标文件之后,还可以将每个第一数据分区对应的目标文件,分别保存至与每个第一数据分区对应相同Key值范围的第二数据分区中,从而将每个第二数据分区对应的目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用该目标文件。示例性的,查询集群中的第二数据分区可以为如图3所示的Region。其中,Region1可以与PartitionA对应相同的Key值范围00000000-09999999,Region1可以用于存储对应Key值范围00000000-09999999的目标文件。Region2可以与PartitionB对应相同的Key值范围10000000-19999999,Region2可以用于存储对应Key值范围10000000-19999999的目标文件。Region3可以与PartitionC对应相同的Key值范围20000000-29999999,Region3可以用于存储对应Key值范围20000000-29999999的目标文件。在步骤108或110中,查询集群可以将Key值范围00000000-09999999对应的目标文件,存储至第二数据分区Region1中;将Key值范围10000000-19999999对应的目标文件,存储至第二数据分区Region2中;将Key值范围20000000-29999999对应的目标文件,存储至第二数据分区Region3中,以便在KeyValue数据库的待加载数据表进行数据查询时使用该目标文件。另外,终端向查询集群请求待加载数据表的分区信息时,还可以将待加载数据表的标识信息发送给查询集群,以使得查询集群可以根据待加载数据表的标识信息,确定待加载数据表以及待加载数据表的分区信息。其中,待加载数据表的标识信息用于指示待加载数据表,例如可以为待加载数据表的表名、编号等,这里不做具体限定。此外,终端上还可以保存有查询集群的连接配置集和计算集群的连接配置集。其中,连接配置集用于保存终端与查询集群/计算集群建立连接时需要的配置信息,本发明实施例对连接配置集的具体内容不做具体限定。示例性的,该连接配置集可以包括网络协议IP地址、端口和安全访问配置信息中的至少一个。其中,连接配置集中的IP地址可以是查询集群/计算集群中管理节点的IP地址,也可以包括查询集群/计算集群中所有节点的IP地址;连接配置集中的端口可以是提供相关服务的端口。进一步地,参见图6,在上述步骤111之前,该方法还可以包括:112、终端根据查询集群的连接配置集向查询集群发送第一建立连接请求。在上述步骤101之前,该方法还可以包括:113、终端根据计算集群的连接配置集向计算集群发送第二建立连接请求。进一步地,在上述步骤112之前,该方法还可以包括:114、终端启动数据加载任务。其中,数据加载任务是指向查询集群中的KeyValue数据库加载数据的任务。终端启动数据加载任务的具体方式可以有多种,例如终端可以接收用户输入的触发指令,从而启动批量数据加载任务;终端开机后自动启动批量数据加载任务;或者终端周期性地启动批量数据加载任务等,这里不做具体限定。本发明实施例提供一种计算集群700,参见图7,该计算集群700可以包括接收模块701、确定模块702、执行模块703、写入模块704和发送模块705。具体的,该计算集群700可以包括多个计算节点,该计算节点可以是具有计算能力的计算设备;计算集群700中的至少一个计算节点用于部署计算集群700各模块的功能。其中,接收模块701可以用于,接收数据加载请求,数据加载请求携带有待加载数据表的分区信息;确定模块702可以用于,根据分区信息确定第一数据分区,其中,分区信息指示的所有分区分别绑定一个第一数据分区;执行模块703可以用于,从分布式文件系统中分别获取分区信息指示的每个分区的源数据,对每个分区的源数据分别执行映射任务;写入模块704可以用于,根据分区信息指示的分区与第一数据分区的绑定关系,将执行每个映射任务所得的中间数据对应地写入第一数据分区;执行模块703还可以用于,对每个第一数据分区中的中间数据分别执行归约任务,执行得到每个归约任务的目标文件,目标文件供查询集群的KeyValue数据库的加载数据表进行数据查询使用。此外,发送模块705可以用于执行图5中的步骤107。图7中的计算集群700可以用于执行上述方法流程中的任一流程,本发明实施例在此不再详述。本发明实施例还提供了一种计算机存储介质,用于储存为上述图7所示计算集群所用的计算机软件指令,包含用于执行上述方法实施例所设计的程序。通过执行存储的所述程序,可以实现数据加载。本发明实施例提供一种终端800,参见图8,该终端800可以包括发送模块801和请求模块802。其中,发送模块801可以用于,向计算集群发送数据加载请求,数据加载请求携带有待加载数据表的分区信息,数据加载请求指示计算集群根据分区信息确定第一数据分区,分区信息指示的所有分区分别绑定一个第一数据分区,第一数据分区用于存储对于第一数据分区绑定的分区中的源数据执行映射任务所得的中间数据,以便对第一数据分区中的中间数据执行归约任务来获取目标文件。请求模块802可以用于,请求计算集群将每个第一数据分区对应的目标文件发送至查询集群,以便在查询集群的KeyValue数据库的待加载数据表进行数据查询时使用目标文件。此外,请求模块802可以用于执行图6中的步骤111。图8中的终端800可以用于执行上述方法流程中的任一流程,本发明实施例在此不再详述。本发明实施例还提供了一种计算机存储介质,用于储存为上述图8所示终端所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的所述程序,可以实现数据加载。本发明实施例提供一种查询集群900,参见图9,该查询集群900可以包括接收模块901和加载模块902。具体的,该查询集群900可以包括多个查询节点,该查询节点可以是具有计算能力的计算设备;查询集群900中的至少一个查询节点用于部署查询集群900各模块的功能。其中,接收模块901可以用于,接收计算集群发送的每个第一数据分区对应的目标文件。加载模块902可以用于,将每个第一数据分区对应的目标文件加载至KeyValue数据库中,以便在KeyValue数据库的待加载数据表进行数据查询时使用目标文件。此外,图9中的查询集群900可以用于执行上述方法流程中的任一流程,本发明实施例在此不再详述。本发明实施例还提供了一种计算机存储介质,用于储存为上述图9所示查询集群所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的所述程序,可以实现数据加载。参见图10,本发明实施例还提供一种计算设备1000,计算设备1000包括至少一个处理器1001、存储器1002和通信接口1003;所述至少一个处理器1001、所述存储器1002和所述通信接口1003均通过总线1004连接;所述存储器1002,用于存储计算机执行指令;所述至少一个处理器1001,用于执行所述存储器1002存储的计算机执行指令,使得所述计算设备1000通过所述通信接口1003与其它具有计算能力的设备(例如查询集群中的查询节点、终端或者计算集群中的计算节点)进行数据交互,来执行上述实施例提供的数据加载方法。一种可选实施例,本发明实施例提供的计算集群包括的计算节点为计算设备1000,所述计算集群的计算设备1000通过所述通信接口1003,与计算集群中的其它计算设备1000、终端和查询集群的查询节点进行数据交互,来执行上述实施例提供的数据加载方法。一种可选实施例,本发明实施例提供的查询集群包括的查询节点为计算设备1000,所述查询集群的计算设备1000通过所述通信接口1003,与查询集群中的其它计算设备1000、终端和计算集群的计算节点进行数据交互来执行上述实施例提供的数据加载方法。一种可选实施例,本发明实施例提供的终端为计算设备1000,所述计算设备1000通过所述通信接口1003,与计算集群的计算节点和查询集群的查询节点进行数据交互,来执行上述实施例提供的数据加载方法。可选地,至少一个处理器1001,可以包括不同类型的处理器1001,或者包括相同类型的处理器1001;处理器1001可以是以下的任一种:中央处理器CPU、ARM处理器、现场可编程门阵列(FieldProgrammableGateArray,简称FPGA)、专用处理器等具有计算处理能力的器件。一种可选实施方式,所述至少一个处理器1001还可以集成为众核处理器。可选地,存储器1002可以是以下的任一种或任一种组合:随机存取存储器(RandomAccessMemory,简称RAM)、只读存储器(ReadOnlyMemory,简称ROM)、非易失性存储器(Non-volatileMemory,简称NVM)、固态硬盘(SolidStateDrives,简称SSD)、机械硬盘、磁盘、磁盘阵列等存储介质。可选地,通信接口1003用于计算设备1000与其他具有计算能力或者存储能力的设备进行数据交互。通信接口1003可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。该总线1004可以包括地址总线、数据总线、控制总线等,为便于表示,图10用一条粗线表示该总线。总线1004可以是以下的任一种或任一种组合:工业标准体系结构(IndustryStandardArchitecture,简称ISA)总线、外设组件互连标准(PeripheralComponentInterconnect,简称PCI)总线、扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等有线数据传输的器件。本发明另一实施例提供一种通信系统,可以包括终端、计算集群和查询集群,该通信系统的结构示意图可以参见图3。该通信系统中的终端、计算集群和查询集群可以执行上述方法实施例中的数据加载方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1