本发明专利技术公开了一种修改数据结构的方法和装置,属于数据库技术领域。所述方法应用于行存储的数据库,所述数据库包括元数据和存储数据,所述方法包括:当对所述数据库的表结构进行新增字段的修改时,保持所述存储数据不变,在所述元数据的表结构中新增字段;设置所述新增字段的默认值,所述默认值用于在所述存储数据中查询所述新增字段时作为查询的返回值。所述装置包括:修改模块和设置模块。本发明专利技术无需对存储数据进行修改,减少了修改数据结构带来的时间和性能开销,极大地提高了效率,降低了对业务的影响,有效地优化了修改数据结构的性能。
【技术实现步骤摘要】
本专利技术涉及数据库
,特别涉及一种修改数据结构的方法和装置。
技术介绍
近年来,各行各业数据存储的需求日趋旺盛,数据量呈几何增加,企业级用户数据存储不再仅仅是以往的几百GB、几TB,而是几百TB,甚至几PB、几十PB的数据存储需求,大数据存储时代的来临显而易见。目前大数据存储有两种方案可供选择:行存储和列存储。两种存储的数据都是从上至下,从左向右的排列。其中,行存储是以一行记录为单位进行数据的存储,列存储是以列数据的集合为单位进行数据的存储。对于列存储的方案,当需要修改数据库中的表结构时,只需要添加单独的一列即可。对于行存储的方案,当需要修改数据库中的表结构时,需要修改每一行记录中的数据,修改变得非常繁琐。例如,对于一个包括三行记录的数据库来说,当表结构中新增一个列字段时,必须分别为每一行的数据也添加一个列字段,因此,需要执行三次修改操作,带来的消耗和数据库中的记录条数成正比。上述行存储的方案中,如果数据量比较小,则修改表字段带来的时间和性能开销,对业务的影响还能接受。但是,随着数据存储规模的增加,数据量越来越大,如果是海量的大数据,则修改表字段需要对表中所有数据进修修改,会带来大量的时间和性能开销,甚至一次修改就需要数天时间,效率极低,对业务的影响往往难以令人接受。
技术实现思路
为了提高数据结构修改的效率,本专利技术提供了一种修改数据结构的方法和装置。所述技术方案如下:第一方面,本专利技术提供了一种修改数据结构的方法,应用于行存储的数据库,所述数据库包括元数据和存储数据,所述方法包括:当对所述数据库的表结构进行新增字段的修改时,保持所述存储数据不变,在所述元数据的表结构中新增字段;设置所述新增字段的默认值,所述默认值用于在所述存储数据中查询所述新增字段时作为查询的返回值。结合第一方面,第一方面的第一种实施方式下,所述方法还包括:当查询所述数据库且查询失败时,判断是否由于所述存储数据中没有所述新增字段而导致查询失败,如果是,则获取并返回所述新增字段的默认值。结合第一方面的第一种实施方式,第一方面的第二种实施方式下,判断是否由于所述存储数据中没有所述新增字段而导致查询失败,如果是,则获取并返回所述新增字段的默认值,包括:判断查询的字段中是否包括所述新增字段;如果查询的字段中包括所述新增字段,则确定由于所述存储数据中没有所述新增字段而导致查询失败,获取并返回所述新增字段的默认值。结合第一方面的第二种实施方式,第一方面的第三种实施方式下,所述方法还包括:如果查询的字段中不包括所述新增字段,则返回查询失败的结果。第二方面,本专利技术还提供了一种修改数据结构的装置,应用于行存储的数据库,所述数据库包括元数据和存储数据,所述装置包括:修改模块,用于当对所述数据库的表结构进行新增字段的修改时,保持所述存储数据不变,在所述元数据的表结构中新增字段;设置模块,用于设置所述新增字段的默认值,所述默认值用于在所述存储数据中查询所述新增字段时作为查询的返回值。结合第二方面,第二方面的第一种实施方式下,所述装置还包括:查询模块,用于当查询所述数据库且查询失败时,判断是否由于所述存储数据中没有所述新增字段而导致查询失败,如果是,则获取并返回所述新增字段的默认值。结合第二方面的第一种实施方式,第二方面的第二种实施方式下,所述查询模块用于:判断查询的字段中是否包括所述新增字段;如果查询的字段中包括所述新增字段,则确定由于所述存储数据中没有所述新增字段而导致查询失败,获取并返回所述新增字段的默认值。结合第二方面的第二种实施方式,第二方面的第三种实施方式下,所述查询模块还用于:如果查询的字段中不包括所述新增字段,则返回查询失败的结果。本专利技术提供的技术方案带来的有益效果是:对于行存储的数据库,所述数据库包括元数据和存储数据,当对所述数据库的表结构进行新增字段的修改时,保持存储数据不变,在元数据的表结构中新增字段,并设置新增字段的默认值,由于无需对存储数据进行修改,减少了修改数据结构带来的时间和性能开销,极大地提高了效率,降低了对业务的影响,尤其是海量数据的场景下,有效地优化了修改数据结构的性能。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的数据存储分布示意图;图2是本专利技术一实施例提供的修改数据结构的方法流程图;图3是本专利技术另一实施例提供的修改数据结构的方法流程图;图4是本专利技术又一实施例提供的修改数据结构的方法流程图;图5是本专利技术一实施例提供的修改数据结构的装置结构图;图6是本专利技术另一实施例提供的修改数据结构的装置结构图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术实施例涉及行存储的数据库。所述行存储是指数据库中的数据是按行进行存储的。通常,数据库中包括元数据和存储数据。所述元数据是指数据库中各类的表结构,包括但不限于:数据库中表内的所有字段、以及数据的存储位置等等。所述存储数据是真正的用户数据。通常,存储数据为单独存储,不与元数据存储在一起,元数据所在节点可以同时管理其他存储节点。如图1所示,为本专利技术实施例提供的数据存储分布示意图。其中,中间的节点用于存储元数据。与元数据相连的其它各个节点用于存储用户数据。可见,元数据与存储数据是分开存储的,各自独立。在行存储的数据库中,存储数据是按行存储的,每一行数据可以看成是一条记录,该记录内包括所述表结构中各个字段对应的值。例如,参见表1,为数据库中的一个表。该表包括3个字段,分别为字段1、字段2和字段3。存储数据有3行,第一行的数据包括:Datal-l、Datal_2和Datal-3,第二行的数据包括:Data2_l、Data2_2 和 Data2_3,第三行的数据包括:Data3_l、Data3_2 和 Data3_3。该数据库按行进行存储时,分别按照表中第一行、第二行、第三行的顺序进行存储。表I本文档来自技高网...
【技术保护点】
一种修改数据结构的方法,其特征在于,应用于行存储的数据库,所述数据库包括元数据和存储数据,所述方法包括:当对所述数据库的表结构进行新增字段的修改时,保持所述存储数据不变,在所述元数据的表结构中新增字段;设置所述新增字段的默认值,所述默认值用于在所述存储数据中查询所述新增字段时作为查询的返回值。
【技术特征摘要】
1.一种修改数据结构的方法,其特征在于,应用于行存储的数据库,所述数据库包括元数据和存储数据,所述方法包括: 当对所述数据库的表结构进行新增字段的修改时,保持所述存储数据不变,在所述元数据的表结构中新增字段; 设置所述新增字段的默认值,所述默认值用于在所述存储数据中查询所述新增字段时作为查询的返回值。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 当查询所述数据库且查询失败时,判断是否由于所述存储数据中没有所述新增字段而导致查询失败,如果是,则获取并返回所述新增字段的默认值。3.根据权利要求2所述的方法,其特征在于,判断是否由于所述存储数据中没有所述新增字段而导致查询失败,如果是,则获取并返回所述新增字段的默认值,包括: 判断查询的字段中是否包括所述新增字段; 如果查询的字段中包括所述新增字段,则确定由于所述存储数据中没有所述新增字段而导致查询失败,获取并返回所述新增字段的默认值。4.根据权利要求3所述的方法,其特征在于,所述方法还包括: 如果查询的字段中不包括所述新增字段,...
【专利技术属性】
技术研发人员:胡胤杰,伍华涛,陈浩,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。