一種統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的方法及裝置制造方法
【專利摘要】本發(fā)明提出了統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的方法和裝置。能夠?qū)崿F(xiàn)高性能的處理大量CDR報(bào)文,并可在不影響統(tǒng)計(jì)的情況下實(shí)時(shí)輸出用戶所需的統(tǒng)計(jì)結(jié)果。CDR報(bào)文由收包模塊進(jìn)入,進(jìn)入統(tǒng)計(jì)模塊,統(tǒng)計(jì)模塊提取報(bào)文的各個(gè)字段根據(jù)需求并行生成N個(gè)單項(xiàng)散列(HASH)表和M個(gè)關(guān)聯(lián)散列(HASH)表,進(jìn)行統(tǒng)計(jì)。在接到指令或到固定間隔時(shí),快照模塊獲取統(tǒng)計(jì)模塊的信息快照,交由統(tǒng)計(jì)輸出模塊輸出。
【專利說明】一種統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及報(bào)文統(tǒng)計(jì)【技術(shù)領(lǐng)域】,特別涉及呼叫詳細(xì)記錄(CDR)報(bào)文的統(tǒng)計(jì)以及統(tǒng)計(jì)結(jié)果的實(shí)時(shí)輸出。
【背景技術(shù)】
[0002]技術(shù)術(shù)語:
[0003]CDR:Call detail record 呼叫詳細(xì)記錄。
[0004]HASH:散列,就是把任意長(zhǎng)度的輸入通過散列算法,變換成固定長(zhǎng)度的輸出。
[0005]隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展,移動(dòng)數(shù)據(jù)應(yīng)用更加豐富。⑶R是用于描述移動(dòng)通信中,某一用戶行為的通信呼叫記錄,一個(gè)典型的CDR報(bào)文含有用戶的手機(jī)號(hào)碼,業(yè)務(wù)的類型,開始時(shí)間,結(jié)束時(shí)間,上行流量,下行流量,所在基站編號(hào)等。
[0006]在當(dāng)今移動(dòng)互聯(lián)網(wǎng)愈來愈迅猛的發(fā)展下,隨著智能手機(jī)終端的普及,各類手機(jī)應(yīng)用軟件的豐富,用戶越來越多的采用便攜的手機(jī)終端來接入互聯(lián)網(wǎng)。移動(dòng)通信中產(chǎn)生數(shù)據(jù)量越來越大,最終生成的CDR報(bào)文數(shù)量也越來越大,短時(shí)間生成數(shù)以千萬計(jì)的CDR數(shù)據(jù)也是常見的事情。
[0007]在數(shù)據(jù)監(jiān)測(cè)領(lǐng)域,需要對(duì)流量,用戶數(shù),業(yè)務(wù)熱點(diǎn)等信息進(jìn)行關(guān)聯(lián)統(tǒng)計(jì),且對(duì)結(jié)果的實(shí)時(shí)性要求越來越高。這就意味著如何來實(shí)現(xiàn)大流量報(bào)文的關(guān)聯(lián)統(tǒng)計(jì),且在不影響處理性能的前提下實(shí)時(shí)的輸出結(jié)果。
[0008]目前業(yè)界中常用于流量統(tǒng)計(jì)的有SNMP技術(shù)和NetFlow技術(shù)。
[0009]SNMP技術(shù)是通過設(shè)備上提供的MIB (管理對(duì)象信息庫)收集一些具體設(shè)備和流量信息的變量,來完成統(tǒng)計(jì)?;赟NMP收集的統(tǒng)計(jì)信息包括:輸出報(bào)文包數(shù)/字節(jié)數(shù)、丟包包數(shù)/字節(jié)數(shù)、錯(cuò)包包數(shù)/字節(jié)數(shù)等;也可以實(shí)現(xiàn)一些定制的統(tǒng)計(jì)信息,如會(huì)話數(shù)、隊(duì)列長(zhǎng)度、時(shí)延等。
[0010]但該方法需要設(shè)備硬件的支持,雖然能實(shí)現(xiàn)一些定制的統(tǒng)計(jì)信息,但統(tǒng)計(jì)的維度是固定的。如使用SNMP技術(shù)進(jìn)行CDR報(bào)文的統(tǒng)計(jì),則需特別為硬件開發(fā)出對(duì)應(yīng)CDR的MIB,應(yīng)用都需要與硬件綁定,無法適應(yīng)CDR報(bào)文靈活多變的統(tǒng)計(jì)需求;而且也無法實(shí)現(xiàn)信息關(guān)聯(lián)的統(tǒng)計(jì)需求,如某業(yè)務(wù)的實(shí)時(shí)用戶人數(shù)。
[0011]NetFlow由Cisco推出,其過程大致是根據(jù)報(bào)文的目的IP地址、源IP地址、目的端口號(hào),源端口號(hào)、服務(wù)類型(T0S)、輸入輸出接口來判定一個(gè)數(shù)據(jù)流,針對(duì)這個(gè)流做單獨(dú)的流量統(tǒng)計(jì)。
[0012]該方法針對(duì)的對(duì)象報(bào)文是標(biāo)準(zhǔn)的網(wǎng)際協(xié)議(IP)報(bào)文,而對(duì)于不以IP地址,而是以用戶號(hào)碼來區(qū)分流的CDR報(bào)文不具備兼容性。且NetFlow對(duì)于需要信息關(guān)聯(lián)進(jìn)行統(tǒng)計(jì)的需求(如某業(yè)務(wù)的實(shí)時(shí)用戶人數(shù))也無法有效支持。
[0013]⑶R的結(jié)構(gòu)列舉如表I所示:
[0014]表1:
【權(quán)利要求】
1.一種統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在于: 包括: 收包模塊,用于將CDR報(bào)文從外部接口讀出,根據(jù)預(yù)設(shè)的統(tǒng)計(jì)需求進(jìn)行過濾,將不含統(tǒng)計(jì)所需內(nèi)容的報(bào)文丟棄,將統(tǒng)計(jì)所需的報(bào)文存入緩沖區(qū); 統(tǒng)計(jì)模塊,用于根據(jù)預(yù)設(shè)的統(tǒng)計(jì)需求,讀取收?qǐng)?bào)模塊的報(bào)文,生成N個(gè)單項(xiàng)散列表和M個(gè)關(guān)聯(lián)散列表; 快照模塊,用于在輸出時(shí)刻取得內(nèi)存快照; 輸出模塊,用于讀取快照模塊生成的內(nèi)存快照中的散列表信息,將指定的信息輸出。
2.根據(jù)權(quán)利要求1所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在于: 各散列表由多線程方式生成,各線程讀取的都是同一個(gè)地址的報(bào)文。
3.根據(jù)權(quán)利要求1所 述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在于: 按照如下方式生成單項(xiàng)散列表: 當(dāng)報(bào)文進(jìn)入時(shí),提取某一指定字段作為單項(xiàng)散列表的關(guān)鍵字,對(duì)關(guān)鍵字用哈希算法生成索引值; 當(dāng)索引值指示的散列表無表項(xiàng)或已有表項(xiàng)的關(guān)鍵字不同時(shí),生成一條新表項(xiàng),使用鏈表的方式連接到單項(xiàng)散列表對(duì)應(yīng)索引上; 當(dāng)索引值指示的單項(xiàng)散列表已有表項(xiàng)且關(guān)鍵字相同時(shí),將所要統(tǒng)計(jì)的內(nèi)容進(jìn)行累加。
4.根據(jù)權(quán)利要求1所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在于: 按照如下方式生成關(guān)聯(lián)散列表: 當(dāng)報(bào)文進(jìn)入時(shí),同時(shí)提取兩個(gè)或多個(gè)字段作為一個(gè)關(guān)聯(lián)散列表的關(guān)鍵字,對(duì)關(guān)鍵字用哈希算法生成索引值; 當(dāng)索引值指不的關(guān)聯(lián)散列表無表項(xiàng)或已有表項(xiàng)的關(guān)鍵字不同時(shí),生成一條新表項(xiàng),使用鏈表的方式連接到關(guān)聯(lián)散列表對(duì)應(yīng)索引上。然后在單項(xiàng)散列表搜索需關(guān)聯(lián)的某一字段,如果搜索成功,則在單項(xiàng)統(tǒng)計(jì)表中所統(tǒng)計(jì)的關(guān)聯(lián)內(nèi)容進(jìn)行累加; 當(dāng)索引值指示的關(guān)聯(lián)散列表已有表項(xiàng)且關(guān)鍵字相同時(shí),對(duì)自身所要統(tǒng)計(jì)的內(nèi)容進(jìn)行累加。
5.一種統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的方法,其特征在于,包括如下步驟: 第一步,由收包模塊接收CDR報(bào)文,并將其進(jìn)入統(tǒng)計(jì)模塊; 第二部,統(tǒng)計(jì)模塊提取報(bào)文的各個(gè)字段,根據(jù)需求并行生成N個(gè)單項(xiàng)散列(HASH)表和M個(gè)關(guān)聯(lián)散列(HASH)表,進(jìn)行統(tǒng)計(jì); 第三步,在接到指令或到固定間隔時(shí),快照模塊獲取統(tǒng)計(jì)模塊的信息快照,交由統(tǒng)計(jì)輸出模塊輸出。
6.根據(jù)權(quán)利要求5所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的方法,其特征在于: 各散列表由多線程方式生成,各線程讀取的都是同一個(gè)地址的報(bào)文。
7.根據(jù)權(quán)利要求5所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的方法,其特征在于: 按照如下方式生成單項(xiàng)散列表: 當(dāng)報(bào)文進(jìn)入時(shí),提取某一指定字段作為單項(xiàng)散列表的關(guān)鍵字,對(duì)關(guān)鍵字用哈希算法生成索引值; 當(dāng)索引值指示的散列表無表項(xiàng)或已有表項(xiàng)的關(guān)鍵字不同時(shí),生成一條新表項(xiàng),使用鏈表的方式連接到單項(xiàng)散列表對(duì)應(yīng)索引上; 當(dāng)索引值指示的單項(xiàng)散列表已有表項(xiàng)且關(guān)鍵字相同時(shí),將所要統(tǒng)計(jì)的內(nèi)容進(jìn)行累加。
8.根據(jù)權(quán)利要求5所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在 于: 按照如下方式生成關(guān)聯(lián)散列表: 當(dāng)報(bào)文進(jìn)入時(shí),同時(shí)提取兩個(gè)或多個(gè)字段作為一個(gè)關(guān)聯(lián)散列表的關(guān)鍵字,對(duì)關(guān)鍵字用哈希算法生成索引值; 當(dāng)索引值指不的關(guān)聯(lián)散列表無表項(xiàng)或已有表項(xiàng)的關(guān)鍵字不同時(shí),生成一條新表項(xiàng),使用鏈表的方式連接到關(guān)聯(lián)散列表對(duì)應(yīng)索引上。然后在單項(xiàng)散列表搜索需關(guān)聯(lián)的某一字段,如果搜索成功,則在單項(xiàng)統(tǒng)計(jì)表中對(duì)所統(tǒng)計(jì)的關(guān)聯(lián)內(nèi)容進(jìn)行累加; 當(dāng)索引值指示的關(guān)聯(lián)散列表已有表項(xiàng)且關(guān)鍵字相同時(shí),對(duì)自身所要統(tǒng)計(jì)的內(nèi)容進(jìn)行累加。
9.根據(jù)權(quán)利要求5所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在于: 快照模塊獲取統(tǒng)計(jì)模塊的信息快照的流程為: 接到指令或達(dá)到定時(shí)輸出時(shí)間時(shí),快照模塊對(duì)統(tǒng)計(jì)模塊中的散列表加鎖, 以停止內(nèi)容更新; 生成內(nèi)存快照; 解除鎖,統(tǒng)計(jì)模塊恢復(fù)工作。
10.根據(jù)權(quán)利要求5所述的統(tǒng)計(jì)呼叫詳細(xì)記錄報(bào)文并實(shí)時(shí)輸出結(jié)果的裝置,其特征在于: 統(tǒng)計(jì)輸出模塊的輸出方式包括如下方式: 文件保存方式; Socket發(fā)送方式; 數(shù)據(jù)庫保存方式。
【文檔編號(hào)】H04L12/24GK103647666SQ201310685247
【公開日】2014年3月19日 申請(qǐng)日期:2013年12月13日 優(yōu)先權(quán)日:2013年12月13日
【發(fā)明者】張睿博 申請(qǐng)人:北京中創(chuàng)信測(cè)科技股份有限公司