保存历史数据的方法及装置的制作方法

文档序号:7975406阅读:130来源:国知局
专利名称:保存历史数据的方法及装置的制作方法
技术领域
本发明涉及数据保存的方法和装置,特别涉及网管历史数据保存的方法和装置。
背景技术
在现有的很多管理系统中,需要实时地对系统数据进行备份,经常出现因为备份产生的 历史数据占用空间过大的情况。例如对于一个DWDM(密集波分复用)系统,网元的每块单板每 隔15分钟就将一次15分钟的历史性能的数据上报到网管,即使按照工程最低要求,数据库 中保留3个月的历史性能数据,在将32波全都配置和100个网元的情况下,历史性能的数据 所占的空间也有8G左右。以传输网管的15分钟历史性能的数据为例,网元每隔15分钟就定 时上报一次历史性能,当15分钟历史性能的数据达到8G并且具有索引时,-一次插入1万条 数据大概需要1分钟左右。如果在这i分钟内用户还同时进行历史数据査询,而此时历史性 能的数据表因为正处于数据插入的过程而被锁定,所以用户査询历史数据将失败。
这样由于数据库表为了査询效率而添加了索引,所以数据库表过大后的数据插入操作需 要在索引中寻址,这将耗费更多的时间,在历史数据入库时可能因为表被锁定的时间过长而 引起用户在网管界面上的査询历史数据的失败,降低了管理系统的可用性,而这种情况在现 在的网管系统中非常常见。造成这些缺陷的根本原因是现有的历史数据都只保存在-一个数据 表中,且对这仅有的数据表没有较好的进行数据管理。

发明内容
为克服上述缺陷,本发明的目的在于提供一种减少在索引中寻址所耗费的时间,以及减 少数据锁定时间的保存历史数据的方法及装置。
为达到上述发明目的,本发明采用如下技术方案该保存历史数据的方法包括:
(1) 设置本表的数据量上限;
(2) 利用本表的数据量上限管理本表和转储表中的数据。
其中,所述的本表为原有保存历史数据的表;所述的转储表为新增的保存历史数据的表。
其中,所述的步骤(2)具体为判断本表中的历史数据是否超出数据量上限,若本表中 的历史数据超出数据量上限,则将本表中超出数据量上限部分的历史数据插入到转储表,并 从本表中删除。
其中步骤(2)在系统中的实现方式是将所述步骤(2)的操作加入到数据库的定期任 务列表中,并由定期任务列表在系统空闲时定时执行。
应用该方法保存历史数据后,用户通过本表的数据査询接口和转储表的数据查询接口分 别在本表和转储表中査询历史数据;将本表中和转储表中符合査询结果的历史数据合并上报 给用户。
该方法所应用的硬件需要在原有的基础上进行改进,改进后的保存历史数据的装置,包 括设有新增数据接口和数据査询接口的本表,还包括一转储表,该转储表上设有数据査询接 口,用于在转储表中査询历史数据;该转储表和本表之间设有数据转移接口,用于将本表中 的历史数据转移到转储表。
由上述技术方案所描述的方法,由于给历史数据的日常插入数据的本表的数据量设定了 数据量上限,使得本表中的数据量维持在一个较低的水平,可以有效的解决往本表中插入数 据造成的表锁定时间过长的问题,而耗时的大数据量表的插入操作,也就是历史数据由本表 转移到转储表的操作,都是定时进行的,可以集中移到网管空闲的时刻,所以用户在网管系 统上査询历史数据就不会因为数据表被锁定过长时间而无法査询,大大的降低了失败的概率, 增加了网管系统的可用性,并且该网管系统所用的硬件中设有2个数据表,且两个数据表都 有査询接口,保证了2个数据表能够同时进行数据査询,保证了数据查询的速度。


