數據排重方法及系統的制作方法
【專利摘要】本申請提供了數據排重方法及系統。該方法包括:將待處理的數據集分配到多臺服務器,其中,每臺服務器被分配數據集中的多個子集,每個子集中的每個數據均包括具有相同屬性的第一數據元;每臺服務器至少針對分配給該服務器的全部子集中的第一數據元取交集,以形成預排重數據集;以及至少針對多臺服務器形成的全部預排重數據集中的第一數據元取交集,以得到排重數據集。在本申請中還給出了數據排重系統的示例架構,并給出了這樣的數據排重方法和系統的具體用例。本申請的技術方案大大減輕了每臺服務器的工作負載、節省了數據排重時間,有效地提高了數據排重的效率和精度、提高了系統響應速度。
【專利說明】
數據排重方法及系統
技術領域
[0001]本申請一般地涉及數據處理領域,更具體地,本申請涉及數據排重方法及系統。
【背景技術】
[0002]隨著信息技術的不斷發展,各類數據大量涌現,其中不乏重復性數據,這些重復性數據不但給數據的存儲造成了負擔,有時數據的重復還會給后續操作帶來困難,比如,在電信行業中如果存在重復電話單就會造成重復收費、在互聯網廣告領域重復點擊也會造成重復計費、在文獻管理領域對同一文獻的重復收錄和索引會給后續檢索帶來麻煩、在根據用戶量來預付費的情況下對用戶的重復計數也會導致重復計費等等。因此,對大量數據進行排重的需求越來越多。
[0003]隨著計算機的普及使用,人們很自然地想到使用計算機或服務器來進行海量數據的處理。但是,已有的數據排重方法通常使用單一服務器對大量數據進行處理,給服務器帶來巨大的工作負荷,并且數據排重過程往往是繁瑣且耗時的。
[0004]因此,希望提供簡單易行的數據排重解決方案,以快速、準確地對大量數據進行排重。
【發明內容】
[0005]為了提供快速準確的數據排重解決方案,本申請提供了數據排重方法及系統。
[0006]—方面,本申請提供了一種數據排重方法。該方法包括:
[0007]將待處理的數據集分配到多臺服務器,其中,每臺服務器被分配所述數據集中的多個子集,每個子集中的每個數據均包括具有相同屬性的第一數據元;
[0008]每臺服務器至少針對分配給該服務器的全部子集中的第一數據元取交集,以形成預排重數據集;以及
[0009]至少針對所述多臺服務器形成的全部預排重數據集中的第一數據元取交集,以得到排重數據集。
[0010]可選地,在上述數據排重方法中,每個子集對應于多個網格式的地理區域中的不同地理區域內的用戶信息。
[0011]可選地,在上述數據排重方法中,每臺服務器監視多個網格式的地理區域中的不同地理區域內的用戶信息,并將每個地理區域內的用戶信息存儲為一個子集。
[0012]可選地,在上述數據排重方法中,所述第一數據元是用戶ID。
[0013]可選地,在上述數據排重方法中,所述位置信息包括用戶所處的經度和瑋度信息。
[0014]可選地,在上述數據排重方法中,與相鄰的地理區域對應的子集被分配到所述多臺服務器中的不同服務器上。
[0015]可選地,在上述數據排重方法中,每個子集中的各個數據具有不同的第一數據元。
[0016]可選地,在上述數據排重方法中,所述數據集與指定的時間單元相關聯。
[0017]可選地,在上述數據排重方法中,所述數據集中的每個數據還包括與用戶ID對應的經瑋度信息。
[0018]另一方面,本申請還提供了一種數據排重系統。該系統包括:
[0019]多臺第一服務器,其中,每臺第一服務器被分配有待處理的數據集中的多個子集,每個子集中的每個數據均包括具有相同屬性的第一數據元;
[0020]每臺第一服務器被配置為至少針對分配給該服務器的全部子集中的第一數據元取交集,以形成預排重數據集;以及
[0021]第二服務器,所述第二服務器被配置為至少針對所述多臺第一服務器形成的全部預排重數據集中的第一數據元取交集,以得到排重數據集。
[0022]再一方面,本申請還提供了一種有形、非易失性計算機可讀介質,其上存儲有指令,當這些指令被一個或多個處理器執行時,使得這些處理器,執行上面描述的數據排重方法。
[0023]本申請的實施例的技術方案通過將待處理的數據集分配到多臺服務器,由每臺服務器分別對各自的數據集執行預排重,然后對多臺服務器形成的全部預排重數據集執行排重得到排重數據集,將存儲和計算負載分布到多臺服務器上,通過并行處理若干被切分的小規模問題(例如,每臺服務器各自的預排重運算),然后再對運算結果進行進一步求精來實現一項計算任務(例如,對多臺服務器形成的全部預排重數據集執行排重),大大減輕了每臺服務器的工作負載、節省了數據處理時間,有效地提高了數據處理的效率,提高了系統響應速度。
【附圖說明】
[0024]為了更清楚地說明本申請的實施例的技術方案,下面將結合附圖對實施例進行描述,這些附圖形成了本文的一部分并通過圖解的方式示出了具體示例實施例,其中:
[0025]圖1為根據一個實施例的數據排重系統的架構示意圖。
[0026]圖2為根據另一實施例的據排重系統的另一架構示意圖。
[0027]圖3為示出了根據實施例的數據排重方法的過程的流程圖。
[0028]圖4為示出了根據一具體用例的數據排重方法的過程的流程圖。
【具體實施方式】
[0029]在下面對本申請的詳細描述中闡述了很多具體細節,以便于充分理解本申請。但是,在沒有這些具體細節的情況下也可以實施本申請,對于本領域的技術人員來說是很明顯的。在另外一些示例里,沒有對公知的方法、過程和部件進行詳細的描述,以避免喧賓奪主、淡化了本申請的主要內容。
[0030]在整個說明書和權利要求書中,術語或短語可能具有明確表述的意思之外的在上下文中暗示或暗指的有細微差別的含義。例如,術語“數據集”可以表示任何數據的集合,可以是多元數據也可以是一元數據的集合,可以是數字、字母、字符串、符號、文字等等多種形式。術語“數據元”表示數據集中的數據的組成元素,數據可以由一個或多個數據元組成。并且數據集可以根據預定的規則(例如,可以根據其中的某一數據元)被拆分成預定數目的子集。術語“服務器”也可以指代處理器、運算器等能夠實現本申請描述的技術方案的任何計算器件與存儲器件的組合。短語“網格式的地理區域”在本申請中意指在地圖上進行劃分得到一系列網格,其中每個格子表示一個網格式的地理區域。短語“在一個實施例中”不一定指相同的實施例,并且短語“在另一實施例中”不一定指不同的實施例。例如,要求保護的主題旨在包括示例實施例全部或部分的組合。
[0031 ] 為了提供快速準確的數據排重解決方案,本申請的實施例提供了數據排重的方法和系統。
[0032]圖1給出了這樣的數據排重系統100的一個示例。如圖所示,系統100包括多臺第一服務器101和第二服務器102。在本申請中,服務器可以是傳統意義上的服務器,也可以是們能夠實現其功能的其他器件,比如,處理器或運算器與存儲器的組合等等。在一個實施例中,第一服務器101和第二服務器102可以是相同的服務器。在另一實施例中,第二服務器102可由多臺第一服務器101之一來擔任。這些服務器通過網絡互連,以發送或接收數據和信令,并進行同步。網絡可以是任何類型的網絡,例如,公共交換電話網(PSTN)、互聯網(Internet)、局域網(LAN)、廣域網(WAM)、有線網絡、無線網絡等的任意組合。
[0033]首先,假定待處理的數據集中的每個數據存在至少一個可供比較的數據元,稱為相同屬性的數據元。優選地,數據集中的每個數據的每個相應數據元屬性都相同,即數據集中的數據全部按照相同的格式進行存儲。待處理的數據集中可能存在一個或多個重復數據。所謂重復數據并不是指數據完全相同,而是在數據處理中將要考慮的一個或多個數據元相同。待處理的數據集被劃分為多個子集。優選地,數據集的每個子集中的數據具有不同的第一數據元。這些子集被分配給多臺第一服務器101,使得每臺第一服務器101被分配有待處理的數據集中的一個或多個子集。接下來,每臺第一服務器101針對分配給該服務器的全部子集中的至少第一數據元取交集。全部多臺第一服務器101的處理結果組成預排重數據集。預排重數據集被傳輸到第二服務器102。第二服務器102同樣針對預排重數據集中的至少第一數據元取交集。從而得到針對至少第一數據元的排重數據集。在其他實施例中,排重可以針對兩個或更多個數據元進行。
[0034]在需要排重的數據量非常龐大,而且可以用于排重的服務器足夠多的情況下,可以使用圖2所提供的數據排重系統200。在圖2中,數據排重系統200包括多臺第一服務器201、多臺第二服務器202和第三服務器203,其中第二服務器202的數目小于第一服務器201的數目。在一個實施例中,第一服務器201、第二服務器202和第三服務器203可以是相同的服務器。在另一實施例中,多臺第二服務器202和第三服務器203可由多臺第一服務器201中的一部分來擔任。這些服務器通過網絡互連,以發送或接收數據和信令,并進行同步。
[0035]首先,假定待處理的數據集中的每個數據存在至少一個可供比較的數據元,稱為相同屬性的數據元。優選地,數據集中的每個數據的每個相應數據元屬性都相同,即數據集中的數據全部按照相同的格式進行存儲。待處理的數據集中可能存在一個或多個重復數據。所謂重復數據并不是指數據完全相同,而是在數據處理中將要考慮的一個或多個數據元相同。待處理的數據集被劃分為多個子集。優選地,數據集的每個子集中的數據具有不同的第一數據元。這些子集被分配給多臺第一服務器201,使得每臺第一服務器201被分配有待處理的數據集中的一個或多個子集。接下來,每臺第一服務器201針對分配給該服務器的全部子集中的至少第一數據元取交集。此形成第一預排重數據集。第一預排重數據集被進一步分配給多臺第二服務器202。第二服務器202同樣針對預排重數據集中的至少第一數據元取交集。從而得到針對至少第一數據元的第二預排重數據集。第二預排重數據集被傳輸至第三服務器203,由第三服務器203進一步針對至少第一數據元取交集,得到排重后的數據集。
[0036]可選地,在其他實施例中,多臺第一服務器201中的每臺第一服務器201針對第一數據元對分配給該服務器的全部子集求交集,得到第一預排重數據集。接著,多臺第一服務器202中的每臺第一服務器202針對第二數據元對分配給該服務器的全部第一預排重數據集的子集求交集,得到第二預排重數據集。而第三服務器203可以同時針對第一數據元和第二數據元對第二預排重數據集的各個子集求交集,從而得出待處理數據集關于第一數據元和第二數據元的排重數據集。當然,排重也可以針對更多的數據元進行。
[0037]雖然,在上面的實施例中僅給出了 2級和3級服務器架構,但是本領域普通技術人員將理解的是,在適當的情況下,本申請的數據排重系統可以具有更多級的服務器架構,可以處理更多的數據,可以針對更多的數據元對數據集進行排重運算。上面的實施例僅是示例性的而不是限制性的。
[0038]圖3示出了根據實施例的數據排重方法300的流程圖。如前面所描述的,假定待處理的數據集中的每個數據存在至少一個可供比較的數據元,稱為相同屬性的數據元。優選地,數據集中的每個數據的每個相應數據元屬性都相同,即數據集中的數據全部按照相同的格式進行存儲。待處理的數據集中可能存在一個或多個重復數據。所謂重復數據并不是指數據完全相同,而是在數據處理中將要考慮的一個或多個數據元相同。待處理的數據集被劃分為多個子集。優選地,數據集的每個子集中的數據具有不同的第一數據元。過程300開始于步驟S310,在步驟S310中,將數據集的多個子集分配給多臺服務器。每臺服務器分配有待處理數據的多個子集,每個子集中的每個數據均至少包括具有相同屬性的第一數據元。在步驟S320中,多臺服務器中的每臺服務器針對分配給該服務器的全部子集中的第一數據元取交集,以形成預排重數據集。接下來,在步驟S330中,針對多臺服務器形成的全部預排重數據集中的第一數據元取交集,以得到排重數據集。過程300結束。
[0039]應該指出的是,上面僅描述了數據排重的一般過程,即包括預排重和排重,在一些實施例中,這樣的預排重步驟可能不止執行一次,而且可以針對不止一個數據元進行,比如,第一預排重可以由多臺第一服務器中的每臺第一服務器分別針對第一數據元對待處理數據的多個子集進行預排重,得到第一預排重數據集;第二預排重可以由多臺第二服務器中的每臺第二服務器分別針對第二數據元(也可以繼續針對第一數據元)對第一預排重數據集的多個子集進行預排重,得到第二預排重數據集;接著,可以由第三服務器針對第一數據元和第二數據元(也可以只針對第一數據元)對第二預排重數據集的多個子集進行排重,最后得到針對第一數據元和第二數據元的排重數據集。根據上述描述,本領域普通技術人員可以想到本申請的技術方案可以通過更多級預排重針對數據所包含的更多數據元對待處理數據進行排重。
[0040]下面將結合具體實例介紹上面描述的數據排重方法的應用,但是本領域普通技術人員應當理解本申請的數據排重方法還可以應用于其他實例。
[0041]隨著智能移動終端的普及使用,越來越多得用戶開始借助于移動終端上安裝的各種應用來獲取信息,這使得商家看到了商機,越來越多的商家借助移動終端上安裝的各種應用來向移動終端的用戶推送信息,從而推廣其產品或服務。往往,商家所推送的產品或服務信息對其周圍一定距離范圍內的移動終端的用戶而言是有用信息,而對于處于較遠地域的用戶而言就不那么有用了。因此,商家希望僅向其周圍一定距離范圍內的移動終端推送產品或服務信息,從而控制成本、提高回報率。這就涉及到預估一定距離范圍內、在某一時間單元(比如,一天)內的凈用戶數,從而合理規劃信息投放時間段和地域范圍,獲得期望的回報率。
[0042]在指定時間單元內,用戶可能被重復登記在關于一定距離范圍的統計數據中(比如,用戶移動到一定距離范圍之外的地域之后又返回一定距離范圍之內,或者用戶退出或重新登錄相關應用等)。因此,簡單地記錄在在指定時間單元內出現在一定距離范圍內的用戶,會存在重復計數,需要對用戶信息進行排重以得出一定距離范圍內、在指定時間單元內的凈用戶數。
[0043]在本實例中,應用上面描述的數據排重方法來對一定距離范圍內、在指定時間單元內的用戶信息進行排重。
[0044]在現有技術中,通過墨卡托投影將地球球面投影在二維平面上,對投影所得的二維平面進行四等分,并根據預定的距離單位(比如,I千米、2千米等等)逐步細分(比如,N次),得到多個(比如,#個)網格式的地理區域。從而,一定的地理范圍由一個或多個網格式的地理區域構成。
[0045]在此情景下,數據集是一定距離范圍內、在指定時間單元內的用戶信息。數據集中的每個子集與多個網格式的地理區域中的不同的地理區域內的用戶信息相對應。在實施例中,待處理的數據集被分配到多臺服務器,可以是將已有的用戶信息的多個子集分配到多臺服務器,或者,將多個網格式的地理區域分配給多臺服務器中的每臺服務器,由每臺服務器分別監測被分配給該服務器的所有網格式的地理區域內的用戶信息,并針對指定的時間單元(比如,一天)存儲為用戶信息的一個子集。
[0046]為了統計一定距離范圍內、在指定時間單元內的用戶信息,為每個用戶分配一個用戶ID,并將用戶ID作為用戶信息的第一數據元來存儲用戶信息。可選地,用戶信息還可以包括對應的位置信息(比如,經瑋度、地理標志等),以及用戶出現在該地理位置的時間
?目息O
[0047]如上面所述的,將待處理的數據集分配到多臺服務器例如可以是將與相鄰的地理區域對應的子集分配到多臺服務器中的不同服務器。優選地,每個子集中的各條用戶信息具有不同的用戶ID,即在每個子集中,針對同一用戶ID僅保存一條用戶信息。由于同一用戶在同一時間單元內出現在不相鄰地理區域內的幾率相對出現在相鄰地理區域內的幾率小得多,將相鄰地理區域對應的子集分配給不同服務器,這大大減輕了每臺服務器的運算負載,有效地提高了運算速率。
[0048]在可替代的實施例中,將待處理的數據集分配到多臺服務器例如可以通過將多個網格式的地理區域分配給多臺服務器中的每臺服務器,由每臺服務器分別監測被分配給該服務器的所有網格式的地理區域內的用戶信息,并針對指定的時間單元(比如,一天)將每個地理區域內的用戶信息存儲為一個子集。優選地,每個子集中的各條用戶信息具有不同的用戶ID,即每臺服務器在指定時間單元內針對同一用戶ID在屬于一個地理區域的子集內僅存儲一條用戶信息。由于同一用戶在同一時間單元內出現在不相鄰地理區域內的幾率相對出現在相鄰地理區域內的幾率小得多,將相鄰地理區域分配給不同服務器進行監測并存儲,這大大減輕了每臺服務器的運算負載,有效地提高了運算速率。下面參考圖4描述根據該具體實施例的數據排重方法。
[0049]圖4示出了在該實施例中的數據排重方法400的流程圖。過程400開始于步驟S410,首先,在步驟S410,將二維地圖劃分為多個網格式的地理區域。在步驟S420,將多個網格式的地理區域分配到多臺服務器。優選地,相鄰地理區域被分配給多臺服務器中的不同服務器。在步驟S430中,每臺服務器監測被分配給該服務器的每個地理區域內的用戶,并針對指定時間單元將用戶ID作為第一數據元來存儲用戶信息,將每個地理區域內的用戶信息存儲為用戶信息的一個子集。優選地,每個子集中的各個用戶信息具有不同的用戶ID0另外,用戶ID可以與用戶所處的地理位置信息,以及用戶在該地理位置的時間信息相關聯地存儲。在步驟S440,每臺服務器針對該服務器監測得到的全部子集中的用戶ID取交集,獲得預排重用戶信息。接下來,在步驟S450,針對多臺服務器形成的全部預排重用戶信息中的用戶ID取交集,以得到排重用戶信息。過程400結束。
[0050]上述實施例的技術方案,通過將網格狀的地理區域均勻地分配到多臺服務器,由每臺服務器分別監測分配給該服務器的每個地理區域內的用戶,并針對指定時間單元將用戶ID作為第一數據元來存儲用戶信息,將每個地理區域內的用戶信息存儲為一個子集,將監測、存儲和計算負載分布到多臺服務器上進行,通過并行處理若干被切分的小規模問題(例如,每臺服務器各自的交集運算),然后再對處理結果進行匯總和進一步求精來實現一項計算任務(例如,針對預排重用戶信息再進行交集運算得到排重用戶信息),大大減輕了每臺服務器的工作負載、節省了數據處理時間,有效地提高了數據處理的效率和精度。
[0051]上面給出了本申請所提供的數據排重方法和系統的一個用例,但是本申請普通技術人員應當理解,本申請所提供的數據排重方法和系統還可以用于其他各種數據的排重,比如,在電信領域用于話單的排重、在文獻管理領域用于文獻資料的排重、等等,在此不逐一例舉。
[0052]另外,本申請的數據排重方法可以作為邏輯指令被編碼在一個或多個有形計算機可讀介質中以供一個或多個處理器執行。例如,計算機可讀介質例如可以是電子介質(例如,RAM (隨機存取存儲器)、R0M(只讀存儲器)、EPROM (可擦除可編程只讀存儲器))、磁介質、光介質(例如,⑶、DVD)、電磁介質、半導體技術介質或任意其他合適的介質。
[0053]以上在實施例中描述了本申請的優選實施例。盡管在特定實施例中描述了本申請,但是應當理解在不脫離本發明的范圍的情況下可以進行許多變化和修改。因此,希望以上詳細描述被認為是示意性的而不是限制性的,并且要理解意欲限定本發明的精神和范圍的是所附的權利要求,包括所有等同物。
【主權項】
1.一種數據排重方法,包括: 將待處理的數據集分配到多臺服務器,其中,每臺服務器被分配所述數據集中的多個子集,每個子集中的每個數據均包括具有相同屬性的第一數據元; 每臺服務器至少針對分配給該服務器的全部子集中的第一數據元取交集,以形成預排重數據集;以及 至少針對所述多臺服務器形成的全部預排重數據集中的第一數據元取交集,以得到排重數據集。2.根據權利要求1所述的方法,其中,每個子集對應于多個網格式的地理區域中的不同地理區域內的用戶信息。3.根據權利要求1所述的方法,其中,每臺服務器監視多個網格式的地理區域中的不同地理區域內的用戶信息,并將每個地理區域內的用戶信息存儲為一個子集。4.根據權利要求2或3所述的方法,其中,所述第一數據元是用戶ID。5.根據權利要求2所述的方法,其中,將待處理的數據集分配到多臺服務器包括: 將與所述多個網格式的地理區域中的相鄰地理區域對應的子集分配給所述多臺服務器中的不同服務器。6.根據權利要求1所述的方法,其中,每個子集中的各個數據具有不同的第一數據元。7.根據權利要求1所述的方法,其中,所述數據集與指定的時間單元相關聯。8.根據權利要求4所述的方法,其中,所述數據集中的每個數據還包括與用戶ID對應的經瑋度信息。9.一種數據排重系統,包括: 多臺第一服務器,其中,每臺第一服務器被分配有待處理的數據集中的多個子集,每個子集中的每個數據均包括具有相同屬性的第一數據元; 每臺第一服務器被配置為至少針對分配給該服務器的全部子集中的第一數據元取交集,以形成預排重數據集;以及 第二服務器,所述第二服務器被配置為至少針對所述多臺第一服務器形成的全部預排重數據集中的第一數據元取交集,以得到排重數據集。10.根據權利要求9所述的系統,其中,每個子集對應于多個網格式的地理區域中的不同地理區域內的用戶信息。11.根據權利要求9所述的系統,其中,每臺服務器監視多個網格式的地理區域中的不同地理區域內的用戶信息,并將每個地理區域內的用戶信息存儲為一個子集。12.根據權利要求10或11所述的系統,其中,所述第一數據元是用戶ID。13.根據權利要求10所述的系統,其中,與所述多個網格式的地理區域中的相鄰地理區域對應的子集被分配到所述多臺第一服務器中的不同第一服務器上。14.根據權利要求9所述的系統,其中,每個子集中的各個數據具有不同的第一數據J L ο15.根據權利要求9所述的系統,其中,所述數據集與指定的時間單元相關聯。16.根據權利要求12所述的系統,其中,所述數據集中的每個數據還包括與用戶ID對應的經瑋度信息。17.根據權利要求12所述的系統,其中,所述第二服務器可由所述第一服務器之一來擔任。18.一種存儲有指令的有形、非易失性計算機可讀介質,當所述指令被一個或多個處理器運行時,使得所述一個或多個處理器執行如權利要求1-8中的任一項所述的數據排重方法。
【文檔編號】G06F17/30GK105989022SQ201510050583
【公開日】2016年10月5日
【申請日】2015年1月30日
【發明人】張艷魁, 高永芝
【申請人】北京陌陌信息技術有限公司