数据分布的方法、装置及系统制造方法及图纸

技术编号:9960366 阅读:63 留言:0更新日期:2014-04-23 20:23
本发明专利技术公开了一种数据分布的方法、装置及系统,涉及信息技术领域,为节省查询时间,提高查询效率而发明专利技术。所述方法包括:在数据查询前,控制节点根据创建规则设置分布表创建指示,所述分布表创建指示中携带逻辑数据表的标识ID以及选定分布列的分布列标识,其中所述选定分布列为所述逻辑数据表中的分布列,所述逻辑数据表为所述控制节点中已创建的逻辑数据表;所述控制节点向数据节点发送所述分布表创建指示,以便所述数据节点根据所述分布表创建指示创建所述逻辑数据表的分布表。本发明专利技术主要应用于并行数据库系统中的数据分布过程中。

【技术实现步骤摘要】
【国外来华专利技术】数据分布的方法、装置及系统
本专利技术涉及信息
,尤其涉及一种数据分布的方法、装置及系统。
技术介绍
并行数据库系统是一种将数据内容分布存储在多个数据节点上的数据存储技术,可以根据哈希(Hash)、范围(Range)、轮转(Round-bin)等算法,将一个逻辑数据表分布在各个数据节点上。并行数据库系统在各个数据节点上并行查询用户需要的数据内容,相对非并行数据库系统而言查询速度快,并且易于管理数据内容。通常,逻辑数据表中会包含多个字段,并行数据库系统以其中的一个(或多个)字段内容作为上述算法的自变量对该逻辑数据表在数据节点上进行分布存储,作为自变量的字段称为该逻辑数据表的分布列。现有技术中,并行数据库系统对多个逻辑数据表的分布表进行分布列联合(Join)查询时,如果具有查询关系的多个分布表的分布列不相同,则需要根据多个分布表共有的分布列对多个逻辑数据表重新进行分布,从而影响查询效率。
技术实现思路
本专利技术的实施例提供一种数据分布的方法、装置及系统,能够节省查询时间,提高查询效率。一方面,本专利技术实施例提供了一种数据分布的方法,包括:在数据查询前,控制节点根据创建规则设置分布表创建指示,所述分布表创建指示中携带逻辑数据表的标识ID以及选定分布列的分布列标识,其中所述选定分布列为所述逻辑数据表中的分布列,所述逻辑数据表为所述控制节点中已创建的逻辑数据表;所述控制节点向数据节点发送所述分布表创建指示,以便所述数据节点根据所述分布表创建指示创建所述逻辑数据表的分布表。另一方面,本专利技术实施例还提供了一种控制节点,包括:处理单元,用于在数据查询前,根据创建规则设置分布表创建指示,所述分布表创建指示中携带逻辑数据表的标识ID以及选定分布列的分布列标识,其中所述选定分布列为所述逻辑数据表中的分布列,所述逻辑数据表为所述控制节点中已创建的逻辑数据表;发送单元,用于向数据节点发送所述处理单元设置的所述分布表创建指示,以便所述数据节点根据所述分布表创建指示创建所述逻辑数据表的分布表。最后,本专利技术实施例还提供了一种数据分布的系统,包括:控制节点,用于在数据查询前,根据创建规则设置分布表创建指示,所述分布表创建指示中携带逻辑数据表的标识ID以及选定分布列的分布列标识,其中所述选定分布列为所述逻辑数据表中的分布列,所述逻辑数据表为所述控制节点中已创建的逻辑数据表,向数据节点发送所述分布表创建指示;所述数据节点,用于在数据查询前,接收所述控制节点发送的所述分布表创建指示,根据所述分布表创建指示创建所述逻辑数据表的分布表。本专利技术实施例提供的数据分布的方法、装置及系统,能够在数据查询前,根据创建规则按照相同的分布列将多个逻辑数据表分布存储在各个数据节点上,分布存储后各个数据节点上建立的分布表用于后续的数据查询。可以避免在分布列联合查询的过程中,当具有查询关系的多个分布表的分布列不相同时,需要将多个逻辑数据表重新分布存储在各个数据节点上的问题,可以避免在分布列联合查询的过程中大量数据迁移带来的查询时延,能够提高查询效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为并行数据库系统的架构的示意图;图2为并行数据库系统中逻辑数据表的示意图;图3为数据节点创建分布表的示意图;图4为另一个数据节点创建分布表的示意图;图5为本专利技术实施例中数据分布的方法的流程图;图6为本专利技术实施例中另一个数据分布的方法的流程图;图7为本专利技术实施例中应用场景的示意图;图8为本专利技术实施例中控制节点的结构示意图;图9为本专利技术实施例中数据分布的系统示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为并行数据库系统的一种架构,控制节点连接了三个数据节点,控制节点和每个数据节点都有独立的中央处理器(CentralProcessingUnit,简称CPU)、存储器(内存、硬盘)、节点与节点之间通过高速网络(例如以太网、光纤交换网)实现数据通信。其中,控制节点主要用于:1、根据逻辑数据表的字段以及预设算法将待管理数据分布存储到各个数据节点上,所述逻辑数据表为存储在控制节点中的具有数据结构属性的数据表,所述逻辑数据表为数据节点创建分布表的逻辑依据;2、为客户端提供查询接口,例如结构化查询语言(StructuredQueryLanguage,简称SQL)、Java数据库连接(JavaDataBaseConnectivity,简称JDBC)、开放数据库互连(OpenDatabaseConnectivity,ODBC)等;3、根据客户端的查询请求处理各个数据节点反馈的查询结果。数据节点主要用于:受控制节点控制根据分布列建立逻辑数据表的分布表、与其他数据节点进行数据迁移、作为独立数据库节点实现分布表的存储和查询。以存储教学数据信息为例:图2中有三个逻辑数据表,逻辑数据表A(后续简称为表A)存储学号与姓名的数据,逻辑数据表B(后续简称为表B)存储学号、课程标识以及成绩的数据,逻辑数据表C(后续简称为表C)存储课程标识与课程名称的数据。其中,逻辑数据表中的任意一列(或称为字段或属性)均可作为该逻辑数据表分布存储的分布列,例如表B中的学号、课程标识和成绩为表B的三个字段。控制节点将学号字段作为分布列,通过哈希(Hash)模3算法将表A的数据分布存储到三个数据节点上。如图3所示,学号1除3余1,则学号1以及学号1对应的姓名(即表A中的第一行数据)存储到数据节点1上,学号2除3余2,则表A中的第二行数据存储到数据节点2上,学号3除3余0,则表A中的第三行数据存储到数据节点0上,其中哈希模3算法中的除数3为并行数据库系统中数据节点的个数。同理,控制节点分别以学号字段和课程标识字段作为分布列,将表B和表C的数据分布存储到三个数据节点上。其中,控制节点将学号字段作为表B的分布列(j)通过哈希模3算法对表B进行分布,将课程标识字段作为表C的分布列(k)通过哈希模3算法对表C进行分布。逻辑数据表分布后,每个数据节点上建立的数据表称为该逻辑数据表的分布表,分布表的名称可以由逻辑数据表标识+数据节点标识+分布列标识来表示,例如数据节点1中的B+mdt1+j,表示数据节点1以学号字段(j)作为分布列创建表B的分布表。当客户端执行查询语句selectstu_name,course_idfromA,BwhereA:stu_id=B:stu_id时,该查询语句表示通过表A和表B的分布列联合查询(fromA,B),查询姓名、课程标识和成绩的数据,以及三者之间的对应关系(selectstu_name,course_id),其中表A和表B均以学号字段作为分布列分布存储在各个数据节点上(A:stu_id=B:stu_id)。查询结果为数据节点1查询到学号1对应的三个课程本文档来自技高网...
数据分布的方法、装置及系统

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种数据分布的方法,其特征在于,包括:在数据查询前,控制节点根据创建规则设置分布表创建指示,所述分布表创建指示中携带逻辑数据表的标识ID以及选定分布列的分布列标识,其中所述选定分布列为所述逻辑数据表中的分布列,所述逻辑数据表为所述控制节点中已创建的逻辑数据表;所述控制节点向数据节点发送所述分布表创建指示,以便所述数据节点根据所述分布表创建指示创建所述逻辑数据表的分布表;所述控制节点根据创建规则设置分布表创建指示,具体包括:所述控制节点判断所述数据节点是否已根据所述逻辑数据表的标识ID以及所述选定分布列的分布列标识创建所述逻辑数据表的分布表;当所述数据节点未根据所述逻辑数据表的标识ID以及所述选定分布列的分布列标识创建所述逻辑数据表的分布表时,所述控制节点将所述逻辑数据表的标识ID以及所述选定分布列的分布列标识添加到所述分布表创建指示中;当所述数据节点已根据所述逻辑数据表的标识ID以及所述选定分布列的分布列标识创建所述逻辑数据表的分布表时,所述控制节点不将所述逻辑数据表的标识ID以及所述选定分布列的分布列标识添加到所述分布表创建指示中。2.根据权利要求1所述的方法,其特征在于,所述控制节点根据创建规则设置分布表创建指示,具体包括:所述控制节点统计在预设周期内所述逻辑数据表的数据,得出统计结果,根据所述统计结果将所述逻辑数据表的标识ID以及所述选定分布列的分布列标识添加到所述分布表创建指示中;或者,所述控制节点接收客户端的创建指示,所述创建指示中携带所述逻辑数据表的标识ID以及所述选定分布列的分布列标识,所述控制节点将所述创建指示中携带的所述逻辑数据表的标识ID以及所述选定分布列的分布列标识添加到所述分布表创建指示中。3.根据权利要求2所述的方法,其特征在于,所述控制节点统计在预设周期内所述逻辑数据表的数据,具体包括:在一个预设周期内,所述控制节点统计下述数据中的至少一项:所述逻辑数据表被查询的次数、所述逻辑数据表中被查询的表项数据占所述逻辑数据表总表项数据的比例以及所述逻辑数据表中分布列被查询的次数;所述根据所述统计结果将所述逻辑数据表的标识ID以及所述选定分布列的分布列标识添加到所述分布表创建指示中,具体包括:当所述逻辑数据表被查询的次数超过第一阈值时,所述控制节点将所述逻辑数据表的标识ID以及所述逻辑数据表中所有分布列的分布列标识添加到所述分布表创建指示中;和/或,当所述逻辑数据表中被查询的表项数据占所述逻辑数据表总表项数据的比例超过第二阈值时,所述控制节点将所述逻辑数据表的标识ID以及所述逻辑数据表中所有分布列的分布列标识添加到所述分布表创建指示中;和/或,当所述逻辑数据表中分布列被查询的次数超过第三阈值时,所述控制节点将所述逻辑数据表的标识ID以及所述逻辑数据表中被查询次数超过所述第三阈值的分布列的分布列标识添加到所述分布表创建指示中。4.根据权利要求3所述的方法,其特征在于,当所述逻辑数据表中分布列对应的分布表被查询的次数小于第四阈值时,所述方法进一步包括:所述控制节点向所述数据节点发送分布表删除指示,所述分布表删除指示携带被查询次数小于所述第四阈值的分布表对应的分布列的分布列标识以及所述逻辑数据表的标识ID,所述分布表删除指示用于指示所述数据节点删除所述被查询次数小于所述第四阈值的分布表。5.一种控制节点,其特征在于,包括:处理单元,用于在数据查询前,根据创建规则设置分布表创建指示,所述分布表创建指示中携带逻辑数据表的标识ID以及选定分布列的分布列标识,其中所述选定分布列为所述逻辑数据表中的分布列,所述逻辑数据表为所述控制节点中已创建的逻辑数据表;发送单元,用于向数据节点发送所述处理单元设置的所述分布表创建指示,以便所述数据节点根据所述分布表创建指示创建所述逻辑数据表的分布表;所...

【专利技术属性】
技术研发人员:吴向阳曹俊亮曹莉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1