用戶操作數(shù)據(jù)存儲方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種用戶操作數(shù)據(jù)存儲方法及裝置,屬于計算機(jī)領(lǐng)域。所述方法包括:接收用戶標(biāo)識以及與所述用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù),所述用戶單次操作數(shù)據(jù)包括操作類型;從操作數(shù)據(jù)庫提取與所述用戶標(biāo)識一一對應(yīng)的用戶總操作數(shù)據(jù);將所述用戶單次操作數(shù)據(jù)存儲入所述用戶總操作數(shù)據(jù),然后將所述用戶總操作數(shù)據(jù)存儲入所述操作數(shù)據(jù)庫。本發(fā)明通過根據(jù)用戶標(biāo)識提取該用戶的用戶總操作數(shù)據(jù),并將用戶單次操作數(shù)據(jù)存儲在用戶總操作數(shù)據(jù)中,最后將用戶總操作數(shù)據(jù)存儲入操作數(shù)據(jù)庫,達(dá)到集中存儲同一用戶的用戶操作數(shù)據(jù),便于對同一用戶的用戶操作數(shù)據(jù)進(jìn)行管理維護(hù),間接提高用戶操作數(shù)據(jù)讀取和處理的實(shí)時性的目的。
【專利說明】用戶操作數(shù)據(jù)存儲方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種用戶操作數(shù)據(jù)存儲方法及裝置。
【背景技術(shù)】
[0002]隨著計算機(jī)和網(wǎng)絡(luò)的不斷發(fā)展,人們越來越多的依賴網(wǎng)絡(luò)來獲取自己感興趣的內(nèi)容。為了向用戶提供更好的用戶體驗(yàn),運(yùn)營商往往通過分析用戶歷史操作記錄來推測用戶的興趣類別,以便向用戶推送相關(guān)內(nèi)容。這就需要運(yùn)營商預(yù)先將用戶的歷史操作以數(shù)據(jù)形式存儲起來。
[0003]以用戶在網(wǎng)絡(luò)音樂播放應(yīng)用中對歌曲進(jìn)行操作為例,用戶的每一次操作都可以用一筆用戶操作數(shù)據(jù)來表示,這樣的一筆用戶操作數(shù)據(jù)可以稱為用戶單次操作數(shù)據(jù),用戶單次操作數(shù)據(jù)中可以包括用戶標(biāo)識、歌曲標(biāo)識、操作類型和操作時間等?,F(xiàn)有的用戶操作數(shù)據(jù)存儲方法,將一至多條用戶單次操作數(shù)據(jù)按照時間順序,以表格的形式存儲在關(guān)系數(shù)據(jù)庫中。具體的,請參見圖1所示的操作數(shù)據(jù)組織示意圖,其中,用戶標(biāo)識可以是用戶賬號(圖中以A、B和C分別對應(yīng)用戶A、用戶B和用戶C的用戶標(biāo)識);同一用戶的多條用戶單次操作數(shù)據(jù)在表格中可能不連續(xù),比如,圖1中用戶A的多條用戶單次操作數(shù)據(jù)分別位于表格第1、 第4、第8……第999行。當(dāng)音樂推薦系統(tǒng)需要提取某一用戶的操作數(shù)據(jù)時,需要查找表格中所有包含該用戶的用戶標(biāo)識的行,將查找到的每一行的內(nèi)容提取為一條用戶單次操作數(shù)據(jù),并將由提取到的所有用戶單次操作數(shù)據(jù)所組成的數(shù)據(jù)集作為查找結(jié)果。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005]由于同一用戶的多條用戶單次操作數(shù)據(jù)存儲可能較為分散,當(dāng)需要對同一用戶的所有用戶單次操作數(shù)據(jù)單獨(dú)進(jìn)行管理維護(hù)時,需要根據(jù)用戶標(biāo)識檢索數(shù)據(jù)庫中所有數(shù)據(jù), 管理維護(hù)的過程較為繁雜,并且,當(dāng)需要提取某一用戶的所有操作數(shù)據(jù)時,必須根據(jù)用戶標(biāo)識對整個數(shù)據(jù)庫中所有用戶單次操作數(shù)據(jù)進(jìn)行篩選,每次提取耗費(fèi)大量時間,實(shí)時性較差。
【發(fā)明內(nèi)容】
[0006]為了解決現(xiàn)有技術(shù)中用戶操作數(shù)據(jù)不易管理維護(hù),操作數(shù)據(jù)提取實(shí)時性差的問題,本發(fā)明實(shí)施例提供了一種用戶操作數(shù)據(jù)存儲方法及裝置。所述技術(shù)方案如下:
[0007]—方面,提供了一種用戶操作數(shù)據(jù)存儲方法,所述方法包括:
[0008]接收用戶標(biāo)識以及與所述用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù),所述用戶單次操作數(shù)據(jù)包括操作類型;
[0009]從操作數(shù)據(jù)庫提取與所述用戶標(biāo)識一一對應(yīng)的用戶總操作數(shù)據(jù);
[0010]將所述用戶單次操作數(shù)據(jù)存儲入所述用戶總操作數(shù)據(jù),然后將所述用戶總操作數(shù)據(jù)存儲入所述操作數(shù)據(jù)庫。
[0011]所述用戶總操作數(shù)據(jù)包括至少一個數(shù)據(jù)分區(qū),每個數(shù)據(jù)分區(qū)對應(yīng)一種操作類型;
[0012]所述將所述用戶單次操作數(shù)據(jù)存儲入所述用戶總操作數(shù)據(jù),具體包括:
[0013]根據(jù)所述用戶單次操作數(shù)據(jù)中的操作類型查詢對應(yīng)的數(shù)據(jù)分區(qū);[0014]將所述用戶單次操作數(shù)據(jù)存儲入查詢到的所述數(shù)據(jù)分區(qū)。
[0015]所述用戶單次操作數(shù)據(jù)還包括操作對象標(biāo)識和本次操作時間;
[0016]所述數(shù)據(jù)分區(qū)用于存儲對應(yīng)操作類型的操作對象記錄,每條所述操作對象記錄包 括一個操作對象的操作對象標(biāo)識和所述操作對象在預(yù)定時間段內(nèi)的最近操作時間和總操 作次數(shù);
[0017]所述將所述用戶單次操作數(shù)據(jù)存儲入查詢到的所述數(shù)據(jù)分區(qū),具體包括:
[0018]查詢是否存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近 操作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記 錄;
[0019]如果存在,則將所述操作對象記錄的最近操作時間更新為所述本次操作時間,并 將所述操作對象記錄的總操作次數(shù)+1 ;
[0020]如果不存在,則新增一條操作對象記錄,將新增的操作對象記錄的最近操作時間 設(shè)置為所述本次操作時間,并將新增的操作對應(yīng)記錄中的總操作次數(shù)設(shè)置為I。
[0021]每個數(shù)據(jù)分區(qū)各自擁有預(yù)先設(shè)置的最大操作對象記錄數(shù);
[0022]所述新增一條操作對象記錄之前,所述方法還包括:
[0023]判斷所述數(shù)據(jù)分區(qū)中的當(dāng)前操作對象記錄總數(shù)是否等于所述數(shù)據(jù)分區(qū)的最大操 作對象記錄數(shù);
[0024]如果是,則將所述數(shù)據(jù)分區(qū)中最近操作時間最早的操作對象記錄刪除。
[0025]所述操作數(shù)據(jù)庫為基于固態(tài)硬盤的鍵值數(shù)據(jù)庫。
[0026]另一方面,提供了一種用戶操作數(shù)據(jù)存儲裝置,所述裝置包括:
[0027]接收模塊,用于接收用戶標(biāo)識以及與所述用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù), 所述用戶單次操作數(shù)據(jù)包括操作類型;
[0028]提取模塊,用于從操作數(shù)據(jù)庫提取與所述接收模塊接收到的用戶標(biāo)識一一對應(yīng)的 用戶總操作數(shù)據(jù);
[0029]第一存儲模塊,用于將所述接收模塊接收到的用戶單次操作數(shù)據(jù)存儲入所述提取 模塊提取的用戶總操作數(shù)據(jù);
[0030]第二存儲模塊,用于將所述用戶總操作數(shù)據(jù)存儲入所述操作數(shù)據(jù)庫。
[0031]所述用戶總操作數(shù)據(jù)包括至少一個數(shù)據(jù)分區(qū),每個數(shù)據(jù)分區(qū)對應(yīng)一種操作類型;
[0032]所述第一存儲模塊,包括:
[0033]分區(qū)查詢單元,用于根據(jù)所述用戶單次操作數(shù)據(jù)中的操作類型查詢對應(yīng)的數(shù)據(jù)分 區(qū);
[0034]所述第一存儲模塊,用于將所述用戶單次操作數(shù)據(jù)存儲入所述分區(qū)查詢單元查詢 到的所述數(shù)據(jù)分區(qū)。
[0035]所述用戶單次操作數(shù)據(jù)還包括操作對象標(biāo)識和本次操作時間;
[0036]所述數(shù)據(jù)分區(qū)用于存儲對應(yīng)操作類型的操作對象記錄,每條所述操作對象記錄包 括一個操作對象的操作對象標(biāo)識和所述操作對象在預(yù)定時間段內(nèi)的最近操作時間和總操 作次數(shù);
[0037]所述第一存儲模塊,具體還包括:記錄查詢單元、第一存儲單元和第二存儲單元;
[0038]所述記錄查詢單元,用于查詢是否存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定 時間段內(nèi)的操作對象記錄;
[0039]如果存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作 時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄,則 所述第一存儲單元,用于將所述操作對象記錄的最近操作時間更新為所述本次操作時間, 并將所述操作對象記錄的總操作次數(shù)+1 ;
[0040]如果不存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操 作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄, 則所述第二存儲單元,用于新增一條操作對象記錄,將新增的操作對象記錄的最近操作時 間設(shè)置為所述本次操作時間,并將新增的操作對應(yīng)記錄中的總操作次數(shù)設(shè)置為I。
[0041]每個數(shù)據(jù)分區(qū)各自擁有預(yù)先設(shè)置的最大操作記錄數(shù);
[0042]所述第二存儲單元包括:判斷子單元和刪除子單元;
[0043]判斷子單元,用于在第一存儲模塊將所述用戶單次操作數(shù)據(jù)存儲入查詢到的所述 數(shù)據(jù)分區(qū)之前,判斷所述分區(qū)查詢模塊查詢到的所述數(shù)據(jù)分區(qū)當(dāng)前操作記錄數(shù)是否等于所 述數(shù)據(jù)分區(qū)的最大操作記錄數(shù);
[0044]如果所述判斷子單元判斷查詢到的所述數(shù)據(jù)分區(qū)當(dāng)前操作記錄數(shù)等于所述數(shù)據(jù) 分區(qū)的最大操作記錄數(shù),則所述刪除子單元,用于將最近一次操作時間最早的操作對象記 錄刪除。
[0045]所述操作數(shù)據(jù)庫為基于固態(tài)硬盤的鍵值數(shù)據(jù)庫。
[0046]本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0047]通過根據(jù)用戶標(biāo)識提取該用戶的用戶總操作數(shù)據(jù),并將用戶單次操作數(shù)據(jù)存儲在 用戶總操作數(shù)據(jù)中,最后將用戶總操作數(shù)據(jù)存儲入操作數(shù)據(jù)庫,達(dá)到集中存儲同一用戶的 用戶操作數(shù)據(jù),便于對同一用戶的用戶操作數(shù)據(jù)進(jìn)行管理維護(hù),間接提高用戶操作數(shù)據(jù)讀 取和處理的實(shí)時性的目的。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0049]圖1是本發(fā)明【背景技術(shù)】提供的操作數(shù)據(jù)組織示意圖;
[0050]圖2是本發(fā)明實(shí)施例一提供的用戶操作數(shù)據(jù)存儲方法的方法流程圖;
[0051]圖3是本發(fā)明實(shí)施例二提供的用戶操作數(shù)據(jù)存儲方法的方法流程圖;
[0052]圖4是本發(fā)明實(shí)施例二提供的用戶總操作數(shù)據(jù)的組織結(jié)構(gòu)示意圖;
[0053]圖5是本發(fā)明實(shí)施例三提供的用戶操作數(shù)據(jù)存儲裝置的裝置結(jié)構(gòu)圖;
[0054]圖6是本發(fā)明實(shí)施例三提供的用戶操作數(shù)據(jù)存儲裝置的另一種裝置結(jié)構(gòu)圖;
[0055]圖7是本發(fā)明實(shí)施例三提供的第二存儲單元的裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】[0056]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方 式作進(jìn)一步地詳細(xì)描述。
[0057]實(shí)施例一
[0058]請參見圖2,其示出了本實(shí)施例一提供的用戶操作數(shù)據(jù)存儲方法的方法流程圖,該 方法可以應(yīng)用于存儲用戶操作數(shù)據(jù)。本實(shí)施例一提供的用戶操作數(shù)據(jù)存儲方法可以包括如 下步驟:
[0059]步驟101,接收用戶標(biāo)識以及與該用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù),該用戶單 次操作數(shù)據(jù)包括操作類型;
[0060]用戶的每一次操作都可以用一串文本數(shù)據(jù)來表示,這樣的文本數(shù)據(jù)稱為用戶單次 操作數(shù)據(jù),其中,操作類型為用戶對操作對象的各種操作,比如用戶在音樂播放器中進(jìn)行播 放、下載、收藏、推薦以及刪除等。另外,用戶標(biāo)識可以包含在用戶單次操作數(shù)據(jù)中,也可以 獨(dú)立在用戶單次操作數(shù)據(jù)之外;用戶單次操作數(shù)據(jù)中除了包括用戶標(biāo)識和操作類型之外, 還可以包括操作對象標(biāo)識(比如歌曲ID)以及本次操作時間等。
[0061]步驟102,從操作數(shù)據(jù)庫提取與該用戶標(biāo)識一一對應(yīng)的用戶總操作數(shù)據(jù);
[0062]同一個用戶標(biāo)識對應(yīng)的所有用戶單次操作數(shù)據(jù)都集中存儲在同一條與該用戶標(biāo) 識相關(guān)聯(lián)的數(shù)據(jù)中,這樣的數(shù)據(jù)稱為用戶總操作數(shù)據(jù),每個用戶標(biāo)識在數(shù)據(jù)庫中僅對應(yīng)一 條用戶總操作數(shù)據(jù)。
[0063]實(shí)際應(yīng)用中,操作數(shù)據(jù)庫可以是基于固態(tài)硬盤的鍵值數(shù)據(jù)庫,存儲服務(wù)器或者有 多個存儲服務(wù)器組成的云存儲系統(tǒng)可以將同一用戶的所有單次操作數(shù)據(jù)存儲為一個用戶 總操作數(shù)據(jù),并將用戶總操作數(shù)據(jù)存儲在固態(tài)硬盤中。當(dāng)提取用戶總操作數(shù)據(jù)時,只需要通 過用戶標(biāo)識即可在操作數(shù)據(jù)庫中快速查找并提取用戶總操作數(shù)據(jù)。
[0064]步驟103,將該用戶單次操作數(shù)據(jù)存儲入該用戶總操作數(shù)據(jù),然后將該用戶總操作 數(shù)據(jù)存儲入操作數(shù)據(jù)庫;
[0065]為了便于對用戶歷史操作記錄進(jìn)行分析,可以在用戶總操作數(shù)據(jù)中分區(qū)存儲用戶 單次操作數(shù)據(jù),其中,每個分區(qū)對應(yīng)一種操作類型。
[0066]上述提供的用戶操作數(shù)據(jù)存儲方法,將同一個用戶的所有操作數(shù)據(jù)存儲在一條用 戶總操作記錄中,當(dāng)需要提取該用戶的所有操作數(shù)據(jù)時,只需要根據(jù)用戶標(biāo)識提取該用戶 總操作數(shù)據(jù)即可。
[0067]綜上所述,本實(shí)施例一提供的用戶操作數(shù)據(jù)存儲方法,通過根據(jù)用戶標(biāo)識提取該 用戶的用戶總操作數(shù)據(jù),并將用戶單次操作數(shù)據(jù)存儲在用戶總操作數(shù)據(jù)中,最后將用戶總 操作數(shù)據(jù)存儲入基于固態(tài)硬盤的鍵值數(shù)據(jù)庫,達(dá)到集中存儲同一用戶的用戶操作數(shù)據(jù),便 于對同一用戶的用戶操作數(shù)據(jù)進(jìn)行管理維護(hù),間接提高用戶操作數(shù)據(jù)讀取和處理的實(shí)時性 的目的。
[0068]實(shí)施例二
[0069]為了對實(shí)施例一提供的用戶操作數(shù)據(jù)存儲方法做進(jìn)一步描述,請參見圖3,其以在 多媒體文件播放中的應(yīng)用中為例對該用戶操作數(shù)據(jù)存儲方法進(jìn)行說明。其中,多媒體文件 可以是音頻文件(比如MP3、WMA等格式文件)、視頻文件(比如AV1、WMVB, MP4等格式文件) 等,多媒體文件ID (Identity,身份標(biāo)識號碼)為操作對象標(biāo)識,操作ID為操作標(biāo)識。本發(fā) 明實(shí)施例提供了用戶操作數(shù)據(jù)存儲方法可以包括如下步驟:[0070]步驟201,服務(wù)器接收客戶端發(fā)送的用戶標(biāo)識以及與該用戶標(biāo)識相對應(yīng)的用戶單 次操作數(shù)據(jù),該用戶單次操作數(shù)據(jù)包括操作類型;
[0071]用戶在網(wǎng)絡(luò)多媒體播放應(yīng)用客戶端(比如各類音樂播放器、視頻播放器或內(nèi)嵌于 瀏覽器的音視頻播放插件等)中對多媒體文件的每一次操作都可以用一串文本數(shù)據(jù)來表 示,這樣的文本數(shù)據(jù)稱為用戶單次操作數(shù)據(jù),其中,用戶標(biāo)識可以包含在用戶單次操作數(shù)據(jù) 中,也可以獨(dú)立在用戶單次操作數(shù)據(jù)之外。用戶在客戶端中進(jìn)行一次操作之后,客戶端生成 一條用戶單次操作數(shù)據(jù),并將該用戶單次操作數(shù)據(jù)發(fā)送給服務(wù)器,以便服務(wù)器對用戶操作 數(shù)據(jù)進(jìn)行存儲和分析。
[0072]其中,用戶標(biāo)識可以是表征用戶身份的標(biāo)識符,比如用戶注冊的賬號。用戶對多媒 體文件的操作類型可以分為三種,分別為重要操作、點(diǎn)播操作和刪除操作等,其中,下載、推 薦、收藏以及分享等操作都可以歸類為重要操作;操作類型可以用操作ID的形式表示,比 如,IDl表示重要操作,ID2表示點(diǎn)播操作,ID3表示刪除操作。
[0073]另外,用戶單次操作數(shù)據(jù)中除了包括用戶標(biāo)識和操作類型之外,還可以包括多媒 體文件標(biāo)識(比如歌曲ID或視頻ID等)、本次操作時間等。
[0074]步驟202,服務(wù)器根據(jù)用戶標(biāo)識從操作數(shù)據(jù)庫提取相應(yīng)的用戶總操作數(shù)據(jù),該用戶 總操作數(shù)據(jù)中包括一至多個數(shù)據(jù)分區(qū),每個數(shù)據(jù)分區(qū)對應(yīng)一種操作類型;
[0075]其中,同一個用戶標(biāo)識對應(yīng)的所有用戶單次操作數(shù)據(jù)都集中存儲在同一條與該用 戶標(biāo)識相關(guān)聯(lián)的數(shù)據(jù)流中,這樣的數(shù)據(jù)流稱為用戶總操作數(shù)據(jù)。
[0076]請參見圖4所示的用戶總操作數(shù)據(jù)組織結(jié)構(gòu)示意圖,其中,用戶總操作數(shù)據(jù)最前 部為用戶標(biāo)識(即圖4中的用戶賬號),服務(wù)器提取用戶總操作數(shù)據(jù)時,可以根據(jù)該用戶標(biāo)識 提取相應(yīng)的用戶總操作數(shù)據(jù)。另外,操作數(shù)據(jù)庫可以是基于固態(tài)硬盤的鍵值數(shù)據(jù)庫。
[0077]步驟203,查詢該用戶總操作數(shù)據(jù)中與該用戶單次操作數(shù)據(jù)所包含的操作類型相 對應(yīng)的數(shù)據(jù)分區(qū);
[0078]為了便于對用戶歷史操作記錄進(jìn)行分析,服務(wù)器存儲用戶單次操作數(shù)據(jù)時,可以 在用戶總操作數(shù)據(jù)中按照操作類型對用戶單次操作數(shù)據(jù)進(jìn)行分區(qū)存儲,每個分區(qū)對應(yīng)一種 操作類型。
[0079]步驟204,查詢是否存在操作對象標(biāo)識與該用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相 同,最近操作時間與該用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對 象記錄,如果是,進(jìn)入步驟205,否則,進(jìn)入步驟206 ;
[0080]請參見圖4,其中,每個數(shù)據(jù)分區(qū)中包含有若干條操作對象記錄,操作對象記錄由 多媒體文件ID、操作ID、該多媒體文件在預(yù)定時間段內(nèi)的最近操作時間和總操作次數(shù)組 成;具體的,在本實(shí)施例中,可以將同一天內(nèi)對同一個多媒體文件的同一種操作用同一條操 作對象記錄來存儲,同時標(biāo)記同一天內(nèi)的總操作次數(shù)。
[0081]步驟205,將該操作對象記錄中的最近操作時間更新為該用戶單次操作數(shù)據(jù)中的 本次操作時間,并將該操作對象記錄的操作次數(shù)+1 ;
[0082]具體的,如果查詢到的數(shù)據(jù)分區(qū)中包含有最近操作時間與該用戶單次操作數(shù)據(jù)所 包含的本次操作時間處于同一天,且多媒體文件ID和操作ID與該用戶單次操作數(shù)據(jù)中的 多媒體文件ID和操作ID均相同的操作對象記錄,則將該操作對象記錄的最近一次操作時 間更新為該用戶單次操作數(shù)據(jù)所包含的本次操作時間,并將該操作對象記錄的總操作次數(shù)+ 1 O
[0083]步驟206,判斷該數(shù)據(jù)分區(qū)當(dāng)前操作對象記錄數(shù)是否等于該數(shù)據(jù)分區(qū)的最大操作 對象記錄數(shù),如果是,進(jìn)入步驟207,否則,進(jìn)入步驟208 ;
[0084]請參見圖4,為了權(quán)衡數(shù)據(jù)存儲與處理的速度,壓縮存儲數(shù)據(jù)量,可以對每個數(shù)據(jù) 分區(qū)預(yù)先設(shè)置最大操作對象記錄數(shù),不同數(shù)據(jù)分區(qū)的最大操作對象記錄數(shù)可以相同,也可 以不同,對此,本實(shí)施例不做具體限定。
[0085]如果查詢到的數(shù)據(jù)分區(qū)中不包含最近操作時間與該用戶單次操作數(shù)據(jù)所包含的 本次操作時間處于同一天,且多媒體文件ID和操作ID與該用戶單次操作數(shù)據(jù)中的多媒體 文件ID和操作ID均相同的操作對象記錄,則進(jìn)一步判斷該數(shù)據(jù)分區(qū)當(dāng)前操作對象記錄數(shù) 是否等于該數(shù)據(jù)分區(qū)的最大操作對象記錄數(shù)。具體判斷時,可以根據(jù)用戶總操作數(shù)據(jù)的數(shù) 據(jù)頭中的對應(yīng)數(shù)據(jù)分區(qū)操作對象記錄條數(shù)(即圖4中的重要操作記錄數(shù)、點(diǎn)播操作記錄數(shù) 或刪除記錄操作數(shù))進(jìn)行判斷。
[0086]步驟207,將該數(shù)據(jù)分區(qū)中最近操作時間最早的操作對象記錄刪除;
[0087]如果判斷該數(shù)據(jù)分區(qū)當(dāng)前操作對象記錄數(shù)等于該數(shù)據(jù)分區(qū)的最大操作對象記錄 數(shù),則將該數(shù)據(jù)分區(qū)中最近操作時間最早的操作對象記錄刪除。
[0088]步驟208,新增一條操作對象記錄,將該用戶單次操作數(shù)據(jù)的操作對象標(biāo)識、操作 類型和本次操作時間設(shè)置為該新增操作對象記錄的操作對象標(biāo)識、操作類型和最近操作時 間,并將該新增操作對象記錄的總操作次數(shù)設(shè)為I。
[0089]具體的,在判斷該數(shù)據(jù)分區(qū)當(dāng)前操作對象記錄數(shù)不等于該數(shù)據(jù)分區(qū)的最大操作 對象記錄數(shù),或者,判斷該數(shù)據(jù)分區(qū)當(dāng)前操作對象記錄數(shù)等于該數(shù)據(jù)分區(qū)的最大操作對象 記錄數(shù)且刪除該數(shù)據(jù)分區(qū)中最近操作時間最早的操作對象記錄之后,新增一條操作對象記 錄,將該用戶單次操作數(shù)據(jù)的多媒體文件ID、操作ID和本次操作時間設(shè)置為該新增操作對 象記錄的多媒體文件ID、操作ID和最近操作時間,并將該新增操作對象記錄的操作次數(shù)設(shè) 為I。
[0090]需要說明的是,本實(shí)施例提供的用戶操作數(shù)據(jù)存儲方法僅以用戶對多媒體文件的 操作數(shù)據(jù)為例加以說明,實(shí)際應(yīng)用中,本方法也可以用于存儲其他類型的數(shù)據(jù),對此,本實(shí) 施例不做具體限定。
[0091]綜上所述,本實(shí)施例二提供的用戶操作數(shù)據(jù)存儲方法,通過根據(jù)用戶標(biāo)識提取該 用戶的用戶總操作數(shù)據(jù),并將用戶單次操作數(shù)據(jù)存儲為用戶總操作數(shù)據(jù)中的一條操作對象 記錄,最后將用戶總操作數(shù)據(jù)存儲入基于固態(tài)硬盤的鍵值數(shù)據(jù)庫,達(dá)到集中存儲同一用戶 的用戶操作數(shù)據(jù),便于對同一用戶的用戶操作數(shù)據(jù)進(jìn)行管理維護(hù),間接提高用戶操作數(shù)據(jù) 讀取和處理的實(shí)時性的目的;另外,通過對每個操作分區(qū)設(shè)置最大操作記錄數(shù),達(dá)到壓縮數(shù) 據(jù)量的目的。
[0092]實(shí)施例三
[0093]參見圖5,其示出了本發(fā)明實(shí)施例三提供的用戶操作數(shù)據(jù)存儲裝置的裝置結(jié)構(gòu)圖, 該裝置可以應(yīng)用于在多媒體文件推薦系統(tǒng)中存儲用戶對多媒體文件的操作數(shù)據(jù)。該裝置可 以包括:
[0094]接收模塊401,用于接收用戶標(biāo)識以及與該用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù), 用戶單次操作數(shù)據(jù)包括操作類型;[0095]提取模塊402,用于從操作數(shù)據(jù)庫提取與接收模塊401接收到的用戶標(biāo)識一一對 應(yīng)的用戶總操作數(shù)據(jù);
[0096]第一存儲模塊403,用于將接收模塊401接收到的用戶單次操作數(shù)據(jù)存儲入提取 模塊402提取的用戶總操作數(shù)據(jù);
[0097]第二存儲模塊404,用于將用戶總操作數(shù)據(jù)存儲入操作數(shù)據(jù)庫。
[0098]其中,用戶總操作數(shù)據(jù)包括至少一個數(shù)據(jù)分區(qū),每個數(shù)據(jù)分區(qū)對應(yīng)一種操作類 型;
[0099]請參見圖6,其示出了本實(shí)施例三提供的用戶操作數(shù)據(jù)存儲裝置的另一種裝置結(jié) 構(gòu)圖,其中,第一存儲模塊403,包括:
[0100]分區(qū)查詢單元4031,用于根據(jù)用戶單次操作數(shù)據(jù)中的操作類型查詢對應(yīng)的數(shù)據(jù)分 區(qū);
[0101]第一存儲模塊403,用于將用戶單次操作數(shù)據(jù)存儲入分區(qū)查詢單元4031查詢到的 數(shù)據(jù)分區(qū)。
[0102]另外,用戶單次操作數(shù)據(jù)還包括操作對象標(biāo)識和本次操作時間;并且,數(shù)據(jù)分區(qū)用 于存儲對應(yīng)操作類型的操作對象記錄,每條操作對象記錄包括一個操作對象的操作對象標(biāo) 識和操作對象在預(yù)定時間段內(nèi)的最近操作時間和總操作次數(shù);
[0103]第一存儲模塊403,具體還包括:記錄查詢單元4032、第一存儲單元4033和第二存 儲單元4034 ;
[0104]記錄查詢單元4032,用于查詢是否存在操作對象標(biāo)識與用戶總操作數(shù)據(jù)中的操作 對象標(biāo)識相同,最近操作時間與用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi) 的操作對象記錄;
[0105]如果存在操作對象標(biāo)識與用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時間 與用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄,則第一存儲 單元4033,用于將操作對象記錄的最近操作時間更新為本次操作時間,并將操作對象記錄 的總操作次數(shù)+1 ;
[0106]如果不存在操作對象標(biāo)識與用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時 間與用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄,則第二存 儲單元4034,用于新增一條操作對象記錄,將新增的操作對象記錄的最近操作時間設(shè)置為 本次操作時間,并將新增的操作對應(yīng)記錄中的總操作次數(shù)設(shè)置為I。
[0107]另外,每個數(shù)據(jù)分區(qū)各自擁有預(yù)先設(shè)置的最大操作記錄數(shù);
[0108]請參見圖7,其示出了本實(shí)施例三提供的第二存儲單元的裝置結(jié)構(gòu)圖,其中,第二 存儲單元4034包括:判斷子單元4034a和刪除子單元4034b ;
[0109]判斷子單元4034a,用于在第一存儲模塊403將用戶單次操作數(shù)據(jù)存儲入查詢到 的數(shù)據(jù)分區(qū)之前,判斷分區(qū)查詢模塊查詢到的數(shù)據(jù)分區(qū)當(dāng)前操作記錄數(shù)是否等于數(shù)據(jù)分區(qū) 的最大操作記錄數(shù);
[0110]如果判斷子單元4034a判斷查詢到的數(shù)據(jù)分區(qū)當(dāng)前操作記錄數(shù)等于數(shù)據(jù)分區(qū)的 最大操作記錄數(shù),則刪除子單元4034b,用于將最近一次操作時間最早的操作對象記錄刪 除。
[0111]需要說明的是,上述操作數(shù)據(jù)庫為基于固態(tài)硬盤的鍵值數(shù)據(jù)庫。[0112]綜上所述,本發(fā)明實(shí)施例三提供的用戶操作數(shù)據(jù)存儲裝置,通過根據(jù)用戶標(biāo)識提 取該用戶的用戶總操作數(shù)據(jù),并將用戶單次操作數(shù)據(jù)存儲為用戶總操作數(shù)據(jù)中的一條操作 對象記錄,最后將用戶總操作數(shù)據(jù)存儲入基于固態(tài)硬盤的鍵值數(shù)據(jù)庫,達(dá)到集中存儲同一 用戶的用戶操作數(shù)據(jù),便于對同一用戶的用戶操作數(shù)據(jù)進(jìn)行管理維護(hù),間接提高用戶操作 數(shù)據(jù)讀取和處理的實(shí)時性的目的;另外,通過對每個操作分區(qū)設(shè)置最大操作記錄數(shù),達(dá)到壓 縮數(shù)據(jù)量的目的。
[0113]需要說明的是:上述實(shí)施例提供的用戶操作數(shù)據(jù)存儲裝置在存儲用戶操作數(shù)據(jù) 時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分 配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述 的全部或者部分功能。另外,上述實(shí)施例提供的用戶操作數(shù)據(jù)存儲裝置與用戶操作數(shù)據(jù)存 儲方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
[0114]上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0115]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件 來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀 存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0116]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種用戶操作數(shù)據(jù)存儲方法,其特征在于,所述方法包括:接收用戶標(biāo)識以及與所述用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù),所述用戶單次操作數(shù)據(jù)包括操作類型;從操作數(shù)據(jù)庫提取與所述用戶標(biāo)識一一對應(yīng)的用戶總操作數(shù)據(jù);將所述用戶單次操作數(shù)據(jù)存儲入所述用戶總操作數(shù)據(jù),然后將所述用戶總操作數(shù)據(jù)存儲入所述操作數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的用戶操作數(shù)據(jù)存儲方法,其特征在于,所述用戶總操作數(shù)據(jù)包括至少一個數(shù)據(jù)分區(qū),每個數(shù)據(jù)分區(qū)對應(yīng)一種操作類型;所述將所述用戶單次操作數(shù)據(jù)存儲入所述用戶總操作數(shù)據(jù),具體包括:根據(jù)所述用戶單次操作數(shù)據(jù)中的操作類型查詢對應(yīng)的數(shù)據(jù)分區(qū);將所述用戶單次操作數(shù)據(jù)存儲入查詢到的所述數(shù)據(jù)分區(qū)。
3.根據(jù)權(quán)利要求2所述的用戶操作數(shù)據(jù)存儲方法,其特征在于,所述用戶單次操作數(shù)據(jù)還包括操作對象標(biāo)識和本次操作時間;所述數(shù)據(jù)分區(qū)用于存儲對應(yīng)操作類型的操作對象記錄,每條所述操作對象記錄包括一個操作對象的操作對象標(biāo)識和所述操作對象在預(yù)定時間段內(nèi)的最近操作時間和總操作次數(shù);所述將所述用戶單次操作數(shù)據(jù)存儲入查詢到的所述數(shù)據(jù)分區(qū),具體包括:查詢是否存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄;如果存在,則將所述操作對象記錄的最近操作時間更新為所述本次操作時間,并將所述操作對象記錄的總操作次數(shù)+1 ;如果不存在,則新增一條操作對象記錄,將新增的操作對象記錄的最近操作時間設(shè)置為所述本次操作時間,并將新增的操作對應(yīng)記錄中的總操作次數(shù)設(shè)置為I。
4.根據(jù)權(quán)利要求3所述的用戶操作數(shù)據(jù)存儲方法,其特征在于,每個數(shù)據(jù)分區(qū)各自擁有預(yù)先設(shè)置的最大操作對象記錄數(shù);所述新增一條操作對象記錄之前,所述方法還包括:判斷所述數(shù)據(jù)分區(qū)中的當(dāng)前操作對象記錄總數(shù)是否等于所述數(shù)據(jù)分區(qū)的最大操作對象記錄數(shù);如果是,則將所述數(shù)據(jù)分區(qū)中最近操作時間最早的操作對象記錄刪除。
5.根據(jù)權(quán)利要求1所述的用戶操作數(shù)據(jù)存儲方法,其特征在于,所述操作數(shù)據(jù)庫為基于固態(tài)硬盤的鍵值數(shù)據(jù)庫。
6.一種用戶操作數(shù)據(jù)存儲裝置,其特征在于,所述裝置包括:接收模塊,用于接收用戶標(biāo)識以及與所述用戶標(biāo)識相對應(yīng)的用戶單次操作數(shù)據(jù),所述用戶單次操作數(shù)據(jù)包括操作類型;提取模塊,用于從操作數(shù)據(jù)庫提取與所述接收模塊接收到的用戶標(biāo)識一一對應(yīng)的用戶總操作數(shù)據(jù);第一存儲模塊,用于將所述接收模塊接收到的用戶單次操作數(shù)據(jù)存儲入所述提取模塊提取的用戶總操作數(shù)據(jù);第二存儲模塊,用于將所述用戶總操作數(shù)據(jù)存儲入所述操作數(shù)據(jù)庫。
7.根據(jù)權(quán)利要求6所述的用戶操作數(shù)據(jù)存儲裝置,其特征在于,所述用戶總操作數(shù)據(jù)包括至少一個數(shù)據(jù)分區(qū),每個數(shù)據(jù)分區(qū)對應(yīng)一種操作類型;所述第一存儲模塊,包括:分區(qū)查詢單元,用于根據(jù)所述用戶單次操作數(shù)據(jù)中的操作類型查詢對應(yīng)的數(shù)據(jù)分區(qū);所述第一存儲模塊,用于將所述用戶單次操作數(shù)據(jù)存儲入所述分區(qū)查詢單元查詢到的所述數(shù)據(jù)分區(qū)。
8.根據(jù)權(quán)利要求7所述的用戶操作數(shù)據(jù)存儲裝置,其特征在于,所述用戶單次操作數(shù)據(jù)還包括操作對象標(biāo)識和本次操作時間;所述數(shù)據(jù)分區(qū)用于存儲對應(yīng)操作類型的操作對象記錄,每條所述操作對象記錄包括一個操作對象的操作對象標(biāo)識和所述操作對象在預(yù)定時間段內(nèi)的最近操作時間和總操作次數(shù);所述第一存儲模塊,具體還包括:記錄查詢單元、第一存儲單元和第二存儲單元;所述記錄查詢單元,用于查詢是否存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄;如果存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄,則所述第一存儲單元,用于將所述操作對象記錄的最近操作時間更新為所述本次操作時間,并將所述操作對象記錄的總操作次數(shù)+1 ;如果不存在操作對象標(biāo)識與所述用戶總操作數(shù)據(jù)中的操作對象標(biāo)識相同,最近操作時間與所述用戶總操作數(shù)據(jù)中的本次操作時間處于同一預(yù)定時間段內(nèi)的操作對象記錄,則所述第二存儲單元,用于新增一條操作對象記錄,將新增的操作對象記錄的最近操作時間設(shè)置為所述本次操作時間,并將新增的操作對應(yīng)記錄中的總操作次數(shù)設(shè)置為I。
9.根據(jù)權(quán)利要求8所述的用戶操作數(shù)據(jù)存儲裝置,其特征在于,每個數(shù)據(jù)分區(qū)各自擁有預(yù)先設(shè)置的最大操作記錄數(shù);所述第二存儲單元包括:判·斷子單元和刪除子單元;判斷子單元,用于在第一存儲模塊將所述用戶單次操作數(shù)據(jù)存儲入查詢到的所述數(shù)據(jù)分區(qū)之前,判斷所述分區(qū)查詢模塊查詢到的所述數(shù)據(jù)分區(qū)當(dāng)前操作記錄數(shù)是否等于所述數(shù)據(jù)分區(qū)的最大操作記錄數(shù);如果所述判斷子單元判斷查詢到的所述數(shù)據(jù)分區(qū)當(dāng)前操作記錄數(shù)等于所述數(shù)據(jù)分區(qū)的最大操作記錄數(shù),則所述刪除子單元,用于將最近一次操作時間最早的操作對象記錄刪除。
10.根據(jù)權(quán)利要求6所述的用戶操作數(shù)據(jù)存儲裝置,其特征在于,所述操作數(shù)據(jù)庫為基于固態(tài)硬盤的鍵值數(shù)據(jù)庫。
【文檔編號】G06F17/30GK103577441SQ201210266469
【公開日】2014年2月12日 申請日期:2012年7月30日 優(yōu)先權(quán)日:2012年7月30日
【發(fā)明者】王翔, 劉黎春, 朱靜濤, 范成濤, 周斌, 徐東山, 沈飛, 胡亮, 沈文杰, 潘永祥, 鄒潤謀, 姜鵬先 申請人:騰訊科技(深圳)有限公司