本发明专利技术涉及网管管理系统中历史数据的管理,具体说是一种网管海量历史数据管理方法,通过二级分表规则实现数据库分表,把保存有网管海量历史数据的单个表保存的数据,切分后保存到多个结构相同的分表中,减少单表的容量,从而提高单表的处理效率,并对各个分表进行以下管理:A历史数据分表管理,B历史数据插入管理,C历史数据查询管理,D历史数据转移管理。本发明专利技术所述的网管海量历史数据管理方法,能保存海量历史数据,并能高效的进行数据的插入、查询、转移而不影响网管软件的正常使用,提高了网管管理系统的工作效率。
【技术实现步骤摘要】
本专利技术涉及网管管理系统中历史数据的管理,具体说是。
技术介绍
目前网络技术日新月异,宽带用户规模不断扩大,电信网管系统管理的设备数量也在不断增长,电信网管系统日常管理的日志、设备的告警数据等数据都需要保存在数据库中,电信网管系统对这些数据的使用方式为记录数据、查询分析数据。经过日积月累,这些数据越来越庞大,如果不对这些数据进行有效的管理,无论是数据的插入或者是数据的查询,性能都会急剧下降,从而影响网管软件的正常使用。数据库使用硬盘空间来保存其中的数据,如果历史数据无限增长,最终将耗尽所有磁盘空间,所以需要定期对历史数据进行清理,将数据库中的一部分不常使用的数据转储到其它位置进行保存、归档。而在数据转移的过程中,网管则无法使用这些数据,如果转储的效率低下则影响网管系统的可用性,必须提供一种高效的数据转移方案。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供,能保存海量历史数据,并能高效的进行数据的插入、查询、转移而不影响网管软件的正常使用。为达到以上目的,本专利技术采取的技术方案是,其特征在于通过二级分表规则实现数据库分表,把保存有网管海量历史数据的单个表保存的数据,切分后保存到多个结构相同的分表中,减少单表的容量,从而提高单表的处理效率,并对各个分表进行以下管理A历史数据分表管理,B历史数据插入管理,C历史数据查询管理,D历史数据转移管理。在上述技术方案的基础上,二级分表规则用xml格式的文件纪录,其中历史数据类型data_type,表示数据表保存数据的类型,分组总数group_count,表示对这种数据表分组的总数,分组内分表总数split_count,表示每个分组内分表数最大值,分表内行总数row_count,表示分表内行总数,当一个分表的数据量超过这个值的时候,就需要创建一个新的分表。在上述技术方案的基础上,所述历史数据分表管理的处理流程包括以下步骤Al、读取记载有数据表的二级分表规则的文件,获取历史数据类型data_type、分组总数group_count、分组内分表总数split_count和分表内行总数row_count ;读取数据库分表信息表,获取所有分表的分组号group_no、分表序号table_no、当前正在使用标记current_flag和已使用标记in_use_f lag,将这些信息保存到一个分组号为键,分表信息列表为值的map对象中,所述分表信息列表包括分表序号table_no、当前正在使用标记current_flag和已使用标记in_use_f lag,其中map的键的取值范围从I到分组总数group_Count,如果在数据库分表信息表中没有某个键对应的分表信息,那么在map中该键对应的分表信息列表就为空;A2、遍历Al得到的map对象;A3、根据遍历的结果,如果map对象中当前分组号对应的分表信息列表为空,则转至步骤A4,否则,转至步骤A5 ;A4、在当前分组号的分组中创建一个可用的分表,分配分表序号为1,设置分表当前正在使用标记为1,已使用标记为1,将该分表的信息插入数据库分表信息表后转至步骤A5 ; A5、将数据库分表信息表中记载的分表信息,按分组号为键,逐条插入到分组分表信息缓存中,该缓存用于记录所有分组中已创建的分表的信息,将当前正在使用标记为I的分表信息,按分组号为键,将分表序号插入分组当前分表序号缓存,该缓存记录每个分组中current_flag为I的分表的分表序号,转步骤A6 ;分组当前分表序号缓存内的分表,需要检查其是否超过分表内行总数;A6、使用定时器并等待,如果定时器未超时则一直等待,当定时器超时后,如果接收到应用程序退出的信号,则退出历史数据分表管理的处理流程;否则,转入步骤A7 ;A7、遍历分组当前分表序号缓存,如果未遍历完则转步骤AS,若遍历完则转步骤A6 ;AS、读取当前分组中分表序号,根据当前分组的组号和分表序号构造分表的名称,获取分表数据行数;A9、如果分表数据行数大于分表规则中分表内行总数lO^count,则转步骤A10、否则转步骤A7 ;A10、创建新分表,新分表的分表序号为分表所在分组中原来current_flag为I的分表的分表序号值加上I,然后在数据库分表信息表中插入该新分表的信息,并将该新分表的信息插入到分组分表信息缓存中,然后将分组当前分表序号缓存中的当前分组对应的分表序号改为新分表的分表序号;All、判断当前分组中分表总个数是否大于分组内分表总数split_count,如果大于则转步骤A12,如果小于则转步骤A7 ;A12、更新数据库分表信息表中该分组内分表序号最小分表的已使用标记in_use_flag为0,标识该分表不会在数据插入和查询中使用,并将被历史数据转移管理流程处理,并从分组分表信息缓存中删除该分表的记录,转步骤AU。在上述技术方案的基础上,所述历史数据插入管理的处理流程包括以下步骤BI、根据插入数据的内容确定数据业务分组的组号,根据分组当前分表序号缓存获取分表序号,根据分表和数据逻辑对应关系,重新排列插入数据内容,存入以分组号和分表序号为键,插入数据内存为值的map中;B2、遍历BI中的map,遍历完成则退出,否则转步骤B3 ;B3、根据当前分组号和分表序号,构造分表名称,插入数据到当前分表中,转步骤B2。在上述技术方案的基础上,所述历史数据查询管理的处理流程包括以下步骤Cl、读取数据库分表信息表 内已使用标记为I的分表信息;C2、分析查询条件、获取所有相关分组分表的表名列表;C3、根据查询条件查询所有C2中的分表。在上述技术方案的基础上,所述历史数据转移管理的处理流程包括以下步骤D1、按分组号读取数据库分表信息表中所有已使用标记为O的分表信息记录,保存到以分组号为键,分表序号列表为值的map中;D2、遍历Dl中获取的map,遍历完成后退出;D3、根据当前分组号和分表序号,构造分表名称,使用批处理工具直接导出指定分表名称的分表中所有行记录;D4、根据分组号和分表序号从数据库分表信息表中删除分表信息;D5、根据分表名称从数据库中删除分表,转步骤D2。本专利技术所述的网管海量历史数据管理方法,通过二级分表规则实现数据库分表(数据库分表即把单个表保存的数据,按照一定规则切分后保存到多个结构相同的表(称为分表)中,减少单表的容量,从而提高单表的处理效率,在不同业务需求下可以访问不同的分表,减少锁竞争,提高运行效率),将历史数据分散到多个分表中,且保证每个分表中记录数大致与限定的分表容量相差不大,不仅保证了历史数据查询的响应效率,还保证了数据的插入效率,提升了客户体验感受,提高了网管管理系统的工作效率。本专利技术所述的网管海量历史数据管理方法,通过已使用标记将正在使用的和需要转移的数据表进行分离,网管系统和数据转移功能就不会相互影响,而且数据表整表处理的效率远远高于按行记录进行处理的效率,减少了对数据库系统的影响,提高了网管系统整体的效率。附图说明本专利技术有如下附图图I是根据分表规则划分后,分表展示;图2是数据表分表规则文件的内容;图3是数据库分表信息表包含的数据内容;图4是分表管理处理流程图;图5是数据插入处理流程图;图6是数据查询处理流程图;图7是数据转移处理流程图。具体实施例方式以下结合附图对本专利技术作进本文档来自技高网...
【技术保护点】
一种网管海量历史数据管理方法,其特征在于:通过二级分表规则实现数据库分表,把保存有网管海量历史数据的单个表保存的数据,切分后保存到多个结构相同的分表中,减少单表的容量,从而提高单表的处理效率,并对各个分表进行以下管理:A历史数据分表管理,B历史数据插入管理,C历史数据查询管理,D历史数据转移管理。
【技术特征摘要】
【专利技术属性】
技术研发人员:邹昊,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。