一種處理信息數據的方法與系統的製作方法
2023-06-13 04:19:41 2
專利名稱:一種處理信息數據的方法與系統的製作方法
技術領域:
本發明涉及電信領域,更具體的說是涉及一種處理電信用戶號碼信息數據的方法
與系統。
背景技術:
在電信領域,需要對用戶的號碼進行統計。在統計的過程中以每個號碼作為統計
的單位,並且在保存每個用戶號碼的時候,對於每個存儲的號碼中的相關信息也進行相應
的存儲。在對用戶號碼進行實際處理的過程中,對包含在用戶號碼中的相關信息的數據需
要不斷更新的。為了提高對這些數據的處理效率,即號碼信息的更新效率。 在現有技術中,在處理的過程中主要利用內存作為緩存,來進行高效的存取,但是
由於內存非常有限,在利用內存作為緩存的過程中,是不能將全部的數據都置於內存中的。
例如每個號碼的信息長度為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日
發明者李永利, 王冀波, 賈林, 馬立斌 申請人:北京中創信測科技股份有限公司