著录项信息
专利名称 | 数据采集系统的存储管理方法 |
申请号 | CN200710000199.8 | 申请日期 | 2007-01-05 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2008-07-09 | 公开/公告号 | CN101216821 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0;;;H;0;4;M;3;/;3;6查看分类表>
|
申请人 | 中兴通讯股份有限公司 | 申请人地址 | 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中兴通讯股份有限公司 | 当前权利人 | 中兴通讯股份有限公司 |
发明人 | 文秀林;杜贤俊;唐文彬;田珂 |
代理机构 | 北京康信知识产权代理有限责任公司 | 代理人 | 李伟;吴孟秋 |
摘要
本发明公开了一种数据采集系统的存储管理方法。步骤S102,设置一个或多个数据库表,将数据库表按时间范围进行分区;步骤S104,设置数据库表的索引,索引按照与数据库表进行分区的规则一致的规则进行分区;步骤S106,在需要增加不包括在已有时间范围内的数据时,创建新的数据库表分区,加入数据库表,在需要增加包括在已有时间范围内的数据时,将新数据加入时间上对应的数据库表分区;步骤S108,当数据库表分区对应的数据采集完成之后,对数据库表分区建立索引。提高了系统的数据采集处理能力同时也能满足对数据的查询需求,解决了话单数据采集系统的入库速度和实时查询需求的矛盾问题,同时也增加了存储数据的可维护性。
1.一种数据采集系统的存储管理方法,其特征在于,包括以下步骤:
步骤S102,设置一个或多个数据库表,将所述数据库表按时间范围进行分区;
步骤S104,设置所述数据库表的索引,所述索引按照与所述数据库表进行分区的规则一致的规则进行分区;
步骤S106,在需要增加不包括在已有时间范围内的数据时,创建新的数据库表分区,并将所述新的数据库表分区加入所述数据库表,在需要增加包括在已有时间范围内的数据时,将需要增加的包括在已有时间范围内的数据加入时间上对应的数据库表分区;
步骤S108,当所述数据库表分区对应的数据采集完成之后,对所述数据库表分区建立索引。
2.根据权利要求1所述的存储管理方法,其特征在于,在步骤S102中,将不同的所述数据库表设置为存储不同类型的数据。
3.根据权利要求1或2所述的存储管理方法,其特征在于,在步骤S102中,同一数据库表的分区都存放在同一表空间上,不同数据库表使用不同表空间。
4.根据权利要求1所述的存储管理方法,其特征在于,步骤S106还包括:如果存在数据库表分区的时间超过在线保留时间,则删除所述数据库表分区,如果存储所述数据库表的存储空间的使用率超过使用率阈值,则删除最早时间的所述数据库表分区,直到所述使用率低于所述使用率阈值。
5.根据权利要求1所述的存储管理方法,其特征在于,在步骤S108中,当所述数据库表分区对应的数据采集完成之前,不对所述数据库表分区建立索引。
6.根据权利要求1所述的存储管理方法,其特征在于,在步骤S108中,采用索引信息表记录各个所述数据库表分区对应的索引,以进行索引的维护。
7.根据权利要求1或6所述的存储管理方法,其特征在于,在步骤S108中,通过索引空间维护定时任务来定时维护各个所述数据库表分区对应的索引。
8.根据权利要求6所述的存储管理方法,其特征在于,所述索引信息表包括:数据库表标识、所述数据库表分区的时间标识、以及所述数据库表分区对应的索引状态。
9.根据权利要求8所述的存储管理方法,其特征在于,所述索引状态包括:初始状态,表示尚未建立索引;未完成状态,表示执行过索引建立任务但未完成;完成状态,表示索引已成功建立。
10.根据权利要求9所述的存储管理方法,其特征在于,定时将当前时间的所述数据库表分区的索引加入所述索引信息表,查询所述索引信息表中时间小于当前时间并且索引状态为初始状态或未完成状态的所述数据库表分区,并在所述数据库表分区的数据采集完成的情况下为其建立对应的索引,并将其索引状态改为完成状态。
技术领域\n本发明涉及电信领域的数据采集系统,尤其涉及一种数据采集系统的存储管理方法。\n背景技术\n在电信领域很多的原始数据都是通过运行设备的原始话单提供的,这样的数据的处理有几个特点:数据量大,几个月的数据就可达T级;处理性能要求高,处理速度要求几千条记录/秒。\n这些数据需要进行实时查询、汇总计算和建立数据仓库,需要满足数据实时入库的同时,还要支持对入库数据的即时查询。为了满足较快的查询速度,就需要对查询的关键字上建立索引;但当数据表建立索引后,数据加载的速度将受影响,影响程度和索引的数据相关。测试数据显示,增加数个索引,入库速度将降低到几分之一,就可能导致处理速度跟不上数据的产生速度。所以存在一个入库速度和提高查询速度的矛盾。\n因此,需要一种海量数据采集系统的存储管理方案,用于解决话单数据采集系统的入库速度和实时查询需求的矛盾问题,同时增加存储数据的可维护性。\n发明内容\n本发明的主要目的在于提供一种数据采集系统的存储管理方法,用于解决海量数据采集系统的数据存储、维护存在的问题,以及数据入库速度和查询速度之间的矛盾问题。\n为了实现上述目的,本发明提供了一种数据采集系统的存储管理方法。该存储管理方法包括以下步骤:\n步骤S102,设置一个或多个数据库表,将数据库表按时间范围进行分区;\n步骤S104,设置数据库表的索引,索引按照与数据库表进行分区的规则一致的规则进行分区;\n步骤S106,在需要增加不包括在已有时间范围内的数据时,创建新的数据库表分区,并将新的数据库表分区加入数据库表,在需要增加包括在已有时间范围内的数据时,将需要增加的包括在已有时间范围内的数据加入时间上对应的数据库表分区;\n步骤S108,当数据库表分区对应的数据采集完成之后,对数据库表分区建立索引。\n优选地,在步骤S102中,将不同的数据库表设置为存储不同类型的数据。\n优选地,在步骤S102中,同一数据库表的分区都存放在同一表空间上,不同数据库表使用不同表空间。\n步骤S106还可以包括:如果存在数据库表分区的时间超过在线保留时间,则删除数据库表分区,如果存储数据库表的存储空间的使用率超过使用率阈值,则删除最早时间的数据库表分区,直到使用率低于使用率阈值。\n优选地,在步骤S108中,当数据库表分区对应的数据采集完成之前,不对数据库表分区建立索引。\n可选地,在步骤S108中,采用索引信息表记录各个数据库表分区对应的索引,以进行索引的维护。可选地,在步骤S108中,通过索引空间维护定时任务来定时维护各个数据库表分区对应的索引。索引信息表可以包括:数据库表标识、数据库表分区的时间标识、以及数据库表分区对应的索引状态。索引状态可以包括:初始状态,表示尚未建立索引;未完成状态,表示执行过索引建立任务但未完成;完成状态,表示索引已成功建立。\n可选地,定时将当前时间的数据库表分区的索引加入索引信息表,查询索引信息表中时间小于当前时间并且索引状态为初始状态或未完成状态的数据库表分区,并在数据库表分区的数据采集完成的情况下为其建立对应的索引,并将其索引状态改为完成状态。\n通过上述技术方案,本发明有效的提高了话单大数据存储的可行性、可维护性,最重要的是解决了数据入库和数据查询性能的矛盾问题,整个处理方法清晰,易于实现。\n附图说明\n此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:\n图1是根据本发明的数据采集系统的存储管理方法的流程图;\n图2是根据本发明实施例的话单数据的存储示意图;\n图3是根据本发明实施例的索引信息表;以及\n图4是根据本发明实施例的话单数据入库和索引维护示意图。\n具体实施方式\n下面将参考附图详细说明本发明。\n参照图1,根据本发明的数据采集系统的存储管理方法包括以下步骤:\n步骤S102,设置一个或多个数据库表,将数据库表按时间范围进行分区。\n优选地,将不同的数据库表设置为存储不同类型的数据。\n可选地,时间上相邻的两个数据库表之间的时间间隔为一天。\n优选地,同一数据库表的分区都存放在同一表空间上,不同数据库表使用不同表空间。\n步骤S104,设置数据库表的索引,索引按照与数据库表进行分区的规则一致的规则进行分区。\n步骤S106,在需要增加不包括在已有时间范围内的数据时,创建新的数据库表分区,加入数据库表,在需要增加包括在已有时间范围内的数据时,将新数据加入时间上对应的数据库表分区。\n可选地,如果存在数据库表分区的时间超过在线保留时间,则删除数据库表分区。\n可选地,如果存储数据库表的存储空间的使用率超过使用率阈值,则删除最早时间的数据库表分区,直到使用率低于使用率阈值。\n步骤S108,当数据库表分区对应的数据采集完成之后,对数据库表分区建立索引。\n优选地,当数据库表分区对应的数据采集完成之前,不对数据库表分区建立索引。\n可选地,采用索引信息表记录各个数据库表分区对应的索引,以进行索引的维护。可选地,通过索引空间维护定时任务来定时维护索引。\n索引信息表可以包括:数据库表标识、数据库表分区的时间标识、以及数据库表分区对应的索引状态。索引状态可以包括:初始状态,表示尚未建立索引;未完成状态,表示执行过索引建立任务但未完成;完成状态,表示索引已成功建立。\n可选地,定时将当前时间的数据库表分区的索引加入索引信息表,查询索引信息表中时间小于当前时间并且索引状态为初始状态或未完成状态的数据库表分区,并在数据库表分区的数据采集完成的情况下为其建立对应的索引,并将其索引状态改为完成状态。\n本发明涉及一种海量数据采集系统中的数据存储管理方法,尤其涉及电信领域的话单数据采集系统的数据的存储管理。本发明的基本设计思想是针对电信业务数据的数据量大、数据的时间关联性强等特点,存储数据的数据库表根据时间进行分区划分和管理,达到平衡数据库表索引对输入入库和数据查询的速度的影响,提供了一种数据的存储管理和索引管理的方法,本方案分几步进行:\n步骤一:话单数据存储的设计\n包括存储空间管理和数据库索引的管理,按照以下原则进行划分:\n不同类型的话单数据存放到不同的数据库表中,存储话单数据的数据库表按时间范围进行分区,相邻两个分区间的时间间隔为一个时间窗口,这个时间窗口需要根据话单数据的时间特点和即时查询的要求来定,通常时间窗口的单位为天。采用按时间范围进行数据的分区,既能减少了数据操纵时的影响范围从而提高效率,也增加了数据的可维护性;\n对这些话单数据的操作有个特点,对数据主要进行插入(采集数据时)和删除(数据过期时)操作,很少进行更新,对数据进行分区也便于进行并发访问。在需要删除过期数据时,可以通过将过期数据分区移除的方法,避免了从大数据表中删除部分过期数据的巨大开销。\n数据库表建立的索引也按时间进行分区,分区的规则与数据分区一致。\n同一个数据库表的分区都存放在同一个表空间上,不同的数据库表使用不同的表空间,这样可以有效的利用存储空间,又能方便的将不同数据库表的在物理存储上分开,达到均衡IO的目的。\n数据存储设计见图2。\n步骤二:数据库表分区的管理\n数据库表分区的管理包括两个方面:新分区的增加和过期分区的删除。\n由于每个分区都占有比较大的存储空间(通常为几G字节),这么大的数据库存储空间在分配时的初始化工作是比较费时的,如预先创建很多的分区也需要更大的存储空间,所以新分区在系统运行过程中逐步加入。\n由于一个数据库表对应的存储空间总大小很大,一次要将整个数据文件添加到数据库的表空间中是很费时,因此新的数据文件也是随系统的运行逐步加入。\n过期的分区的删除基于两个原则:数据的在线保留时间和存储空间的使用情况。超过在线保留时间的数据对应的分区需要删除;如果总的存储空间比较紧张,为了保证有足够的剩余空间存放即将入库的新分区,对每个存储空间设一个使用率的门限,当前使用率越过门限时,将最早时间的分区删除直到使用率低于门限值。\n步骤三:索引空间的管理\n话单表的索引是对话单数据入库性能影响很大的一个因素,为了避免索引建立对数据入库的影响。采取以下策略:当某分区对应的数据采集完之前,此分区不建立索引,此时数据入库时没有索引建立的开销;当数据都采集完毕后,索引空间维护的定时任务再自动建立此分区的索引。\n各个分区对应的索引采用一个索引信息表记录其索引的状态,索引空间维护定时任务根据索引信息表来进行索引的维护,见图3。\n下面以一个实际的电信业务分析系统中的话单采集为例,对本发明的技术方案的实施作进一步的详细描述:\n系统使用的数据库采用ORACLE(其它数据库也有类似的机制来支持)。我们以一个话单数据表为例说明整个过程,SMSCMOMT表用于存放某短消息中心的话单数据,我们按话单记录的时间字段进行范围分区,每个分区内存放一天的数据,数据库表建表脚本如:\nCREATE TABLE SMSCMOMT\n(\n SESSIONID VARCHAR2(10) NULL,\n CHARGEDUSERNUMBER VARCHAR2(16) NULL,\n BEGINTIME DATE NULL,\n)\nstorage(initial 10M next 50M MAXEXTENTS UNLIMITED)\npartition by range(BEGINTIME)\n(\npartition smscmomt_20031201 values less than(to_date(′2003-12-01′,′yyyy-mm-dd′))\n);\n对表SMSCMOMT建立索引,索引采用本地索引,它也按话单表一样进行分区:\nCREATE INDEX IDX_SMSCMOMT ON SMSCMOMT(\nBEGINTIME,CHARGEDUSERNUMBER\n)LOCAL;\nSMSCMOMT表存放在表空间TS_SMSCMOMT中,TS_SMSCMOMT表空间的数据文件有多个8192M字节大小的数据文件构成。\n表SMSCMOMT与其分区,索引分区以及表空间之间的关系见图2。\n分区的维护:\n分区维护定时任务周期运行,每天执行一次新分区和数据文件的添加,增加存放第二天数据的分区,如可用的数据文件都添加到表空间中了就只是增加分区而不添加数据文件。但此时需要修改对应的索引分区状态为不可用,这样当新采集数据入到此分区时入库速度不受索引的影响。\n表分区的命名按照表名叫分区名的原则进行命名,表SMSCMOMT的分区命名规则为:SMSCMOMT_YYYYMMDD(YYYY为年,MM为月,DD为日),表示此分区类存在的数据的范围分区字段的值为此天内的数据。\n分区清理任务也是周期运行,运行频率可以比新增分区的任务高,如一天两次,这样在存储空间比较满时也能保证新数据入库时有足够的空闲空间。分区清除任务根据两个参数来决定是否将旧分区移去,一个是数据保存的最长时间:n天,这个时间根据业务需要和总的存储空间大小而定;另外一个是表空间的最高使用率:m%,此门限的取值根据总的存储空间大小以及一个分区清除任务时间窗口内可能需要的最大存储空间与数据采集的速度而定,即保证剩余的存储空间在在下一次分区清除任务执行前存放此时间段采集的数据是足够的。\n当保存的最旧的数据的时间为n天前时,需要删除对应的分区;当表空间的当前使用率达到或超过m%时,依次删除存放最久数据的分区,直到使用率低于此门限。\n索引的维护:\n索引信息表中按话单数据表、分区划分的每个时间窗口和分区对应的索引状态来记录信息,索引状态有三个状态值:2,为初始状态,表示此分区索引未建立;1,为执行过此分区索引建立任务但未完成,原因可能是对应的分区时间窗口内的数据未采集完毕,也可能时执行任务时其它原因导致建立索引失败;0,索引已成功建立。见图3。\n索引维护定时任务执行频率与分区的时间窗口大小一致,这里为每天运行一次。任务触发时,首先前一个时间窗口的分区索引初始记录插入索引信息表中,其它索引状态值为2。然后查询索引信息表中时间小于当前分区时间窗口的所有状态为1或2的记录。根据查询结果对每一条记录进行处理,检查记录对应的时间窗口的数据是否采集完成,如采集完成则建立对应分区的索引。见图4中,数据采集的的当前时间窗口对应分区SMSCMOMT_20060503,话单采集系统还需要入到此分区;从索引信息表中查询到满足条件的记录对应的分区为SMSCMOMT_20060502,所以索引维护定时任务执行此分区的索引建立任务。\n进行数据查询时如查询数据为时间窗口(这里就是当天的数据)之前的数据,由于索引已经建立,所以速度很快。即使查询当前正在处理的数据,由于数据量相对小些,有限时间中也能查询出结果。由于分区索引都是在数据入库后一次性建立,所以索引结构比较好,索引的查询速度更快,并且索引占用的存储空间相对小些。\n本发明描述的话单数据采集系统的存储管理方法,针对了电信业务数据的特点:数据量巨大,业务系统处理速度要求高,数据的采集既要满足实时性又要满足业务查询的需求,它常常用于混合性需求的系统(OLAP和OLTP系统需求同时存在)中。本方法提高了系统的数据采集处理能力同时也能满足对数据的查询需求,解决了话单数据采集系统的入库速度和实时查询需求的矛盾问题,同时也增加了存储数据的可维护性。\n以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2018-12-25
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200710000199.8
申请日: 2007.01.05
授权公告日: 2010.06.16
- 2010-06-16
- 2008-09-03
- 2008-07-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-06-07
|
2005-09-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |