一种在线数据生命周期管理方法和装置的制作方法

文档序号:6341379阅读:264来源:国知局
专利名称:一种在线数据生命周期管理方法和装置的制作方法
技术领域
本发明涉及数据库技术领域,尤其涉及一种在线数据生命周期管理方法和装置。
背景技术
在目前的业务系统中,随着融合,割接,集中等等项目的实施,业务系统的数据库变得日益庞大。尤其是营帐系统,计费系统,经分系统等,随着时间的推移以及业务量的增长,数据量日渐臃肿;同时,数据的时效性问题越来越被关注,需要针对不同系统,制定合适的数据生命周期管理机制,否则如果任由其发展,数据库将最终不堪重负。因此,如何对过期历史数据进行有效处理,成为一个尤为重要问题。绝大部分现有的系统中,在对过期历史数据的处理方式上,主要有以下几种方式第一种,以时间维度为衡量标准,按照一定的时间间隔(日,周,月等),制定数据生命周期规则,对符合条件的过期历史数据进行删除(DELETE)操作,从而保证数据库总体数据量的基本稳定。第二种,使用分区表模式,按照一定的时间维度进行分区(日,周,月等),制定数据生命周期规则,对符合条件的过期数据分区进行截短(TRUNCATE)操作。第三者,使用历史表,对当前表中过期数据,通过插入(INSERT)操作迁移到历史表中,然后在当前表中使用DELETE或TRUNCATE等手段清理过期数据。上述方式中的DELETE、INSERT和TRUNCATE都是结构化查询语言(SQL)中的基本语句,其中,DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的的删除操作作为事务记录在日志中保存以便进行进行回滚操作,其执行速度较慢;TRUNCATE语句则一次性地从表中删除所有的数据页而并不把单独的删除操作记录记入日志保存,删除行是不能恢复的,其执行速度快;INSERT语句用来在数据表或视图中插入一行数据。当前数据库系统,需要处理的数据量,信息量越来越庞大,应用系统的结构设计越来越复杂,数据库规模也随之与日俱增,现有技术方案逐渐显露出多种欠缺和不足。第一种技术,使用DELETE方式,适用于所有业务类型的数据对象,包括分区表,非分区表等等。但是,该作业方式对数据库的资源消耗很大,当需要处理的数据量较大时,数据库因为过期数据处理需要承担的负载量将无法承受。第二种技术,基于分区表技术,使用TRUNCATE技术,该技术手段比DELETE方式简单高效。但是,首先在实际生产中,数据的区隔度往往不止时间维度,例如账单数据,存在动态的已结清和未结清数据,不能仅仅依靠时间维度,对其进行TRUNCATE,其次,在高并发访问的系统中,对频繁访问的表表进行TRUNCATE操作,容易产生闭锁,造成业务中止,影响业务系统的连贯性。第三种技术,从本质上说没有脱离第一与第二种技术的范畴,存在与第一、二种技术手段相同的问题。可见,现有的管理数据生命周期的技术手段均没有真正解决在线数据生命周期管理问题,在实际生产环境中使用均存在着大量的不适应性,同时对生产系统的影响也处于较高的风险水平。

发明内容
本发明提供了一种在线数据生命周期管理方法,能够高效低耗地管理数据生命周期,从而保证数据库的资源高效性。本发明还提供了一种在线数据生命周期管理装置,能够高效低耗地管理数据生命周期,从而保证数据库的资源高效性。本发明的技术方案是这样实现的一种在线数据生命周期管理方法,包括预先设置多个主表分区,并为每个主表分区分别设置一个对应的历史动态数据分区和一个对应的历史子表;将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区,并将所述主表分区中的数据转移至所述主表分区对应的历史子表中,对所述历史子表中的数据进行删除操作。一种在线数据生命周期管理装置,包括分区模块,用于预先设置多个主表分区,并为每个主表分区分别设置一个对应的历史动态数据分区和一个对应的历史子表;划分模块,用于将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;静动态分离模块,用于当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区;转移模块,用于当对主表分区中的数据进行静动态分离之后,将所述主表分区中的数据转移至所述主表分区对应的历史子表中;删除模块,用于对所述历史子表中的数据进行删除操作。可见,本发明提出的方法和装置,通过多元化数据结构,引入主表分区、历史动态数据分区和历史子表的概念,融入了业务数据过滤分离技术,通过分区转换等手段,实现了实时在线的高效低耗地管理数据生命周期。