图1为本发明保存历史数据的方法的流程图2为本发明保存历史数据的装置中本表和转储表的示意图。
具体实施例方式
下面结合附图对本发明保存历史数据的方法及装置进行详细描述。
为了解决现有技术中网管历史数据表过大,引起表插入数据锁定时间过长,并影响用户 正常査询历史数据的问题。本发明保存历史数据的方法及装置提出了一种使用两个数据表保 存历史数据的方法及装置。
本发明保存历史数据的方法的原理是当本表中的历史数据超过一定数据量时,就将本表 中的历史数据转移到转储表中,其方法流程叙述如下
歩骤一、为原有保存历史数据的本表设置一个数据量上限,以控制本表中的数据量大小,该数据量上限的值可以通过系统指定;
歩骤二、将新增的历史数据全部插入到本表;
步骤三、判断本表中的历史数据的数据量是否超过数据量上限,如果超过数据量上限, 则把超出的部分的历史数据插入到转储表中,并从本表中删除。
为了将上述的方法流程应用到实践中,我们以网管系统的历史数据的保存为具体实施例, 应用上述的方法保存历史数据。
首先需要为网管系统中现有保存历史数据的本表新增一个转储表,用来共同保存历史数 据。在该网管系统中,原来15分钟的历史性能数据使用名称为"pm—curl5p"的一个表来保 存,改进后需要增加额外的一个转储表"pm—curl5p—store",即使用两个表来共同保存。增 加的转储表是使用SQL (Structured Query Language,结构化査询语言)语句"CREATE TABLE" 创建的,新加的转储表除表名称与本表不一样外,其他如表字段,表索引都与本表相同。
如图1所示,在增加转储表之后还需要如下歩骤
101、 为原有保存历史数据的本表设置一个数据量上限,以控制本表中的数据量大小,在 该网管系统中,就需要给本表中的数据量设定一个上限,我们将本表"pm一curl5p"的数据量 上限设为100万条。
102、 使用本表保存新增的历史数据。由于只有本表有新增历史数据的Q接口,即不能把 新增的历史数据插入到转储表中。所以当使用本表"pm—cnrl5p"和转储表"pm—CUri.5p_store" 共同保留历史15分钟性能数据时,每次网元的定时上报的历史性能数据都只插入到本表
"pra一curl5p"中。新增的历史数据一般是使用SQL语句"INSERT"来逐条插入到本表中。
103、 在网管空闲的时候,比如深夜1点,定期检查一次本表中的数据是否超过了数据量 上限,如果超过了数据量上限,执行步骤104;如果没有超过数据量上限,流程结束。在该 网管系统中,每到深夜1点则需要检査一次本表的历史数据的数据量,判断该数据量是否超 过数据量上限。其中,可以通过SQL语句"SELECT C0UNT(*)"来获得本表中的记录数目,然 后将记录数目和每条记录的平均字节数相乘来估计数据量;定期操作的方法可以通过把操作 相关的SQL语句加入到数据库的定期任务列表中来实现,这样可省去定时器,节约系统资源。
104、 将本表中超出的部分插入到转储表,并从本表中删除。本表中的历史数据可以通过 与转储表间的数据转移接口 X来实现数据的转储。如果超过了 IOO万条则需要把最旧的一部 分历史数据插入到转储表"pm—curl5p—store"中并从本表"pm—curl5p"中删除,以保证本 表"pm—curl5p"的数据小于100万条,把数据从本表中删除一般通过SQL语句"DELETE"来
实现。如果制定上限是0条,则每次都把本表"pm—curl5p"的全部数据插入到转储表 "pm—curl5p—store"中后再清空本表"pm一curl5p",但是不建议使用0条的上限,因为如果在转储过程中网元有新的历史性能的数据上报,这时新增的历史性能的数据可能没有被转储就直接被删除了,造成数据的丢失。
由于现有保存历史数据的装置没有转储表,所以就无法利用上述方法来保存历史数据, 故本发明还配合上述方法设计了一个保存历史数据的装置。
如图2所示,该保存历史数据的装置包括设有新增数据接口 Q (该接口是将新增历史数 据写入本表的接口)和数据査询接口 Fl的本表11,该本表11就是现有技术中所使用的数据库表,还包括一转储表22,该转储表22新增的数据库表,并且具有与本表ll一样的保存数 据的数据结构。该转储表22上设有数据査询接口F2,用于在转储表22中査询历史数据;该 转储表22和本表11之间设有数据转移接口 X,用于将本表11中的历史数据转移到转储表22。
图2表示了共同使用本表11和转储表22来保存历史数据的示例图。转储表22—般是使 用SQL (Structured Query Language,结构化査询语言)语句"CREATE TABLE"创建的,该转储表22除了表名称与本表11不一样外,其他字段,如索引,约束等都与本表11完全一致。
由于上述步骤中所使用的方法以及该方法所应用的装置,使得网管历史数据被保存在两 给数据库表中,当用户需要查询历史数据时,就需要同时査询本表和转储表中的内容并上报给用户。而在图2中所示,本表和转储表都具有供用户査询用的査询接口 (F1和F2),即网管可以同时从本表和转储表査询数据。该网管系统中,因为同时使用本表"pm—curl5p"和转 储表"pm—curl5p—store"共同保留15分钟的历史性能数据,所以用户需要査询的15分钟的历史性能的数据在两个表中都存在,需要分别査询两个表中符合用户要求的15分钟历史性能 的数据后,然后将结果合并上报给用户。同时査询本表和转储表中的内容的方法可以通过SQL 中的关键字"UNION"来合并从本表的査询结果和从转储表的查询结果。
由于上述方法给历史数据的日常插入数据的本表"pm—curl5p"的数据量设定了上限,可以有效的解决往本表"pm一curl5p"中数据量过大,造成插入数据时表锁定时间过长的问题, 当数据量上限是100万条时,本表"pm_CUrl5p"中的数据量大概是50M,每次往本表 "pm—curl5p"插入1万条数据只要不到1秒钟的时间,同时把耗时较多的大量数据表的插 入操作,即本表"pm—curl5p"的数据转储到转储表"pm_curl5p—store"的操作集中移到深 夜1点网管系统空闲的时刻,所以用户平时在网管上查询历史15分钟性能数据失败的概率大大的降低,增加了网管界面的可用性。
权利要求
1. 一种保存历史数据的方法,其特征在于包括以下步骤(1)设置本表的数据量上限;(2)利用本表的数据量上限管理本表和转储表中的数据。
2、 按照权利要求1所述的保存历史数据的方法,其特征在于所述的本表为原有保存历 史数据的表;所述的转储表为新增的保存历史数据的表。
3、 按照权利要求2所述的保存历史数据的方法,其特征在于所述的歩骤(2)具体为 判断本表中的历史数据是否超出数据量上限,若本表中的历史数据超出数据量上限,则将本表中超出数据量上限部分的历史数据插入到转储表,并从本表中删除。
4、 按照权利要求3所述的保存历史数据的方法,其特征在于将所述步骤(2)的操作 加入到数据库的定期任务列表中,并由定期任务列表在系统空闲时定时执行。
5、 按照权利要求3所述的保存历史数据的方法,其特征在于用户通过本表的数据査询 接口和转储表的数据査询接口分别在本表和转储表中査询历史数据;将本表中和转储表中符 合査询结果的历史数据合并上报给用户。
6、 一种保存历史数据的装置,包括设有新增数据接口和数据査询接口的本表,其特征在 于还包括一转储表,该转储表上设有数据查询接口,用于在转储表中查询历史数据;该转 储表和本表之间设有数据转移接口,用于将本表中的历史数据转移到转储表。
全文摘要
本发明公开了一种保存历史数据的方法及装置,涉及网管历史数据的保存,为解决现有技术中历史数据表过大,引起表插入数据锁定时间过长,并影响用户正常查询历史数据的问题而发明。该保存历史数据的方法包括(1)设置本表的数据量上限;(2)判断本表中的历史数据是否超出数据量上限,若本表中的历史数据超出数据量上限,则将本表中超出数据量上限部分的历史数据插入到转储表,并从本表中删除。本发明对应的装置包括设有新增数据接口和数据查询接口的本表,还包括一转储表,该转储表上设有数据查询接口,该转储表和本表之间设有数据转移接口。本发明主要应用于网管系统中保存历史数据。
文档编号H04L12/24GK101207513SQ20061017070
公开日2008年6月25日 申请日期2006年12月22日 优先权日2006年12月22日
发明者虎 袁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1