數據庫的用戶數據進行比對,查找變化的動 態的用戶標簽,如未查找到則返回,如查找到則進入下一步;
[0066] 查找所述變化的動態的用戶標簽在所述動態的用戶標簽到子句表達式的映射關 系中對應的若干子句表達式;
[0067] 針對所述對應的若干子句表達式,進行所述待更新用戶是否命中子句表達式的遍 歷計算,獲得所述待更新用戶與所述對應的若干子句表達式的命中關系;
[0068] 將所述命中關系與所述遍歷計算前所述位圖命中關系進行比對,找到變化的命中 關系;
[0069] 對于所述變化的命中關系是由命中變為不命中的,則查找該命中關系所對應的子 句表達式在所述子句表達式到規則表達式的映射關系對應的若干規則表達式,并將所述對 應的若干規則表達式從所述待更新用戶的用戶命中的規則表達式的映射關系中刪除;
[0070] 對于所述變化的命中關系是由不命中變為命中的,則將所述待更新用戶與該命中 關系所對應的子句表達式的位圖命中更新上傳至所述位圖命中關系中,并查找該命中關系 所對應的子句表達式在所述子句表達式到規則表達式的映射關系對應的若干規則表達式, 將所述對應的若干規則表達式增加到所述待更新用戶的用戶命中的規則表達式的映射關 系中。
[0071] 進一步的,所述第一引擎對所述用戶標簽進行更新處理,還包括:
[0072] 根據所述動態的用戶標簽內容,將所述動態的用戶標簽分為可枚舉類、不可枚舉 可索引類和不可枚舉不可索引類;
[0073] 對所述可枚舉的動態的用戶標簽建立屬性數組存儲,并采用過濾查詢法進行查 詢;對不可枚舉但可索引的動態的用戶標簽建立查找樹存儲,并采用索引法進行查詢;對 不可枚舉且不可索引的動態的用戶標簽劃分范圍存儲,并對范圍進行編號存儲,并采用可 索引查詢法和可過濾查詢法組合查詢。
[0074] 較佳的,每個所述動態的用戶標簽都對應存儲有一記錄最新更新時間的時間戳。
[0075] 進一步的,,所述第一引擎對所述用戶標簽進行更新處理,還包括:
[0076] 接收規則更新請求,通過對用戶的動態的用戶標簽進行分類查詢對照,建立用戶 所滿足的規則的新的映射關系。
[0077] 優選的,所述用戶標簽的類別信息包括位置,所述位置的用戶標簽為屬性與時間 和空間位置相關的用戶標簽。
[0078] 優選的,所述第二裝置還包括若干第二引擎,用以處理所述位置的用戶標簽,所述 第二引擎的構架包括:
[0079] 第一模塊,用以接收并傳輸所述待更新用戶的用戶數據;
[0080] 第二模塊,用以傳輸并分發所述待更新用戶的用戶數據;
[0081] 第三模塊,用以傳輸并分發用戶查詢請求和規則更新請求;以及
[0082] 第四模塊,用以對所述位置的用戶標簽進行更新并返回結果。
[0083] 進一步的,所述第四模塊對所述位置的用戶標簽進行更新并返回結果的過程,包 括:
[0084] 對所有用戶建立空間索引編號,建立所述用戶的唯一全局識別碼與所述空間索引 編號的映射關系;
[0085] 傳輸待更新用戶的用戶數據,對所述待更新用戶分配當地識別碼,建立空間索引 編號與當地識別碼的映射關系;
[0086] 將所述待更新用戶的用戶數據與原有用戶數據庫進行比對,若所述待更新用戶以 前不存在,則建立新的空間索引編號,若所述待更新用戶為原有用戶,則檢查所述空間索引 編號是否有變化,對所述空間索引編號沒有發生變化的則更新所述待更新用戶的位置的用 戶標簽的屬性信息,對所述空間索引編號發生變化的則刪除所述待更新用戶原有的當地識 別碼,建立新的當地識別碼,并更新當地識別碼與所述空間索引編號的映射關系。
[0087] 進一步的,所述若干第一模塊采用分布式消息隊列方式對所述位置的用戶標簽進 行數據更新解耦,并通過關鍵標記字符對位置的用戶標簽的數據進行切分。
[0088] 較佳的,在所述第二引擎對所述位置的用戶標簽建立空間索引的過程中,第四模 塊采用希爾伯特曲線對所述位置的用戶標簽建立空間索引編號。
[0089] 進一步的,在所述第二引擎對所述位置的用戶標簽建立空間索引的過程中,還包 括對所述建立的空間索引編號進行再取模劃分。
[0090] 較佳的,所述第二引擎對所述用戶標簽進行更新處理還包括:
[0091] 將所述位置的用戶標簽的屬性信息存儲在連續的緩存中,所述緩存具有一個以當 地識別碼為下表的偏移指向表。
[0092] 較佳的,所述第二引擎對所述用戶標簽進行更新處理還包括:
[0093] 根據所述待更新用戶的位置的用戶標簽的變動頻繁程度,動態設定更新閥值,當 所述待更新用戶的位置的用戶標簽的變動超過所述更新閥值時再進行更新。
[0094] 較佳的,在所述第二引擎對所述位置的用戶標簽的更新處理方法的過程中,還包 括,動態設定數據過期期限,刪除超過數據過期期限仍未更新的數據。
[0095] 較佳的,所述用戶標簽的類別信息還包括滑動,所述滑動的用戶標簽為屬性與時 間和空間位置相關的用戶標簽。
[0096] 較佳的,所述第二裝置還包括若干第三引擎,所述第三引擎對所述滑動的用戶標 簽的更新處理方法,包括所述第三引擎根據滑動的用戶標簽的頻繁程度采用不同存儲方式 以備更新和查詢:對于頻繁程度高的滑動的用戶標簽采用矩陣存儲方式;對于頻繁程度低 的滑動的用戶標簽采用鏈表存儲方式。
[0097] 較佳的,所述的更新用戶所滿足的規則的系統還包括若干鏡像節點,每個所述第 一引擎、每個所述第二引擎以及每個所述第三引擎都有至少一個鏡像節點提供服務。
[0098] 較佳的所述用戶標簽的類別信息還包括上下文和靜態,所述上下文的用戶標簽為 屬性隨條件同時發生的用戶標簽,所述靜態的用戶標簽為屬性固定的用戶標簽。
[0099] 可選的,所述系統還包括第三裝置,所述第三裝置采用建立索引方法更新處理所 述靜態的用戶標簽,所述第一裝置直接更新處理所述下文信息標簽并返還結果。
[0100] 較佳的,所述第二裝置分責且專注負責處理對應的用戶標簽。
[0101] 與現有技術相比,本申請所述的更新用戶所滿足的規則的方法通過根據用戶標簽 的數據活躍程度及內容,將用戶標簽劃分為動態的用戶標簽、位置的用戶標簽和滑動的用 戶標簽等不用類的標簽,并針對不同類的標簽采用不同的更新處理方法,尤其是對更新最 為頻繁的動態的用戶標簽采用快速有效的更新處理方法,提高了系統對用戶更新請求的處 理能力和處理速度,進而提高用戶滿足規則的實時更新和查詢以提高用戶數據更新的效 率;
[0102] 進一步的,本申請所述對所述動態的用戶標簽的更新處理方法通過建立若干映射 關系,利用映射關系進行查詢和計算,相當于從細粒度對查詢計算結果進行了緩存,因此大 幅度加快了計算;同時通過對動態的用戶標簽的相關子句表達式進行計算,從計算上進行 了剪枝,故大幅減少了計算量,進而大幅提高了計算效率,進一步提高用戶滿足規則的實時 更新和查詢以提高用戶數據更新的效率。
[0103] 此外,本申請通過建立所述更新用戶所滿足的規則的系統,采用分布式規則計算 架構,包括對建立用戶標簽的劃分與用戶標簽的分布式框架和位置的用戶標簽的計算框 架,實現了用戶標簽的合理分配和實時處理,進一步提高用戶更新請求的處理速度。
【附圖說明】
[0104] 通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它 特征、目的和優點將會變得更明顯:
[0105] 圖1為現有技術中用戶滿足規則的離線批處理方法中Map的簡要流程
[0106] 圖2為現有技術中用戶滿足規則的離線批處理方法中Reduce的簡要流程圖;
[0107] 圖3為現有技術中用戶滿足規則的索引批處理方法的簡要流程圖;
[0108] 圖4為根據本申請一實施例中所述用戶滿足規則的實時更新方法的對用戶標簽 的劃分不意圖;
[0109] 圖5為本申請一實施例中所述更新用戶所滿足的規則的系統框架示意圖;
[0110] 圖6為本申請一實施例中所述更新用戶所滿足的規則的系統中第二引擎框架示 意圖。
[0111] 附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0112] 在本申請一個典型的配置中,終端、服務網絡的設備和可信方均包括一個或多個 處理器(CPU)、輸入/輸出接口、網絡接口和內存。
[0113] 內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/ 或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質 的示例。
[0114] 計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法 或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。 計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、 動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電 可擦除可編程只讀存儲器(EEPR0M)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器 (CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁盤存儲或其他磁性 存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的 界定,計算機可讀介質不包括非暫存電腦可讀媒體(transitory media),如調制的數據信 號和載波。
[0115] 本申請的核心思想是,在實時計算是為了在海量數據一即用戶數量、規則數量以 及更新數量的龐大數據一的此基礎上,對短時間內實時變更的數據進行快速計算,實時返 回結果,幫助受眾群體(例如廣告主或者賣家)迅速查詢到滿足人群。其中實時變更的數 據包括用戶標簽(比如位置信息、成交金額等)的實時更新以及對人群規則的實時創建和 更新。
[0116] 結合上述核心思想,在本申請的一實施例中提供了一種提供用戶滿足規則的實時 更新方法和實時更新系統。通過根據用戶標簽的屬性,包括用戶標簽存儲的數據的具體內 容和數據的活躍程度及內容等,將用戶標簽劃分為動態的用戶標簽、位置的用戶標簽和滑 動的用戶標簽等不用類別的標簽,并針對不同類別的標簽采用不同的更新處理方法,尤其 是對更新最為頻繁的動態的用戶標簽以及內容相對復雜的位置的用戶標簽采用快速有效 的更新處理方法,從而大幅提高用戶更新請求的處理速度,進而提高用戶滿足規則的實時 更新和查詢以提高用戶數據更新的效率,以更高效率的方式提供給受眾群體,實現受眾群 體在秒級/毫秒級實時查詢最近用戶滿足的人群規則。
[0117] 具體地,下面結合附圖及具體實施例對本申請作進一步詳細描述。
[0118] 在本申請的一個方面提供了一種用戶滿足規則的實時更新方法,包括:獲得待更 新用戶的用戶數據,根據所述用戶數據的屬性,將所述用戶數據分成不同類別的多個用戶 標簽;根據所述用戶標簽的類別信息,對所述用戶標簽進行更新處理,以查找變化的用戶標 簽并重新計算所述變化的用戶標簽所滿足的規則。
[0119] 在本申請的一方面,每個用戶的用戶數據都包括一全局識別碼和多個用戶標簽, 當用戶提出更新請求書,獲得待更新用戶的多個用戶標簽。其中,在本申請最優的較佳的實 施例中,根據所述用戶數據的屬性,可以對所述用戶標簽進行分類,所述用戶標簽類別信息 包括動態的用戶標簽、位置的用戶標簽和、滑動的用戶標簽、上下文的用戶標簽和靜態的用 戶標簽等。對所述用戶標簽的分類至少包括動態的用戶標簽,其中所述動態的用戶標簽為 屬性隨環境變化而發生變化的用戶標簽。在較佳的實施例中,;對所述用戶標簽的分類還包 括、位置的用戶標簽和、滑動的用戶標簽,所述位置的用戶標簽為屬性與時間和空間位置相 關的用戶標簽,;所述滑動的用戶標簽為屬性本身不變但隨環境變化而發生變化的用戶標 簽。;在其他實施例中,對所述用戶標簽的分類還可以包括、上下文的用戶標簽和靜態的用 戶標簽。,所述上下文的用戶標簽為屬性隨條件同時發生的用戶標簽,所述靜態的用戶標簽 為屬性固定的用戶標簽。
[0120] 圖4為根據本申請一個方面的對用戶標簽的劃分示意圖,以下結合圖4說明,詳細 說明本申請一較佳一優選的的實施例中不同類別的用戶標簽屬性的具體描述,在本申請一 較佳的實施例中,將所述用戶標簽100劃分為以下幾類:動態的用戶標簽101、位置的用戶 標簽103、滑動的用戶標簽105、上下文的用戶標簽107和靜態的用戶標簽109,所述動態的 用戶標簽101為屬性隨環境變化而發生變化的用戶標簽100,例如用戶購買的商品、用戶的 訂閱信息等,所述位置的用戶標簽103為屬性同時與時間和空間位置相關的用戶標簽100, 例如用戶活動位置等,所述位置的用戶標簽103因為既與時間掛鉤,也與用戶自身空間位 置掛鉤,因此位置的用戶標簽103的計算方式不同于動態的用戶標簽101,所述滑動標簽滑