图1为本发明提出的在线数据生命周期管理方法示意图;图2本发明实施例中业务主表的结构示意图;图3为本发明实施例中历史动态数据分表的结构示意图;图4为本发明实施例中历史子表的结构示意图;图5为本发明实施例中实现静动态数据分离的示意图;图6为本发明实施例中对主表分区与历史子表进行EXCHANGE操作的示意图。
具体实施例方式在现有的数据库系统中,静动态数据可分为几类,第一类是单纯以时间维度评估的记录类数据,该部分数据从进入数据库开始,就已经是静态数据,供查询使用,如非特殊情况,对该类数据的访问基本上以查询为主,该类数据的数据量较大,同时访问量也较大; 第二类数据,除了时间维度外,还要考虑应用维度(如账单数据等),该部分数据在进入数据库后会随着业务的变化而变化的(如未结清账单转变为已结清账单),该类数据的数据量和访问量同样较大,并且,对其的访问除了查询外,还会有大量的更新操作,在同一时间维度内,随着时间维度的延伸,在接近数据生命周期末端时,动态数据所占的比例将越来越小,通常不超过5% ;第三类数据,可以被称为持续动态数据(如用户信息数据),该部分数据、在数据库中所占比重极小,通常不会发生剧烈变化,并且数据的特性是持续动态的,无需进行生命周期管理。本发明就是以此为出发点,针对第一类和第二类数据,引入主表分区、、历史动态数据分区和历史子表的概念,设计出符合这两类数据特性的多元化底层数据结构,并根据此结构,融入业务数据过滤分离技术,通过EXCHANGE等技术手段,进而建立起一套高效低耗的在线数据生命周期管理方法。本发明提出的在线数据生命周期管理方法包括预先设置多个主表分区,每个主表分区分别对应一个历史动态数据分区和一个历史子表;将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区,并将所述主表分区中的数据转移至所述主表分区对应的历史子表中,对所述历史子表中的数据进行删除操作。如图1为本发明提出的在线数据生命周期管理方法示意图。在图1中,将业务主表包括η个主表分区,每个主表分区分别对应1个历史动态数据分区和1个历史子表,η个历史动态数据分区构成历史动态分表。数据按照时间维度进行划分,划分后的数据分别保存在各个主表分区中;当一个主表分区中的数据到达生命周期末端是时,执行静动态数据分离,将分离出的动态数据保存入该主表分区对应的历史动态数据分区,这样,该主表分区中数据就全部为静态数据,该主表分区也就成为静态分区;之后,将该主表分区(此时已经是静态分区)与其对应的历史子表进行EXCHANGE操作,原先的主表分区变成空分区,而原本为空的历史子表则包含了原来主表分区中的数据,这样就可以对历史子表中的数据进行删除操作。以下举具体的实施例详细介绍。实施例一业务主表的结构设计业务主表的结构设计以时间维度为主,保存前述第一类数据及第二类数据,根据业务数据的生命周期规律,以时间维度进行分区,业务主表包括多个主表分区。如图2本发明实施例中业务主表的结构示意图,以账单数据为例,其时间维度单位是月,因此,对其账单日期字段提取月份信息,构造分区字段,并形成按月排放的主表分区结构,分区数目取决于数据有效生命时间,假设有效生命时间为12个月,则账单业务主表一共建12个主表分区,即1月分区至12月分区,循环使用。实施例二 历史动态数据分表的结构设计历史动态数据分表用于存放那些在业务主表中到达时间维度定义的生命周期、但根据业务维度仍处于激活状态的数据。历史动态数据分表包括多个历史动态数据分区,每个历史动态数据分区对应一个主表分区。当主表分区的时间维度窗口到达后,通过静动态数据分离层,将这部分历史动态数据分离至历史动态数据分区。如图3为本发明实施例中历史动态数据分表的结构示意图,其结构设计与业务主表完全一致。通常来说,这部分数据只占总数据1% 5%。实施例三历史子表结构设计历史子表的结构设计与业务主表逻辑结构完全一致,采取单表结构,历史子表数量与业务主表的主表分区数对应。沿用上面的例子,在此需要建立与12个主表分区对应的 12个历史子表,在初始创建时,历史子表均为空表,通过后续的EXCHANGE语句进行数据转换,如图4为本发明实施例中历史子表的结构示意图。实施例四静动态数据分离根据实际研究计算,业务主表中到达时间维度定义的生命周期、但根据业务维度仍处于激活状态的数据通常只占总数据量的 5%,并且,正常情况下静动态数据转化是单向的。以账单数据为例,只可能从未结清状态转变为已结清状态,而不会从已结清状态转变为未结清状态(除非应用异常)。因此,为了实现高效的静动态数据分离,本实施例主要从动态数据入手,S卩,将数据中的动态数据从所有数据中分离出来。当数据在主表分区中达到时间维度定义的生命周期末端时,对该主表分区中的数据进行静动态数据分离,依然沿用账单表的例子,假设现在是12月,在业务主表中,1月主表分区中的数据已经接近生命周期末端,需要对其进行静动态数据分离。如图5为本发明实施例中实现静动态数据分离的示意图。在主表分区1中,动态数据所占比重大约在左右,并且访问可能性极低,因此在计划安排的时间窗口内,对这
的动态数据,采取INSERT等同步手段,同步至历史动态数据分表的对应分区中,形成历史动态数据分区1,同时,原主表分区1中的数据全部转化为静态数据,则主表分区1也就变成了静态分区1。实施例五主表分区与历史子表进行EXCHANGE经过上述实施例四中的静动态数据分离后,业务主表的生命周期末端分区(此处为主表分区1,也就是静态分区1)中,全部是静态可清理数据。对于实时在线系统,业务主表除了包括主表分区1的数据外,还包括其他主表分区的数据,因此,生产系统对业务主表的访问频率依旧较高,此时,对该业务主表的主表分区1的在线清理必须采用最小影响的方式。在本实施例中,使用表分区与单表EXCHANGE技术。如图6为本发明实施例中对主表分区与历史子表进行EXCHANGE操作的示意图。表分区与单表EXCHANGE技术是通过更新数据字典来实现分区与普通表的置换, 对物理对象无任何操作,不会引起任何IO争用以及对象争用风险。通过EXCHANGE操作后, 原业务主表的主表分区1变成空分区,而原本为空表的历史子表1此时则包含了全部原来主表分区1的数据,操作完成时间为秒级。
EXCHANGE操作完成后,原主表分区1中的数据与原业务主表完全脱离关系,实现了完全安全高效的静态数据剥离。此时,对历史过期数据的处理,只需要对历史子表操作即可,对当前生产应用无任何影响。同时,由于历史子表中的数据是已经经过静动态分离的,所以,对该历史子表可以进行全表的DDL操作,如采用TRUNCATE语句或下降(DROP)语句等对历史子表中的数据进行删除。因此,在数据清理策略选择上,直接采用TRUNCATE子表的方式,达到了高效安全无
缝的清理。另外,如果存在历史数据迁移需求,则可以对历史子表进行查询、迁移等操作,这对系统的业务主表不会产生影响。从而全面保障了数据库系统数据生命周期管理的高效性、低耗性、安全性以及高度的业务契合性。以上即为本发明提出的在线数据生命周期管理方法,相应地,本发明还提出一种在线数据生命周期管理装置,包括分区模块,用于预先设置多个主表分区,并为每个主表分区分别设置一个对应的历史动态数据分区和一个对应的历史子表;划分模块,用于将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;静动态分离模块,用于当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区;转移模块,用于当对主表分区中的数据进行静动态分离之后,将所述主表分区中的数据转移至所述主表分区对应的历史子表中;删除模块,用于对所述历史子表中的数据进行删除操作。上述静动态分离模块将数据进行静动态数据分离的方式可以为将所述数据中的动态数据从所述数据中分离出来。上述静动态分离模块将分离出的动态数据保存入主表分区对应的历史动态数据分区的方式可以为采用INSERT语句进行保存。上述转移模块用于采用EXCHANGE语句,对所述主表分区和该主表分区对应的历史子表进行置换,将所述主表分区转换成空分区,将所述主表分区中的数据转移至所述历史子表。上述删除模块用于采用TRUNCATE语句或DROP语句对所述历史子表中的数据进行删除。综上可见,本发明提出的在线数据生命周期管理方法和装置,引入业务主表,历史子表及历史动态数据分表等方式的多元化数据结构,解决了维护性与业务性的冲突,同时, 该多元化数据结构模型具有广泛的适用性。通过业务规则的静动态数据分离,量化了业务特征,也融合了业务数据的特性和共性,实现了最小化的生产数据处理,大大提高了生产业务数据表的安全性。使用静动态数据分离技术,以及分区exchange partition技术,高效实现了静态历史数据与生产对象的完全剥离,具备充分的扩展性与通用性,后续对历史过期数据的任何处理均没有任何系统风险性。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种在线数据生命周期管理方法,其特征在于,所述方法包括预先设置多个主表分区,并为每个主表分区分别设置一个对应的历史动态数据分区和一个对应的历史子表;将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区,并将所述主表分区中的数据转移至所述主表分区对应的历史子表中,对所述历史子表中的数据进行删除操作。
2.根据权利要求1所述的方法,其特征在于,所述将数据进行静动态数据分离的方式为将所述数据中的动态数据从所述数据中分离出来。
3.根据权利要求1所述的方法,其特征在于,所述将分离出的动态数据保存入主表分区对应的历史动态数据分区的方式为采用插入INSERT语句进行保存。
4.根据权利要求1所述的方法,其特征在于,所述将主表分区中的数据转移至该主表分区对应的历史子表的方式为采用交换EXCHANGE语句,对所述主表分区和该主表分区对应的历史子表进行置换,将所述主表分区转换成空分区,将所述主表分区中的数据转移至所述历史子表。
5.根据权利要求1所述的方法,其特征在于,所述对历史子表中的数据进行删除操作的方式为采用截短TRUNCATE语句或下降DROP语句对所述数据进行删除。
6.一种在线数据生命周期管理装置,其特征在于,所述装置包括分区模块,用于预先设置多个主表分区,并为每个主表分区分别设置一个对应的历史动态数据分区和一个对应的历史子表;划分模块,用于将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;静动态分离模块,用于当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区;转移模块,用于当对主表分区中的数据进行静动态分离之后,将所述主表分区中的数据转移至所述主表分区对应的历史子表中;删除模块,用于对所述历史子表中的数据进行删除操作。
7.根据权利要求6所述的装置,其特征在于,所述静动态分离模块将数据进行静动态数据分离的方式为将所述数据中的动态数据从所述数据中分离出来。
8.根据权利要求6所述的装置,其特征在于,所述静动态分离模块将分离出的动态数据保存入主表分区对应的历史动态数据分区的方式为采用插入INSERT语句进行保存。
9.根据权利要求6所述的装置,其特征在于,所述转移模块用于采用交换EXCHANGE语句,对所述主表分区和该主表分区对应的历史子表进行置换,将所述主表分区转换成空分区,将所述主表分区中的数据转移至所述历史子表。
10.根据权利要求6所述的装置,其特征在于,所述删除模块用于采用截短TRUNCATE语句或下降DROP语句对所述历史子表中的数据进行删除。
全文摘要
本发明提出一种在线数据生命周期管理方法和装置,其中方法包括预先设置多个主表分区,并为每个主表分区分别设置一个对应的历史动态数据分区和一个对应的历史子表;将数据按照时间维度进行划分,将划分后的数据分别保存在各个主表分区中;当一个主表分区中的数据到达生命周期末端时,将所述数据进行静动态数据分离,将分离出的动态数据复制并保存入所述主表分区对应的历史动态数据分区,并将所述主表分区中的数据转移至所述主表分区对应的历史子表中,对所述历史子表中的数据进行删除操作。本发明能够高效低耗地管理数据生命周期,从而保证数据库的资源高效性。
文档编号G06F17/30GK102567428SQ201010623629
公开日2012年7月11日 申请日期2010年12月30日 优先权日2010年12月30日
发明者李杰毅, 王晓征, 肖爱元 申请人:中国移动通信集团浙江有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1