一种数据查询操作的实现方法、装置及系统的制作方法

文档序号:6437603阅读:124来源:国知局

专利名称::一种数据查询操作的实现方法、装置及系统的制作方法
技术领域
:本发明涉及数据查询
技术领域
,尤其涉及ー种数据查询操作的实现方法、装置及系统。
背景技术
:目前,在数据存储系统中导入诸如关系型数据库、分布式数据库、以及其他提供数据查询接ロ的外部数据系统中的数据表或对数据表的查询结果的方法为:将外部数据系统中待查询的数据按照某种分配规则,分配给数据存储系统中的多个数据交换节点;每个数据交换节点并行地对外部数据系统的数据表中的数据执行查询请求,得到各自的查询结果;将每个数据交换节点的查询结果合并后,得到完整的查询結果。其中,按照分配规则具体可以分为两种:一种为基于偏移量和最大记录行数的分配规则:首先获得外部数据系统中待查询的数据的总记录行数,然后根据总记录行数和数据交换节点的个数,对各数据交换节点分配对应的查询范围,最后各个数据交換节点并行地在外部数据系统中对分配到的范围进行查询,并返回查询結果。另ー种为基于记录标识范围的分配规则:首先计算外部数据系统中待查询数据的记录标识的取值范围,然后根据记录标识的取值范围和数据交换节点的个数,对各数据交换节点分配对应的记录标识的查询范围,最后各个数据交換节点并行地在外部数据系统中对分配到的记录标识的查询范围进行查询,并返回查询結果。对于第一种分配规则,由于每个数据交换节点都需要在外部数据系统中并行地进行复杂的查询操作,并需要对查询结果进行排序才能保证总的查询结果的正确性,因此在处理大数据量时性能较差,处理效率较低;并且,由于每个数据交换节点都会并行地向外部数据系统的数据表提交查询请求,因此当存在大量数据交换节点时会对系统造成巨大负担。对于第二种分配规则,由于采用记录标识来分割外部数据系统中的数据,不能保证分配到每个数据交换节点的查询数据量均匀,因此会导致在并行查询时,一些数据交換节点的运行时间相对较长使得整体查询效率低;并且,此种方式只能处理有记录标识且记录标识为数字型(int或long类型)的数据,会带来使用的局限性。
发明内容本发明实施例提供了ー种数据查询操作的实现方法、装置及系统,用以解决现有的数据查询操作在实现时服务器负担较重、查询效率较低的问题。本发明实施例提供的ー种数据查询操作的实现方法,包括:对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对所述临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将所述临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从所述临时表中读取数据至所述数据存储系统。本发明实施例提供的ー种数据查询操作的实现装置,包括:查询模块,用于对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;索引建立模块,用于对所述临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;索引分配模块,用于根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将所述临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;发送模块,用于向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从所述临时表中读取数据至所述数据存储系统。本发明实施例提供的ー种数据查询操作的实现系统,包括:外部数据系统和数据存储系统,还包括:数据查询操作的实现装置;其中,所述数据查询操作的实现装置,用于对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对所述临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;向各数据交换节点下发为其分配的索引范围;所述数据存储系统包括多个数据交换节点,每个数据交换节点用于根据接收到的所述数据查询操作的实现装置发送的索引范围,从所述临时表中读取数据至所述数据存储系统。本发明实施例的有益效果包括:本发明实施例提供的ー种数据查询操作的实现方法、装置及系统,对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;根据临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从临时表中读取数据至数据存储系统。本发明通过建立临时表缓存查询到的数据,各个数据交换节点就可以直接并行地对缓存表中的部分数据进行读取操作,避免了每个数据交换节点都需要并行地在外部系统中进行复杂的查询操作,减轻了在处理大量数据时外部数据系统服务器的负担,并且,由于分配给各数据交换节点的临时表中的索引范围对应的数据行数相对平均,保证了各个数据交换节点在并行处理时运行时间能够基本相同,从而提高了整体的查询效率。图1为本发明实施例提供的数据查询操作的实现方法的流程图之ー;图2为本发明实施例提供的数据查询操作的实现方法的流程图之ニ;图3为本发明实施例提供的数据查询操作的实现装置的结构示意图;图4为本发明实施例提供的数据查询操作的实现系统的结构示意图。具体实施例方式下面结合附图,对本发明实施例提供的数据查询操作的实现方法、装置及系统的具体实施方式进行详细地说明。本发明实施例提供的ー种数据查询操作的实现方法,如图1所示,具体包括以下步骤:S101、对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;S102、对临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;S103、根据临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;S104、向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从临时表中读取数据至数据存储系统。其中,本发明实施例提供的上述方法中,外部数据系统可以为关系型数据库、分布式数据库或其他能够提供数据查询接ロ的系统;数据存储系统可以为关系型数据库、分布式数据库或分布式文件系统等,在具体实施时,上述数据存储系统例如可以部署于云计算平台中,在此不作限定。其中,相对于现有技术中的第一种分配规则,本发明实施例提供的上述方法,建立临时表缓存查询到的数据后,各个数据交换节点就可以直接对缓存表中的部分数据并行地执行读取操作,可以避免每个数据交换节点都需要并行地在外部系统中进行复杂的查询操作,导致在处理大量数据时性能较差的问题,同时当存在大量数据交换节点时也不会对系统造成过大的负担。下面对上述各步骤的具体实现方式进行详细的说明。具体地,本发明实施例提供的上述方法中步骤S102可以通过下述方式实现:对临时表中缓存的每设定行数的数据,増加ー个从I开始自增固定步长的数字型(int或long型)索引,直至最后一行数据。具体地,上述步骤S102,也可以通过下述方式实现:对临时表中缓存的每设定行数的数据,増加一个字符型或字符串型索引,直至最后一行数据。相对于现有技术中的第二种分配规则,本发明实施例提供上述方法,对临时表中缓存的每设定行数的数据增加ー个索引,保证各个数据交换节点分配到的索引范围对应的数据行数相对平均,使得各个数据交换节点在并行处理时运行时间能够基本相同,提高了整体的查询效率;并且,本发明实施例提供的方法在实施时,对索引的类型并没有限定,索引可以为数字型也可以为字符型或字符串型,从而避免了使用的局限性。具体地,本发明实施例提供的上述方法中的步骤S103,如图2所示,可以通过下述步骤实现:S201、计算临时表中缓存的数据的总记录行数;S202、将总记录行数除以数据交换节点的数量,得到每个数据交换节点应处理的数据的行数;S203、根据临时表中増加的索引,确定为各数据交换节点分配的包含对应行数的索引范围。例如:计算出临时表中缓存的数据一共有10000行,假如一共有10个数据交换节点,那么可计算得到每个数据交换节点应处理1000行的数据;假如对临时表中每100行数据增加ー个从I开始自增的索引,那么对第I个数据交换节点分配的在临时表中读取的索引范围就为I10,对第2个数据交换节点分配的在临时表中读取的索引范围就为1120,以此类推。下面通过ー个具体的实例对上述数据查询操作的实现方法进行说明。例如,使用本发明实施例提供的方法将关系型数据库管理系统(RDBMS,RelationalDatabaseManagementSystem)中的数据表的查询结果导入到云计算平台中,具体地通过以下方式实现。1、在RDBMS的数据表中执行查询语句,并建立临时表缓存查询到的数据,具体语为:Createtabletemp_tableasSelectPfromTwhereCgroupbyGorderby0;2、对建立的临时表中缓存的数据的每一行依次增加一列从I开始自增的索引id,具体语句为:Altertabletemp_tableaddidINTAUTO_INCREMENTPRIMARYKEY;3、根据提供的參数生成一条计数语句,得到临时表中缓存的数据的总记录行数R,具体语句为:Selectcount(*)fromtemp_table;4、将总记录行数R除以数据交换节点的个数M,得到每个数据交换节点应处理的数据的行数L;5、根据临时表中增加的索引id,确定为各数据交换节点分配的包含对应行数的索引范围。6、各个数据交换节点根据所分配的索引范围生成各自的查询语句:Select*fromtemp_tablewhereid>startANDid<end;并行地从临时表中读取对应索引范围内的数据至云计算平台中存储。其中start与end的值对于姆个数据交换节点是不相同的。基于同一发明构思,本发明实施例还提供了ー种数据查询操作的实现装置及系统,由于该装置及系统解决问题的原理与前述ー种数据查询操作的实现方法相似,因此该装置和系统的实施可以參见方法的实施,重复之处不再赘述。本发明实施例提供的ー种数据查询操作的实现装置,如图3所示,包括:查询模块301,用于对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;索引建立模块302,用于对临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;索引分配模块303,用于根据临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;发送模块304,用于向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从临时表中读取数据至数据存储系统。进ー步地,本发明实施例提供的上述装置中的索引建立模块302,具体用于对临时表中缓存的每设定行数的数据,増加ー个从I开始自增固定步长的数字型索引,直至最后一行数据。或者,进ー步地,本发明实施例提供的上述装置中的索引建立模块302,具体用于对临时表中缓存的每设定行数的数据,増加一个字符型或字符串型索引,直至最后一行数据。进ー步地,本发明实施例提供的上述装置中的索引分配模块303,具体用于计算临时表中缓存的数据的总记录行数;将总记录行数除以数据交换节点的数量,得到每个数据交换节点应处理的数据的行数,并根据临时表中增加的索引,确定为各数据交换节点分配的包含对应行数的索引范围。本发明实施例还提供了ー种数据查询操作的实现系统,如图4所示,包括:外部数据系统401和数据存储系统402;还包括:数据查询操作的实现装置403;其中,数据查询操作的实现装置403,用于对外部数据系统401的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对临时表中缓存的每设定行数的数据增加一个索引,直至最后一行数据;根据临时表中所有数据的总记录行数和数据存储系统402中的数据交换节点4021的个数,将临时表中的所有数据均匀分配给各数据交换节点4021,确定各数据交换节点4021对应的索引范围;向各数据交换节点4021下发为其分配的索引范围;数据存储系统402包括多个数据交换节点4021,每个数据交换节点4021用于根据接收到的数据查询操作的实现装置403发送的索引范围,从临时表中读取数据至数据存储系统402。进ー步地,本发明是实施例提供的上述系统中的外部数据系统401和数据存储系统402为关系型数据库、分布式数据库或分布式文件系统等。本领域技术人员应知,在具体实施时本发明实施例提供的上述系统中的数据查询操作的实现装置403和外部数据系统401可以部署在同一实体中,也可以分别部署在不同的实体中,在此不作限定。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是ー个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的ー个或多个装置中。上述实施例的模块可以合并为ー个模块,也可以进ー步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本发明实施例提供的ー种数据查询操作的实现方法、装置及系统,对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;根据临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从临时表中读取数据至数据存储系统。本发明通过建立临时表缓存查询到的数据,各个数据交换节点就可以直接并行地对缓存表中的部分数据进行读取操作,避免了每个数据交换节点都需要并行地在外部系统中进行复杂的查询操作,减轻了在处理大量数据时外部数据系统服务器的负担,并且,由于分配给各数据交换节点的临时表中的索引范围对应的数据行数相对平均,保证了各个数据交换节点在并行处理时运行时间能够基本相同,从而提高了整体的查询效率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1.一种数据查询操作的实现方法,其特征在于,包括:对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对所述临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将所述临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从所述临时表中读取数据至所述数据存储系统。2.按权利要求1所述的方法,其特征在于,对所述临时表中缓存的每设定行数的数据増加ー个索引,直至最后一行数据,具体包括:对所述临时表中缓存的每设定行数的数据,増加ー个从I开始自增固定步长的数字型索引,直至最后一行数据。3.按权利要求1所述的方法,其特征在于,对所述临时表中缓存的每设定行数的数据増加ー个索引,直至最后一行数据,具体包括:对所述临时表中缓存的每设定行数的数据,増加一个字符型或字符串型索引,直至最后一行数据。4.按权利要求1-3任一项所述的方法,其特征在于,根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将所述临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围,具体包括:计算所述临时表中缓存的数据的总记录行数;将所述总记录行数除以数据交换节点的数量,得到每个数据交换节点应处理的数据的行数,并根据临时表中增加的索引,确定为各数据交换节点分配的包含对应行数的索引范围。5.一种数据查询操作的实现装置,其特征在于,包括:查询模块,用于对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;索引建立模块,用于对所述临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;索引分配模块,用于根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将所述临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;发送模块,用于向各数据交换节点下发为其分配的索引范围,以便各数据交换节点按照所分配的索引范围并行地从所述临时表中读取数据至所述数据存储系统。6.按权利要求5所述的装置,其特征在于,所述索引建立模块,具体用于对所述临时表中缓存的每设定行数的数据,増加ー个从I开始自增固定步长的数字型索引,直至最后ー行数据。7.按权利要求5所述的装置,其特征在于,所述索引建立模块,具体用于对所述临时表中缓存的每设定行数的数据,増加一个字符型或字符串型索引,直至最后一行数据。8.按权利要求5-7任一项所述的装置,其特征在于,所述索引分配模块,具体用于计算所述临时表中缓存的数据的总记录行数;将所述总记录行数除以数据交换节点的数量,得到每个数据交换节点应处理的数据的行数,并根据临时表中增加的索引,确定为各数据交换节点分配的包含对应行数的索引范围。9.一种数据查询操作的实现系统,包括:外部数据系统和数据存储系统;其特征在干,还包括:数据查询操作的实现装置;其中,所述数据查询操作的实现装置,用于对外部数据系统的数据表执行查询操作,将查询到的数据缓存到预先建立的临时表中;对所述临时表中缓存的每设定行数的数据增加ー个索引,直至最后一行数据;根据所述临时表中所有数据的总记录行数和数据存储系统中的数据交换节点的个数,将所述临时表中的所有数据均匀分配给各数据交换节点,确定各数据交换节点对应的索引范围;向各数据交换节点下发为其分配的索引范围;所述数据存储系统包括多个数据交换节点,每个数据交换节点用于根据接收到的所述数据查询操作的实现装置发送的索引范围,从所述临时表中读取数据至所述数据存储系统。10.按权利要求9所述的系统,其特征在于,所述外部数据系统和所述数据存储系统为关系型数据库、分布式数据库或分布式文件系统。全文摘要本发明公开了一种数据查询操作的实现方法、装置及系统,对外部数据系统的数据表执行查询操作后,将查询到的数据缓存到临时表中;对临时表中缓存的数据增加索引后,将临时表中的所有数据均匀分配给各数据交换节点,确定其对应的索引范围。本发明通过建立临时表缓存查询到的数据,各个数据交换节点就可以直接并行地对缓存表中的部分数据进行读取操作,避免了每个数据交换节点都需要并行地在外部系统中进行复杂的查询操作,减轻了在处理大量数据时外部数据系统服务器的负担,并且,由于分配给各数据交换节点的临时表中的索引范围对应的数据行数相对平均,保证了各个数据交换节点在并行处理时运行时间能够基本相同,从而提高了整体的查询效率。文档编号G06F17/30GK103092886SQ201110347659公开日2013年5月8日申请日期2011年11月7日优先权日2011年11月7日发明者高丹,邓超,徐萌,江志雄,钱岭,罗治国,孙少陵申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1