专利名称:一种处理信息数据的方法与系统的制作方法
技术领域:
本发明涉及电信领域,更具体的说是涉及一种处理电信用户号码信息数据的方法
与系统。
背景技术:
在电信领域,需要对用户的号码进行统计。在统计的过程中以每个号码作为统计
的单位,并且在保存每个用户号码的时候,对于每个存储的号码中的相关信息也进行相应
的存储。在对用户号码进行实际处理的过程中,对包含在用户号码中的相关信息的数据需
要不断更新的。为了提高对这些数据的处理效率,即号码信息的更新效率。 在现有技术中,在处理的过程中主要利用内存作为缓存,来进行高效的存取,但是
由于内存非常有限,在利用内存作为缓存的过程中,是不能将全部的数据都置于内存中的。
例如每个号码的信息长度为1K,那么1000万个号码就会占用10G内存空间。同时,由于
每个号码的相关信息可能会根据需求的不同,每个号码的信息长度也可能有所不同,导致
每个号码的信息长度也存在大于1K的情况。但是,在现有服务器上分配超过10G的空间是
不可能实现的。 因此,在对于处理大量数据量的时候,不能够利用内存缓存全部的数据。如果将全 部数据都放置于内存中,由于大量的数据中的号码定位,增加对内存的管理难度,最重要的 是对信息数据进行更新的效率产生了不利的影响。
发明内容
有鉴于此,本发明提供了一种处理信息数据的方法与系统,解决了现有技术中将 全部数据都放置于内存中,但由于内存空间有限,在进行信息数据更新时,对更新效率产生 不利影响的问题。 为实现上述目的,本发明提供如下技术方案
—种处理信息数据的方法,包括 按照用户号码段将相应的PSDR数据保存在PSDR文件中; 接收用户UDR数据,并将所述UDR数据按照用户号码段划分,保存在UDR文件中;
在内存中加载需要更新的PSDR文件,确定该PSDR文件中的所述PSDR数据,并读 取与所述PSDR数据对应的同一用户号码段的UDR数据,对所述PSDR文件进行更新。
优选的,采用串行处理方式或多线程并行处理方式进行所述加载。
优选的,所述加载的方式为内存映射,或者整块读取的方式。 优选的,在所述PSDR文件中将PSDR数据分为头信息、常规信息和扩展信息三类 进行保存。 优选的,所述扩展信息保存在所述常规信息之后。
优选的,所述PSDR和UDR文件是硬盘上的文件。
—种处理信息数据的系统,包括
存储模块、依据用户号码段将相应的PSDR数据存储在PSDR文件中; 接收模块、用于接收UDR数据,并将其按照用户号码段划分,保存在UDR文件中; 更新模块、根据加载到内存中需要更新的PSDR文件,确定该PSDR文件中的所述
PSDR数据,并读取与所述PSDR数据对应的同一用户号码段的UDR数据,对所述PSDR文件进
行更新。 优选的,在存储模块中,将PSDR数据在PSDR文件内部分为头信息、常规信息和扩
展信息三类进行保存。 优选的,采用串行处理方式或多线程并行处理方式进行所述加载。
优选的,所述PSDR和UDR文件是硬盘上的文件。 经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种处理信息数 据的方法与系统。首先,通过将全部用户号码的PSDR数据,按用户号码段保存在硬盘上的 PSDR文件中;然后,在接收到用户UDR数据之后,将UDR数据按照用户号码段划分,并保存 在硬盘上的UDR文件中;最后,在内存中加载需要更新的PSDR文件,确定该PSDR文件中的 PSDR数据,并读取与该PSDR数据对应的同一用户号码段的UDR数据,对该PSDR文件进行更 新。通过本发明的方法与系统,将用户号码的PSDR数据保存在硬盘上的PSDR文件中,在需 要更新的时候将PSDR文件映射到内存中,然后再进行信息数据的更新,不仅减少了对内存 空间的使用,而且还提高了对信息数据进行更新的效率。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
图1为本发明一种处理信息数据的方法的流程图;
图2为在文件内部号码信息的分类示意图;
图3为本发明一种处理信息数据的系统框图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。 关于本发明中出现的英文解释 UDR:User Data Record,用户数据记录。 PSDR:Perma體t statistics data record,永久统计数据记录。 本发明实施例公开了一种处理信息数据的方法和系统。在用户号码数据中包括
UDR数据和PSDR数据。其中,UDR数据表示用户通信的数据,即表示该用户的号码正在使用;
PSDR数据则表示每个用户号码的历史信息数据,此部分可以保存在内存中,也可以保存在
硬盘文件中。本发明的方法是将用户号码数据存储在硬盘文件中。
4
在本发明中,为解决现有技术中内存空间使用有限的问题,用户号码中的PSDR数 据作为永久数据的保存媒介,将以二进制的形式保存在硬盘文件中。所以,在进行用户号码 数据更新的时候,当接收到用户UDR数据时,首先,将用户UDR数据按号段保存在文件中;然 后,将需要更新的PSDR数据通过映射的方式加载到内存,或是通过整块读取的方式将整个 文件的数据加载到内存中,同时读取与该PSDR数据相对应同一用户号段的UDR数据,对该 PSDR数据进行更新。在针对更新不同的PSDR数据时,只加载与需要更新的PSDR相对应的 UDR数据,在内存进行加载时,减少了对内存的占用,提高了对信息数据进行处理的效率。
请参阅附图1,为本发明一种处理信息数据的方法的流程图。具体步骤包括
步骤Sll、按照用户号码段将相应的PSDR数据保存在PSDR文件中,且文件名就是 号段名。 步骤S12、接收用户UDR数据,并将该用户UDR数据按照用户号码段划分,保存在 UDR文件中。 步骤S13、在内存中加载需要更新的PSDR文件,确定该PSDR文件中的PSDR数据, 同时读取与该PSDR数据对应的同一用户号码段的UDR数据,对该PSDR文件进行更新。
在步骤Sll中,按照用户号码段将相应的PSDR数据保存在硬盘上的PSDR文件中, 文件名即为用户号段的名称。针对电信系统中用户号码的特性,把用户号码按照百万号段 分文件。例如,13811******-13814******的号码,可以划分为4个文件,分别为13811. psdr、 13812. psdr、 13813. psdr和13814. psdr。在这里只是举例说明,对于PSDR数据是按 照用户号码段分PSDR文件的,但是本发明的划分方式并不仅限于此。 对于在PSDR文件内部,将PSDR数据分为3部分头信息21、常规信息22和扩展 信息23。请参阅附图2,为PSDR数据的信息在文件中的分布示意图。 头信息21,在文件的内部,以1000个号码为一组,并将文件按号码顺序分成1000 份。那么每份包含的号码就是1000个。由于在这1000个号码中存在一些相同的信息。例 如城市信息、运营商信息等。为了减少文件的存储空间,将每1000个号码的公共信息保存 在文件头部。 常规信息22,即为用户号码的固定信息,每个用户号码都要保存一份,并且按照数 据定长、顺序放置在文件中。 扩展信息23,为了增加PSDR文件的扩展性,每个号码的信息通过配置文件扩展,
并且,每个号码的扩展信息保存在每个号码的常规信息之后。需要注意的是,在对PSDR文
件中的PSDR数据进行扩展的时候,采用定长扩展,以便于数据的定位计算。 此外,在对PSDR文件进行划分的过程中,需要注意的是,不能将PSDR文件划分的
太多,要保证在内存可以容纳的范围内。 在步骤S12中,在接收到用户UDR数据之后,由于UDR中也包含有号码,所以对于 UDR数据,也按照用户号码段进行分段保存在硬盘上的UDR文件中。 在这里需要注意的是,由于UDR数据量非常大,所以,在进行PSDR数据更新的时 候,如果按照一天累计的UDR数据对PSDR数据进行更新,会累积大量的UDR文件,占用大量 的磁盘空间。并且如果一次性处理一天的UDR数据,会处理较长的时间,推迟统计数据输出 时间,从而影响对整个信息数据进行处理的效率。 所以,为了避免在处理信息数据的过程中出现以上问题,以小时划分更新单位,即
5每小时处理一次UDR数据,用于完成一次对PSDR数据的更新。因此,在对UDR文件进行命 名的时候,除了要有号段的标示之外,还需要有"时间"的标示。例如,对某个UDR文件进行 命名时为USR_BDR_6140-09110522-l-6065-l. dat。其中6140表示号段,09110522表示数 据的时间。 在步骤S13中,内存在加载需要更新的PSDR文件时,采用内存映射10或是整块连 续数据的读/写的方式。 其中,内存映射IO,是指使一个磁盘文件与存储空间中的一个缓存相映射,于是在 从缓存中读取数据时,就相当于读文件中的相应字节。 整块连接数据的读/写,是需要将全部的文件都加载到内存中。根据不同的情况, 可以采用不同的加载方式,将要更新的PSDR数据的PSDR文件加载到内存中。
需要注意的是,由于PSDR数据是分PSDR文件保存的,所以在进行加载的过程中, 采用串行处理的方式打开标示PSDR文件的文件句柄。由于是串行的打开文件,所以每一次 只能打开一个文件。为了提高更新的速率也可以采用可控并行,即采用多线程的并行打开 文件,同样的每个线程只打开一个文件,而且在指定某进程处理某些号段的PSDR文件时, 多线程之间互不干扰,同样可以实现并行的打开PSDR文件的操作,还进一步提高了对信息 数据进行更新的速率。 同样的,在读取与需要更新的PSDR数据对应的同一用户号码段的UDR数据时,可 以采用同样的方式进行。 此外,在上述本发明描述的实施例中,在更新某用户号段的PSDR数据时,只读取 与该PSDR数据相对应的同一用户号段的UDR数据。在进行更新的时候,由于UDR数据的文 件命名上,同时存在号段和时间的标识,并且UDR文件中的时间标示是以小时为单位划分 的。所以,在进行更新信息数据处理的时候采用一个小时进行一次更新。即每一个小时处 理一次UDR,完成一次PSDR的更新。 另外,在这里需要注意的是,并不是所有需要更新的PSDR数据的PSDR文件都会被 加载到内存当中。如果需要频繁的对PSDR文件进行更新,同时文件不加载到内存中,那么 在文件更新的时候,就会在磁盘上频繁寻址;如果不需要频繁的更新PSDR文件,如果此时 将文件加载到内存中则是不必要的,所以不需要将PSDR文件都加载到内存中。通过本发明 利用将PSDR数据保存在文件中,使得在对信息数据进行处理的过程中,将部分数据映射到 内存中,不需要采用内存缓存全部的数据,减少了对内存使用空间的占用,提高了对信息数 据更新的速率。 本发明还公开了一种处理信息数据的系统,请参阅附图3为本发明的系统框图。 具体包括存储模块31、接收模块32和更新模块33。 存储模块31,依据用户号码段将相应的PSDR数据存储在PSDR文件中。 接收模块32,用于接收用户UDR数据,并将其按照用户号码段划分,保存在UDR文件中。 更新模块33,根据加载到内存中需要更新的PSDR文件,确定该PSDR文件中的所 述PSDR数据,并读取与所述PSDR数据对应的同一用户号码段的UDR数据,对所述PSDR文 件进行更新。 在存储模块31中,将PSDR数据按照用户号码段存储到相应的硬件上的PSDR文件
6中。并在PSDR文件内部将PSDR数据分为三类进行保存,保存的方式与本发明公开的方法 中的方式相同,这里不再赘述。 在接收模块32中,由于接收到的用户UDR数据中也包含有号码,所以对于UDR数 据,也按照用户号码段进行分段保存在硬盘上的UDR文件中。 在这里需要注意的是,由于UDR数据量非常大,所以,在进行PSDR数据更新的时 候,如果按照一天累计的UDR数据对PSDR数据进行更新,会累积大量的UDR文件,占用大量 的磁盘空间。并且如果一次性处理一天的UDR数据,会处理较长的时间,推迟统计数据输出 时间,从而影响对整个信息数据进行处理的效率。所以,在接收模块32中,对接收到的UDR 数据进行分文件保存时,在对UDR文件进行命名的时候,除了要有号段的标示之外,还需要 有"时间"的标示。为了避免在处理信息数据的过程中出现上述问题,这里对UDR数据的"时 间"标示,以小时划分更新单位,即每小时处理一次UDR数据,用于完成一次对PSDR数据的 更新。 在更新模块33中,加载需要更新的PSDR文件时,采用内存映射IO或是整块连续 数据的读/写的方式。这两种加载PSDR文件的方式与本发明公开的方法中的方式相同,这 里不再赘述。 需要说明的是,在更新模块33进行加载的过程中,采用串行处理方式或多线程并 行处理方式进行加载。采用串行处理方式时,每一次打开一个文件进行加载;采用多线程并 行处理方式进行加载,每一个线程也只打开一个文件,而且在指定某进程处理某些号段的 PSDR文件时,多线程之间互不干扰,同样可以实现并行的打开PSDR文件的操作,还进一步 提高了对信息数据进行更新的速率。 同样的,在读取与需要更新的PSDR数据对应的同一用户号码段的UDR数据时,可 以采用同样的方式进行。 另外,在上述本发明提供的实施例中,PSDR文件和UDR文件是指在硬盘上用于保 存PSDR和UDR数据的文件。 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执 行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存 储器(ROM)、电可编程R0M、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术 领域内所公知的任意其它形式的存储介质中。 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
一种处理信息数据的方法,其特征在于,包括按照用户号码段将相应的PSDR数据保存在PSDR文件中;接收用户UDR数据,并将所述UDR数据按照用户号码段划分,保存在UDR文件中;在内存中加载需要更新的PSDR文件,确定该PSDR文件中的所述PSDR数据,并读取与所述PSDR数据对应的同一用户号码段的UDR数据,对所述PSDR文件进行更新。
2. 根据权利要求1所述的方法,其特征在于,采用串行处理方式或多线程并行处理方式进行所述加载。
3. 根据权利要求1所述的方法,其特征在于,所述加载的方式为内存映射,或者整块读取的方式。
4. 根据权利要求l所述的方法,其特征在于,在所述PSDR文件中将PSDR数据分为头信息、常规信息和扩展信息三类进行保存。
5. 根据权利要求4所述的方法,其特征在于,所述扩展信息保存在所述常规信息之后。
6. 根据权利要求1所述的系统,其特征在于,所述PSDR和UDR文件是硬盘上的文件。
7. —种处理信息数据的系统,其特征在于,包括存储模块、依据用户号码段将相应的PSDR数据存储在PSDR文件中;接收模块、用于接收UDR数据,并将其按照用户号码段划分,保存在UDR文件中;更新模块、根据加载到内存中需要更新的PSDR文件,确定该PSDR文件中的所述PSDR数据,并读取与所述PSDR数据对应的同一用户号码段的UDR数据,对所述PSDR文件进行更新。
8. 根据权利要求7所述的方法,其特征在于,在存储模块中,将PSDR数据在PSDR文件内部分为头信息、常规信息和扩展信息三类进行保存。
9. 根据权利要求7所述的系统,其特征在于,采用串行处理方式或多线程并行处理方式进行所述加载。
10. 根据权利要求7所述的系统,其特征在于,所述PSDR和UDR文件是硬盘上的文件。
全文摘要
本发明公开了一种处理信息数据的方法与系统。首先,按照用户号码段将相应的PSDR数据保存在PSDR文件中;然后,接收用户UDR数据,并将所述UDR数据按照用户号码段划分,保存在UDR文件中;最后,在内存中加载需要更新的PSDR文件,确定该PSDR文件中的所述PSDR数据,并读取与所述PSDR数据对应的同一用户号码段的UDR数据,对所述PSDR文件进行更新。通过本发明的方法与系统,将用户号码的PSDR数据保存在硬盘上的PSDR文件中,在需要更新的时候将PSDR文件映射到内存中,然后再进行信息数据的更新,不仅减少了对内存空间的使用,而且还提高了对信息数据进行更新的效率。
文档编号G06F17/30GK101794297SQ20101003389
公开日2010年8月4日 申请日期2010年1月15日 优先权日2010年1月15日
发明者李永利, 王冀波, 贾林, 马立斌 申请人:北京中创信测科技股份有限公司