CN101799803B - 信息处理方法、模块及*** - Google Patents
信息处理方法、模块及*** Download PDFInfo
- Publication number
- CN101799803B CN101799803B CN2009100051642A CN200910005164A CN101799803B CN 101799803 B CN101799803 B CN 101799803B CN 2009100051642 A CN2009100051642 A CN 2009100051642A CN 200910005164 A CN200910005164 A CN 200910005164A CN 101799803 B CN101799803 B CN 101799803B
- Authority
- CN
- China
- Prior art keywords
- status file
- information
- detailed unirecord
- status
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及一种信息处理方法、模块及***,其中,信息处理方法包括:根据预处理后的详单记录CDR的字段信息获取分类信息;根据上述分类信息,将上述详单记录CDR添加到多个状态文件中;依次读取上述多个状态文件获得与上述多个状态文件对应的分组中的详单记录的汇总信息。上述信息处理方法、模块及***,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与上述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了信息的统计效率。
Description
技术领域
本发明实施例涉及信息处理技术,特别涉及一种信息处理方法、模块及***。
背景技术
随着信息的增加,各种统计方法也在不断地发展,例如在电信结算过程中,需要对经过批价处理后的详单记录,按照不同的维度进行汇总统计,统计后的结果可以用于生成最终账单、优化网络资源、发现潜在客户等目的。其汇总统计的过程如下:1.定义详单记录(Call Detailed Record,CDR)中的分组字段、统计字段及统计类型;2.将所有详单记录按照分组字段进行分组;3.针对每个分组中的所有详单记录,按照每个统计字段的统计类型进行统计;4.最终每个分组只输出一条统计后的统计结果。
目前,在上述统计过程中,需要将所有的详单记录***到数据库的某张表中,然后利用“group by”进行分组,利用求和(sum)、计数(count)、求均值(avg)等进行汇总统计;或者,首先对待统计的详单记录进行预处理,然后按照分组字段在数据库中进行查找,如果查找不到,则将该详单记录***到数据库中;如果找到对应的详单记录,则将这两条详单记录进行合并。
但是,发明人在实施上述技术方案的过程中,发现上述技术方案存在一些缺陷,例如需要写复杂的SQL函数进行处理,降低了***的易用性和可维护性,且不利于***的扩展;同时,在对海量的详单记录进行处理时,***的执行效率非常低。
发明内容
本发明实施例提供一种信息处理方法、模块及***,以提供对详单记录的统计效率。
本发明实施例提供了一种信息处理方法,该方法包括:
根据预处理后的详单记录CDR的字段信息获取分类信息;
根据所述分类信息,将所述详单记录CDR添加到多个状态文件中;
依次读取所述多个状态文件获得与所述多个状态文件对应的分组中的详单记录的汇总信息。
上述信息处理方法,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与所述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率。
本发明实施例提供了一种信息处理模块,该信息处理模块包括:
获取单元,用于根据预处理后的详单记录CDR的字段信息获取分类信息;
添加单元,用于根据所述获取单元获取的分类信息,将所述详单记录CDR添加到多个状态文件中;
处理单元,用于依次读取所述多个状态文件获得与所述多个状态文件对应的分组中的详单记录的汇总信息。
上述信息统计装置,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与所述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率。
本发明实施例提供了一种信息处理***,该***包括:
定制模块,用于定制包含待统计的详单记录CDR的配置信息;
预处理模块,用于对所述定制模块定制的待统计的详单记录CDR进行预处理;
信息处理模块,用于根据所述预处理模块预处理后的详单记录CDR的字段信息获取分类信息;根据所述分类信息,将所述详单记录CDR添加到多个状态文件中;依次读取所述多个状态文件获得与所述多个状态文件对应的分组中的详单记录的汇总信息。
上述信息处理***,通过预处理模块根据用户的需求,对待统计的详单记录进行预处理,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与所述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率,且上述统计过程中不需要与数据库交互,***部署简单,维护和实现方便。
附图说明
图1为本发明信息处理方法实施例一的流程图;
图2为本发明信息处理方法实施例二的流程图;
图3为本发明信息处理模块实施例的结构示意图;
图4为本发明信息处理***实施例的结构示意图;
图5为本发明信息处理方法实施例的信令流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,为本发明信息处理方法实施例一的流程图,该方法包括:
步骤101、根据预处理后的CDR的字段信息获取分类信息;
上述字段信息可以为分组字段等,上述分类信息可以为键值等;上述步骤可以为:根据预处理后的详单记录CDR的分组字段获取详单记录的键值等;
步骤102、根据上述分类信息,将上述CDR添加到多个状态文件中;
该步骤可以通过以下方式实现:在状态文件索引信息中查找是否有上述详单记录对应的状态文件,若有,则将上述详单记录添加到上述对应的状态文件中;否则,判断是否存在空闲的状态文件,若不存在空闲的状态文件,则创建新的状态文件,更新状态文件索引信息,将上述详单记录添加到上述新的状态文件中,若存在空闲的状态文件,则更新状态文件索引信息,将上述详单记录添加到上述空闲的状态文件中;
步骤103、依次读取上述多个状态文件获得与上述多个状态文件对应的分组中的所有详单记录的汇总信息。
步骤102已将属于一个分组的所有详单记录都添加到同一个状态文件中,所以依次读取上述多个状态文件即可获得与上述多个状态文件对应的分组中的所有详单记录的汇总信息。
另外,还可以将上述汇总信息发送给报表***或其他分析***使用。
上述信息处理方法,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与上述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率。
如图2所示,为本发明信息处理方法实施例二的流程图,该方法包括:
步骤201、根据分组字段计算详单记录的键值;
假设此处的分组字段为:结算方和费用类型,则可根据如下公式计算键值:键值=结算方字段键值*多项式系数+费用类型键值;其中,多项式系数可根据需要进行设置,例如可取11;
步骤202、在状态文件索引信息中查找是否有上述详单记录对应的状态文件,若是,执行步骤203,否则,执行步骤204;
上述状态文件索引信息的结构如表1所示:
表1状态文件索引信息的数据结构
总状态文件名 |
总详单数 |
总分组数 |
总文件长度 |
确认长度 |
键值索引区域 |
分状态文件名1 |
文件长度1 |
确认长度1 |
... |
分状态文件名n |
文件长度n |
确认长度n |
其中,“键值索引区域”采用标准模板库(Standard Template Library,STL)中的模板(set)进行存储,可以快速判断某条详单记录的键值是否在本状态文件中,如果状态文件的总文件大小过大(一般要求不超过2G),则需要拆分出一个新的分状态文件。“确认长度”是用来保证事务一致性;在一次事务处理过程中,状态文件中的内容及状态文件的索引信息都要写到磁盘上进行保存,事务提交时,状态文件的确认长度就是当前状态文件的长度;如果在事务处理过程中发生异常,则需要将当前的状态文件的长度回滚到上次确认的长度;
步骤203、将详单记录添加到对应的状态文件,转向步骤207;
遍历所有的状态文件的索引信息,检查详单记录的键值是否在该索引的“键值索引区域”内,如果在,则说明该详单属于该状态文件,则将该详单追加到该状态文件中;
步骤204、判断是否存在空闲的状态文件,若不存在,执行步骤205,若存在,执行步骤206;
若详单记录的键值不在所有状态文件索引信息的“键值索引区域”内,则依次检查每个检查状态文件的“总分组数”,如果某一状态文件的“总分组数”没有达到该状态文件的容量阈值,则更新该状态文件的“键值索引区域”,并将该详单记录追加到该状态文件中;如果已经检查了所有的状态文件的索引信息,并且都不符合要求,则新增一个状态文件,更新该状态文件的“键值索引区域”,并将该详单记录追加到这个新增的状态文件中;
上述容量阈值可根据具体的情况进行配置;但一个状态文件的容量取决于机器的内存大小及需要统计的总记录数,如果容量太小,会导致有很多小的状态文件;容量太大,会导致机器内存耗尽。假设,一条详单记录的大小为500Bytes,可用于统计的内存大小为1GB,每条详单记录在内存中占用的空间为其自身的1.5倍左右,考虑到键值的冲突率(散列前的记录总数/散列后总的不同键值数)为1.8左右;则每个状态文件的容量为:1GB/(500Bytes*1.5*1.8),约为790000个分组;
步骤205、创建新的状态文件;
上述每个状态文件都由一到多个物理文件组成;状态文件的命名规则为:<详单类型><处理时间><5位状态序号>_<5位的内部序号>;其中,状态序号用来区分多个状态文件,内部序号用来区分属于同一个状态文件的多个物理文件。状态文件内部保存每条待统计的详单记录及该详单记录的相关信息如详单记录ID和详单记录类型等;
步骤206、更新状态文件的索引信息,转向步骤203;
步骤207、判断是否处理完所有的详单记录,若是,则执行步骤208,否则,转向步骤201;
步骤208、读取一个状态文件进行分组中所有详单记录的汇总统计;
步骤209、判断是否处理完所有的状态文件,若是,则结束,否则,转向步骤208。
由于在步骤202及步骤204中,已经将属于某个分组的所有详单记录都添加到同一个状态文件中,所以只需要处理完该状态文件中所有的详单记录,则对该分组的详单记录即可完成统计,并输出统计结果。
上述信息处理方法,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与上述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率。
如图3所示,为本发明信息处理模块实施例的结构示意图,该信息处理模块包括:获取单元31,用于根据预处理后的详单记录CDR的字段信息获取分类信息;添加单元32,用于根据上述获取单元31获取的分类信息,将上述详单记录CDR添加到多个状态文件中;处理单元33,用于依次读取上述多个状态文件获得与上述多个状态文件对应的分组中的详单记录的汇总信息。
其中,上述字段信息可以包括分组字段等,上述分类信息可以包括键值等。
为了将属于一个分组的详单记录添加到同一个状态文件中,上述添加单元32可以包括:判断子单元321,用于在状态文件索引信息中查找是否有上述详单记录对应的状态文件;添加子单元322,用于在状态文件索引信息中查找到有上述详单记录对应的状态文件时,则将上述详单记录添加到上述对应的状态文件中;处理子单元323,用于在状态文件索引信息中无法查找到有上述详单记录对应的状态文件时,判断是否存在空闲的状态文件,若不存在空闲的状态文件,则创建新的状态文件,更新状态文件索引信息,将上述详单记录添加到上述新的状态文件中,若存在空闲的状态文件,则更新状态文件索引信息,将上述详单记录添加到上述空闲的状态文件中。
另外,上述判断子单元用于查找上述详单记录的键值是否在状态文件索引信息的键值索引字段内,上述处理子单元用于依次检查所有状态文件的状态文件索引信息中的总分组数是否达到容量阈值。
上述信息处理模块,通过添加单元将属于一个分组的详单记录都添加到一个状态文件中,利用状态文件保存需要统计的详单记录,并通过处理单元读取多个状态文件获得与上述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率。
如图4所示,为本发明信息处理***实施例的结构示意图,该***包括:定制模块1,用于定制包含待统计的详单记录CDR的配置信息;预处理模块2,用于对上述定制模块1定制的待统计的详单记录CDR进行预处理;信息处理模块3,用于根据上述预处理模块2预处理后的详单记录CDR的字段信息获取分类信息;根据上述分类信息,将上述详单记录CDR添加到多个状态文件中;依次读取上述多个状态文件获得与上述多个状态文件对应的分组中的详单记录的汇总信息。
其中,上述配置信息的数据结构如表2所示:
表2配置信息的数据结构
字段名称 | 统计类型 | 统计方式 | 是否排重 | 预处理 |
结算方 | 分组字段 | |||
费用类型 | 分组字段 | |||
费用 | 统计字段 | Sum | 否 | |
用户号码 | 统计字段 | Count | 是 | 号码规整 |
其中,Sum统计方式表示将该分组中的所有记录的字段进行累加;Count统计方式表示对该分组中所有记录的字段进行计数;<是否排重>选项用来设定是否对相同的记录进行重复计数;号码规整表示对用户号码进行去国际接入码、去长途接入码等操作。
上述预处理模块进行的预处理操作可以为号码规整、取特殊字符串或字段合并等;上述字段信息可以为分组字段,上述分类信息可以包括键值等。
基于上述信息处理***,各模块间进行信息处理的过程如图5所示,该过程包括:
步骤301、定制模块向预处理模块发送待统计的详单记录CDR;
步骤302、预处理模块对上述待统计的详单记录CDR进行预处理;
步骤303、预处理模块将上述预处理后的详单记录CDR的字段信息发送给信息处理模块;
步骤304、信息处理模块根据上述字段信息获取分类信息;
步骤305、信息处理模块根据上述分类信息,将上述详单记录CDR添加到多个状态文件中;
步骤306、信息处理模块依次读取上述多个状态文件获得与上述多个状态文件对应的分组中的详单记录的汇总信息。
上述信息处理***,通过预处理模块根据用户的需求,对待统计的详单记录进行预处理,利用状态文件保存需要统计的详单记录,并通过读取多个状态文件获得与上述状态文件对应的分组中的所有详单记录的汇总信息,有效地提高了详单记录的统计效率,且上述统计过程中不需要与数据库交互,***部署简单,维护和实现方便。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
Claims (6)
1.一种信息处理方法,其特征在于包括:
根据预处理后的详单记录CDR的分组字段获取详单记录的键值;
在状态文件索引信息中查找是否有所述详单记录对应的状态文件,若有,则将所述详单记录添加到所述对应的状态文件中;否则,判断是否存在空闲的状态文件,若不存在空闲的状态文件,则创建新的状态文件,更新状态文件索引信息,将所述详单记录添加到所述新的状态文件中,若存在空闲的状态文件,则更新状态文件索引信息,将所述详单记录添加到所述空闲的状态文件中;
依次读取所述多个状态文件获得与所述多个状态文件对应的分组中的详单记录的汇总信息。
2.根据权利要求1所述的信息处理方法,其特征在于所述在状态文件索引信息中查找是否有所述详单记录对应的状态文件包括:
查找所述详单记录的键值是否在所有状态文件的状态文件索引信息的键值索引字段内;
所述判断是否存在空闲的状态文件包括:
依次检查每个状态文件的状态文件索引信息中的总分组数是否达到容量阈值。
3.一种信息处理模块,其特征在于包括:
获取单元,用于根据预处理后的详单记录CDR的字段信息获取分类信息,所述字段信息包括分组字段,所述分类信息包括键值;
添加单元,用于根据所述获取单元获取的分类信息,将所述详单记录CDR添加到多个状态文件中;所述添加单元包括:
判断子单元,用于在状态文件索引信息中查找是否有所述详单记录对应的状态文件;
添加子单元,用于在状态文件索引信息中查找到有所述详单记录对应的 状态文件时,则将所述详单记录添加到所述对应的状态文件中;
处理子单元,用于在状态文件索引信息中无法查找到有所述详单记录对应的状态文件时,判断是否存在空闲的状态文件,若不存在空闲的状态文件,则创建新的状态文件,更新状态文件索引信息,将所述详单记录添加到所述新的状态文件中,若存在空闲的状态文件,则更新状态文件索引信息,将所述详单记录添加到所述空闲的状态文件中;
处理单元,用于依次读取所述多个状态文件获得与所述多个状态文件对应的分组中的详单记录的汇总信息。
4.根据权利要求3所述的信息处理模块,其特征在于所述判断子单元用于查找所述详单记录的键值是否在所有状态文件的状态文件索引信息的键值索引字段内,所述处理子单元用于依次检查每个状态文件的状态文件索引信息中的总分组数是否达到容量阈值。
5.一种信息处理***,其特征在于包括:
定制模块,用于定制包含待统计的详单记录CDR的配置信息;
预处理模块,用于对所述定制模块定制的待统计的详单记录CDR进行预处理;
信息处理模块,用于根据所述预处理模块预处理后的详单记录CDR的字段信息获取分类信息,所述字段信息包括分组字段,所述分类信息包括键值;在状态文件索引信息中查找是否有所述详单记录对应的状态文件,若有,则将所述详单记录添加到所述对应的状态文件中;否则,判断是否存在空闲的状态文件,若不存在空闲的状态文件,则创建新的状态文件,更新状态文件索引信息,将所述详单记录添加到所述新的状态文件中,若存在空闲的状态文件,则更新状态文件索引信息,将所述详单记录添加到所述空闲的状态文件中;依次读取所述多个状态文件获得与所述多个状态文件对应的分组中的详单记录的汇总信息。
6.根据权利要求5所述的信息处理***,其特征在于所述预处理包括号码规整、取特殊字符串或字段合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100051642A CN101799803B (zh) | 2009-02-06 | 2009-02-06 | 信息处理方法、模块及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100051642A CN101799803B (zh) | 2009-02-06 | 2009-02-06 | 信息处理方法、模块及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101799803A CN101799803A (zh) | 2010-08-11 |
CN101799803B true CN101799803B (zh) | 2012-07-04 |
Family
ID=42595481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100051642A Active CN101799803B (zh) | 2009-02-06 | 2009-02-06 | 信息处理方法、模块及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101799803B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186560B (zh) * | 2011-12-28 | 2017-04-05 | 金蝶软件(中国)有限公司 | 一种数据排序方法以及相关装置 |
CN103746851A (zh) * | 2014-01-17 | 2014-04-23 | 中国联合网络通信集团有限公司 | 一种实现独立用户数统计的方法及装置 |
CN109522457A (zh) * | 2018-11-22 | 2019-03-26 | 河北冀云气象技术服务有限责任公司 | 数据获取方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252913A (zh) * | 1997-04-16 | 2000-05-10 | 诺基亚电信公司 | 从数据流提取所希望数据 |
CN101087203A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种海量数据统计方法 |
CN101212792A (zh) * | 2006-12-27 | 2008-07-02 | ***通信集团公司 | 融合类业务的计费信息处理方法 |
-
2009
- 2009-02-06 CN CN2009100051642A patent/CN101799803B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252913A (zh) * | 1997-04-16 | 2000-05-10 | 诺基亚电信公司 | 从数据流提取所希望数据 |
CN101087203A (zh) * | 2006-06-11 | 2007-12-12 | 上海全成通信技术有限公司 | 一种海量数据统计方法 |
CN101212792A (zh) * | 2006-12-27 | 2008-07-02 | ***通信集团公司 | 融合类业务的计费信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101799803A (zh) | 2010-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101350869B (zh) | 基于索引和散列的电信计费去重方法及设备 | |
US9325344B2 (en) | Encoding data stored in a column-oriented manner | |
CN111506621B (zh) | 一种数据统计方法及装置 | |
CN111506559A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库*** | |
CN111625561B (zh) | 一种数据查询方法及装置 | |
CN109388636A (zh) | 业务数据***数据库方法、装置、计算机设备及存储介质 | |
CN107391506A (zh) | 用于查询数据的方法和装置 | |
CN103116641B (zh) | 获取排序的统计数据的方法及排序装置 | |
CN104346458A (zh) | 数据存储方法和存储设备 | |
CN108228787B (zh) | 按照多级类目处理信息的方法和装置 | |
CN101799803B (zh) | 信息处理方法、模块及*** | |
CN114328981B (zh) | 基于模式映射的知识图谱建立和数据获取方法、装置 | |
CN103345527B (zh) | 数据智能统计*** | |
CN106649385B (zh) | 基于HBase数据库的数据排序方法和装置 | |
CN114741368A (zh) | 基于人工智能的日志数据统计方法及相关设备 | |
CN101980190A (zh) | 一种业务数据快速入库的方法和装置 | |
CN110321388B (zh) | 一种基于Greenplum的快速排序查询方法及*** | |
CN106599326B (zh) | 一种云化架构下的记录数据剔重处理方法及*** | |
CN101650732B (zh) | 一种对象管理***中的对象分组方法及装置 | |
CN111538730B (zh) | 一种基于哈希桶算法的数据统计的方法及其*** | |
CN114564501A (zh) | 一种数据库数据存储、查询方法、装置、设备及介质 | |
CN114265887A (zh) | 一种维度数据处理方法、装置、存储介质及电子设备 | |
CN105718485B (zh) | 一种将数据录入数据库的方法及装置 | |
CN111611056A (zh) | 数据处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200217 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: Kokusai Hotel No. 11 Nanjing Avenue in the flora of 210012 cities in Jiangsu Province Patentee before: Huawei Technologies Co.,Ltd. |