创建归档模型的制作方法

文档序号:6498066阅读:165来源:国知局
创建归档模型的制作方法【专利摘要】确定数据仓库中的多个数据存储表之间的至少一种关系。基于所确定的至少一种关系创建归档模型,其中所述归档模型能用于对所述数据存储表的内容进行归档。【专利说明】创建归档模型【
背景技术
】[0001]数据仓库(例如关系型数据库管理系统的数据库)可用于将数据存储在各种数据存储表中。随着时间的推移,在数据存储表中所存储的信息量会增长。随着数据存储表在大小上增长,与访问数据库表的内容相关的性能可能变差。此外,与维护这种增长的数据库表相关联的成本也会增加。【专利附图】【附图说明】[0002]参考以下附图描述一些实施例:[0003]图1是根据一些实施方式的包括归档模型创建子系统的示例布置的框图;[0004]图2和图3是根据各种实施方式的用于构建归档模型的过程的流程图;以及[0005]图4是合并一些实施方式的示例计算系统的框图。【具体实施方式】[0006]数据仓库中的数据存储表能够存储各种数据。在一些实施方式中,数据仓库是作为关系型数据库管理系统的部分的数据库,并且数据存储表可以是数据库表。数据库表,也被称为关系,以元组(也被称为“行”)存储数据,其中元组可以包括多个属性(也被称为“列”)的值。更一般地说,“数据存储表”可以指的是用于以预定义的布置来存储数据的任意数据结构,该布置允许响应于查询检索所选择的数据。[0007]随着数据仓库中的数据存储表在大小上增长,与访问数据存储表的内容相关联的性能会变差。例如,用于试图访问数据存储表的查询可能涉及对数据存储表内容的扫描。扫描数据存储表所涉及的时间与其大小成比例;因此,与较小的数据存储表相比,扫描较大的数据存储表会花费更长的时间。对于数据存储表而言,可以执行的另一种类型的操作是连接操作,在该连接操作中,两个或多个数据存储表的内容被组合成输出,其中该输出包括从两个或更多个数据存储表中选择的满足在连接查询中规定的特定谓词的属性。连接多个数据存储表所涉及的时间会与数据存储表的大小成比例。[0008]对于数据存储表而言,系统还可以执行特定的维护操作。例如,在数据存储表上可以定义索引,其中索引将给定属性的值与数据存储表条目(例如,行)的相应标识符关联。索引根据给定属性的值被分类,使得使用索引可以更快捷地获得查询的结果(与不得不扫描数据存储表以寻找目标条目相比),查询是查找包含给定属性的具体值的数据存储表的条目。随着数据存储表被更新,索引被更新一与更新索引相关联的成本(时间、处理资源等等)与相应数据存储表的大小成比例。[0009]对于数据存储表而言,可以执行其它类型的维护操作,并且这样的维护操作的成本会与数据存储表的大小成比例。[0010]对数据存储表中的一部分数据进行归档可以减轻由于数据存储表大小所导致的性能减慢和维护成本增加的问题。对数据存储表的内容进行归档是指将数据存储表的满足某一标准或者某些标准(例如,被归档的内容比一些预定义的时期更早、被归档的内容包括来自特定客户或者来自企业的特定部门的数据等)的一部分移动到归档仓库。数据存储表的被归档部分从数据存储表中被去除,使得在归档之后数据存储表变得更小。[0011]因为数据仓库的数据存储表可能彼此相关,因此数据存储表的归档应该考虑数据存储表之间的关系(换句话说,不应该在未考虑两个或更多个数据存储表之间的关系时单独地执行相关数据存储表的内容的归档)。例如,如果第一数据存储表和第二数据存储表之间存在关系,则数据归档应该包括第一和第二数据存储表的内容的归档。[0012]表之间的关系可以包括直接关系或间接关系。例如,第一表的属性可以与第二表的属性直接相关。作为又一个示例,第三表的属性可以与第二表的属性直接相关——在此情况下,第三表的属性与第一表的属性间接相关。[0013]如果由用户人工进行理解数据存储表(特别在具有相对大量的数据存储表的数据仓库中)之间的关系,则这会是复杂和耗时的过程。根据一些实施方式,为了对数据仓库中的数据存储表的内容进行归档,提供了一种自动机制来确定数据存储表之间的关系。一旦数据存储表之间的关系被确定,就能够使用这种关系来开发归档模型。归档模型包含关于规定待被归档的多个数据存储表的关系的信息。数据管理子系统可以使用归档模型以对在归档模型中规定的相关存储表的内容进行归档。[0014]图1是根据一些实施方式的示例系统的框图。该系统包括能基于各种输入信息以自动方式创建归档模型104的归档模型创建子系统102。输入信息包括数据仓库110中的数据存储表108的元数据106。元数据106描述数据存储表108的各种信息,包括表之间的任意关系。如下面进一步所论述的,元数据106可以采用临时表的形式,该临时表可以被查询以确定各种数据存储表108之间的关系。在其它示例中,元数据106能够以其它数据结构来存储。[0015]虽然图1中描绘了仅仅一个数据仓库110,但应注意,可以存在包含待被归档的相应数据存储表集的多个数据仓库。[0016]可以被提供给归档模型创建子系统102的又一输入信息包括归档规范112,归档规范112规定了与对数据仓库110的数据进行归档相关联的各种规则。例如,归档规范112可以规定比某些预定义时期更早的数据将被归档。作为其它示例,归档规范112可以规定与已结客户订单(例如,客户所订购的产品已装运,并且客户已付款)相关联的数据应该被归档。作为更多的示例,归档规范112可以规定来自特定源(例如,特定客户组、企业的特定部门等等)的数据应该被归档。归档规范112可以由归档模型创建子系统102使用,以识别包含待被归档的内容(满足归档规范112)的数据存储表。[0017]用于归档模型创建子系统102的又一输入信息包括表模式信息114。表模式信息114描述每一个数据存储表的定义(例如属性集)。表模式信息114允许归档模型创建子系统102识别在数据仓库110中的表108的集合。[0018]用于归档模型创建子系统102的又一输入信息包括表增长信息116。在某些不例中,表增长信息116可以识别数据仓库110中每一个数据存储表108的增长率。由于对数据仓库110中的所有数据存储表108进行归档可能是处理密集的,因此表增长信息116可以由归档模型创建子系统102使用来识别待被归档的数据存储表108的子集(对不在所识别的子集中的数据存储表108不进行归档)。例如,作为归档的候选的数据存储表可以是增长率超出某些预定义增长阈值的表(例如,表以大于每小时X行增长)。[0019]在其它的示例中,代替表增长信息(或者加上表增长信息),关于表108的大小信息也可以由归档模型创建子系统102使用来识别待被归档的表。大小信息可以指示数据存储表的诸如在表中的行数或者表所消耗的存储空间方面的大小。如果数据存储表的大小信息指示表具有大于某些预定义阈值的大小,则归档模型创建子系统102可以将该表识别为其内容将被归档的表。更一般地说,需归档的数据存储表108的子集的识别可以基于大小标准,该标准可以是与增长率相关的标准或者与表大小相关的标准。[0020]基于图1中所描绘的各种输入信息,归档模型创建子系统102根据一些实施方式来创建归档模型104。归档模型104可以用图表形式来表示,例如,归档模型104可以被表示为具有节点、和节点之间的联系的图表,节点代表相应数据存储表,节点之间的联系代表数据存储表对之间的对应关系。在其它示例中,归档模型104可以用另一形式来表示,比如用文本形式(例如,诸如可扩展标记语言或XML文档之类的标记语言文档中的文本),或者用任意其它的预定义形式。[0021]归档模型104可以被提供给数据管理子系统120。在某些示例中,数据管理子系统120可以是数据库管理子系统,其包括能管理数据仓库110中表108的访问的数据库管理应用程序。在其它的示例中,数据管理子系统120可以是归档子系统。使用归档模型104,数据管理系统120能够将数据存储表的内容归档到归档仓库122。[0022]归档仓库122可以被存储在归档存储子系统124中,归档存储子系统124与用于存储数据仓库110的操作存储子系统126分离。在某些示例中,归档存储子系统124的存储装置可以是较低性能的存储装置,其比操作存储子系统126的存储装置更为便宜。归档存储子系统124和操作存储子系统126的存储装置的示例可以包括基于磁盘的存储装置、基于磁带的存储装置、半导体存储装置或者其它类型的存储装置。[0023]图2是根据一些实施方式的过程的流程图。例如,图2的流程图可以由归档模型创建子系统102来执行。图2的过程识别(在202处)数据仓库110中的数据存储表108的集合。例如,此识别步骤可以基于图1的表模式信息114。图2中描绘了数据存储表的示例集合204。[0024]如上所述,可能不期望将数据仓库110中所有数据存储表108的内容进行归档。在一些实施方式中,数据增长分析被执行(在206处)以识别集合204中每一个数据存储表的数据增长。数据增长(基于表增长信息116)超出预定义增长率阈值的数据存储表被识另O,并且被输出作为已识别的“庞大表(bulkytable)”(例如图2中的208)。“庞大表”可以指的是数据增长超出预定义增长率阈值的数据存储表。可替代地或者附加地,“庞大表”可以指的是大小超出预定义大小阈值的数据存储表。在图2的示例中,所识别的庞大表包括0RDER_HEADER表和ORDER_LINE_DIST表。[0025]该过程接下来识别(在210处)一个或多个驱动表。“驱动表”是指父表,其内容随着与父表相关的从属表的内容一起被归档。在图2的示例中,0RDER_HEADER表可以被识别为驱动表。庞大表是否被识别为驱动表可以基于预定义的标准。在一些实施方式中,标准可以是:被识别为驱动表的庞大表是与在例如关系型数据库管理系统中的给定事务(例如连接事务)中与其它数据存储表相关的基本数据存储表。例如,为了产生连接事务的结果,基本数据存储表的内容(属性)根据在连接查询中所规定的谓词(条件)与其它数据存储表的内容(属性)相比较,并且如果谓词(条件)被满足,则基本数据存储表及其它数据存储表的行被选择用于输出。因此,连接事务的输出是基于基本数据存储表及与基本数据存储表相关的其它数据存储表的内容。[0026]上述是表之间的基于关系型数据库管理系统的给定事务的关系的示例。在其它示例中,表之间的关系还可以是基于主键-外键关系。主键包括第一数据存储表的属性,并且外键包括第二数据存储表的属性。第二数据存储表中的外键与第一数据存储表中的主键相匹配,使得该对主键和外键能用于交叉引用第一和第二数据存储表。更正式地说,外键提供数据存储表之间的引用约束。可以存在包括与第一数据存储表的主键相关的相应外键的多个数据存储表。[0027]为了确定其它表与驱动表(例如在图2的示例中的0RDER_HEADER)的关系,图1的元数据106可以被访问。元数据106可以包括可由归档模型创建子系统102查询的临时表,用以识别表之间的关系。例如,在图2中,临时表包括临时RELAT10N_INF0表和临时TABLE_INF0表。[0028]在具体的示例中,临时TABLE_INF0表包含各行,其包括以下属性(可能还存在其它属性):1D(标识符)、NAME和TYPE。[0029]TABLE_INF0[0030]【权利要求】1.一种方法,包括:由具有处理器的系统确定数据仓库中的多个数据存储表之间的至少一种关系;以及由所述系统基于所确定的至少一种关系创建归档模型,其中所述归档模型能用于对所述数据存储表的内容进行归档。2.根据权利要求1所述的方法,进一步包括:将所述归档模型提供给数据管理子系统,以执行对所述数据存储表的内容的归档。3.根据权利要求1所述的方法,其中确定所述至少一种关系包括:确定与涉及所述多个数据存储表的事务相对应的至少一种关系。4.根据权利要求1所述的方法,其中确定所述至少一种关系包括:确定所述多个数据存储表的主键与外键关系。5.根据权利要求1所述的方法,进一步包括:从数据存储表的集合中识别将作为归档对象的特定数据存储表,其中所述特定数据存储表是所述多个数据存储表的部分。6.根据权利要求5所述的方法,其中基于大小标准从所述数据存储表的集合中识别所述特定数据存储表。7.根据权利要求6所述的方法,其中基于所述大小标准识别包括:基于与所述集合中的所述数据存储表的增长率相关的标准识别。8.根据权利要求1所述的方法,进一步包括:由数据管理子系统使用所述归档模型来对所述数据存储表的内容进行归档。9.根据权利要求1所述的方法,进一步包括:相对于与所述归档模型相关联的所述数据存储表,评估与归档相关的至少一种规则,以识别待归档的所述数据存储表的内容。10.一种物品,包括用于存储指令的至少一种机器可读存储介质,所述指令一旦执行就致使系统用以:确定多个数据存储表的增长率;基于所述增长率识别所述多个数据存储表中的作为归档对象的特定数据存储表;确定所述特定数据存储表和至少一个其它数据存储表之间的至少一种关系;以及基于所确定的至少一种关系创建归档模型,其中所述归档模型能用于对所述特定数据存储表和所述至少一个其它数据存储表的内容进行归档。11.根据权利要求10所述的物品,其中创建所述归档模型包括创建基于图表的归档模型。12.根据权利要求10所述的物品,其中创建所述归档模型包括创建基于文本的归档模型。13.根据权利要求10所述的物品,其中识别所述至少一种关系是基于将所述特定数据存储表的属性和所述至少一个其它表的属性相关的元数据。14.根据权利要求10所述的物品,其中所述指令一旦执行就致使所述系统进一步来:输出所述归档模型到数据管理子系统,以用于对所述特定数据存储表和所述至少一个其它数据存储表的内容进行归档。15.—种系统,包括:至少一个处理器,用以:确定数据仓库中的多个数据存储表之间的至少一种关系;以及基于所确定的至少一种关系创建归档模型,其中所述归档模型能用于对所述数据存储表的内容进行归档。【文档编号】G06F17/40GK104081397SQ201280068481【公开日】2014年10月1日申请日期:2012年4月9日优先权日:2012年4月9日【发明者】丹尼·奥贝罗伊,蒂娜·达斯古普塔,阿伦库马尔·斯里达兰申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1