專利名稱:一種數(shù)據(jù)存儲(chǔ)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)存儲(chǔ)方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)的迅速發(fā)展,由諸如微博等社交相關(guān)的服務(wù)所產(chǎn)生的日志文件中的數(shù)據(jù)也是海量的,如何存儲(chǔ)這些日志文件,以備后續(xù)使用(如后續(xù)基于日志文件中的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí))成為一個(gè)亟待解決的問題。在現(xiàn)有技術(shù)中,一般通過hadoop服務(wù)器集群的HDFS文件管理方式來存儲(chǔ)日志文件。具體的,按照時(shí)間將日志文件中的各數(shù)據(jù)劃分為若干數(shù)據(jù)塊,如以天為單位將日志文件中的數(shù)據(jù)劃分為若干數(shù)據(jù)塊(一天的數(shù)據(jù)組合成一個(gè)數(shù)據(jù)塊),并存儲(chǔ)在服務(wù)器上。但是,由于各日志文件的來源有所不同,因此日志文件中的數(shù)據(jù)的格式差別較大,后續(xù)利用存儲(chǔ)的這些數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)時(shí)需要耗費(fèi)大量的時(shí)間對(duì)這些數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,降低了機(jī)器學(xué)習(xí)的效率。而且,日志文件中一般會(huì)詳細(xì)記錄用戶信息和操作信息,如,在微博的日志文件中,一般會(huì)詳細(xì)記錄用戶標(biāo)識(shí)、用戶狀態(tài)(如是否為手機(jī)綁定用戶、是否為達(dá)人用戶、是否為重要用戶等)、操作行為的類別(如發(fā)布微博、轉(zhuǎn)發(fā)微博、關(guān)注其他用戶、被其他用戶關(guān)注等、使用了應(yīng)用)、操作的次數(shù)、操作的對(duì)象(如關(guān)注了哪個(gè)用戶、被哪個(gè)用戶關(guān)注、使用了哪個(gè)應(yīng)用等)、操作行為發(fā)生的時(shí)間等。而在后續(xù)基于這些日志文件中的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)時(shí),往往只根據(jù)其中的狀態(tài)類型數(shù)據(jù)(如用戶是否為手機(jī)綁定用戶、達(dá)人用戶、重要用戶等)和累加類型數(shù)據(jù)(如某個(gè)類別的操作行為的次數(shù))進(jìn)行學(xué)習(xí),并不會(huì)根據(jù)其他數(shù)據(jù)進(jìn)行學(xué)習(xí),也就是說,hadoop服務(wù)器集群保存的日志文件中諸如操作的對(duì)象和操作行為發(fā)生的時(shí)間等數(shù)據(jù)對(duì)于后續(xù)的機(jī)器學(xué)習(xí)而言 是多余的,因此,根據(jù)保存的包括這些多余數(shù)據(jù)在內(nèi)的日志文件進(jìn)行后續(xù)的機(jī)器學(xué)習(xí),也會(huì)降低機(jī)器學(xué)習(xí)的效率。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,用以解決現(xiàn)有技術(shù)中基于存儲(chǔ)的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的效率較低的問題。本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法,包括:服務(wù)器獲取日志文件;并提取所述日志文件中指定類型的數(shù)據(jù),其中,所述指定類型包括狀態(tài)類型和累加類型;以及根據(jù)提取的數(shù)據(jù)的類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,并將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式;所述服務(wù)器根據(jù)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù),對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并及存儲(chǔ)。本申請實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)裝置,包括:
獲取模塊,用于獲取日志文件;提取模塊,用于提取所述日志文件中指定類型的數(shù)據(jù),其中,所述指定類型包括狀態(tài)類型和累加類型;第一合并模塊,用于根據(jù)提取的數(shù)據(jù)類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,并將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式;第二合并模塊,用于根據(jù)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù),對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并及存儲(chǔ)。本申請實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,該方法服務(wù)器獲取日志文件后,提取日志文件中指定類型的數(shù)據(jù),再根據(jù)提取的數(shù)據(jù)的類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,并將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式,最后將轉(zhuǎn)換格式后的數(shù)據(jù)與自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并存儲(chǔ)。通過上述方法,服務(wù)器可從日志文件中僅提取出機(jī)器學(xué)習(xí)所需的數(shù)據(jù),并可將格式不同的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式的數(shù)據(jù)并存儲(chǔ),因此后續(xù)基于存儲(chǔ)的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)時(shí),無需耗費(fèi)大量的時(shí)間清洗數(shù)據(jù),可有效提高機(jī)器學(xué)習(xí)的效率。
圖1為本申請實(shí)施例提供的數(shù)據(jù)存儲(chǔ)過程;圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了提高基于存儲(chǔ)的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的效率,本發(fā)明實(shí)施例僅從日志文件中提取出后續(xù)機(jī)器學(xué)習(xí)需要的數(shù)據(jù),并將提取的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式進(jìn)行存儲(chǔ),可有效提高后續(xù)基于存儲(chǔ)的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的效率。
·
下面結(jié)合附圖對(duì)本申請優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說明。圖1為本申請實(shí)施例提供的數(shù)據(jù)存儲(chǔ)過程,具體包括以下步驟:SlOl:服務(wù)器獲取日志文件。在本發(fā)明實(shí)施例中,服務(wù)器可按照設(shè)定周期獲取日志文件,每次獲取到日志文件后可執(zhí)行下述步驟S102 S103存儲(chǔ)日志文件中的數(shù)據(jù)。其中,服務(wù)器獲取的日志文件中的數(shù)據(jù)詳細(xì)記錄了用戶標(biāo)識(shí)、用戶狀態(tài)、操作行為的類別、操作的次數(shù)、操作的對(duì)象、操作行為發(fā)生的時(shí)間等。S102:提取日志文件中指定類型的數(shù)據(jù),其中,指定類型包括狀態(tài)類型和累加類型。即,服務(wù)器提取日志文件中的狀態(tài)類型數(shù)據(jù)和累加類型數(shù)據(jù)。如,提取記錄有用戶標(biāo)識(shí)、用戶狀態(tài)的數(shù)據(jù)作為狀態(tài)類型數(shù)據(jù),提取記錄有用戶標(biāo)識(shí)、操作類別、操作的次數(shù)的數(shù)據(jù)作為累加類型數(shù)據(jù)。S103:根據(jù)提取的數(shù)據(jù)類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式。在本發(fā)明實(shí)施例中,服務(wù)器提取了狀態(tài)類型數(shù)據(jù)和累加類型數(shù)據(jù)后,可對(duì)具有相同用戶標(biāo)識(shí)和狀態(tài)類別的狀態(tài)類型數(shù)據(jù)進(jìn)行合并,對(duì)具有相同用戶標(biāo)識(shí)和操作類別的累加類型數(shù)據(jù)進(jìn)行合并。
具體的,服務(wù)器可針對(duì)提取的狀態(tài)類型數(shù)據(jù),查找包含相同的用戶標(biāo)識(shí)及狀態(tài)類別的狀態(tài)類型數(shù)據(jù),在查找到的各狀態(tài)類型數(shù)據(jù)中確定生成時(shí)間最晚的狀態(tài)類型數(shù)據(jù),并將生成時(shí)間最晚的狀態(tài)類型數(shù)據(jù)確定為對(duì)查找到的各狀態(tài)類型數(shù)據(jù)進(jìn)行合并后的狀態(tài)類型數(shù)據(jù)。針對(duì)提取的累加類型數(shù)據(jù),查找包含相同的用戶標(biāo)識(shí)及操作類別的累加類型數(shù)據(jù),將查找到的各累加類型數(shù)據(jù)中包含的累加次數(shù)相加的和值作為第一合并累加次數(shù),將以該相同的用戶標(biāo)識(shí)及操作類別、以及得到的第一合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)查找到的各累加類型數(shù)據(jù)進(jìn)行合并后的累加類型數(shù)據(jù)。例如,假設(shè)提取的狀態(tài)類型數(shù)據(jù)如表I所示。
權(quán)利要求
1.一種數(shù)據(jù)存儲(chǔ)方法,其特征在于,包括: 服務(wù)器獲取日志文件;并 提取所述日志文件中指定類型的數(shù)據(jù),其中,所述指定類型包括狀態(tài)類型和累加類型;以及 根據(jù)提取的數(shù)據(jù)的類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,并將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式; 所述服務(wù)器根據(jù)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù),對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并及存儲(chǔ)。
2.如權(quán)利要求1所述的方法,其特征在于,根據(jù)提取的數(shù)據(jù)的類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,具體包括: 針對(duì)提取的狀態(tài)類型數(shù)據(jù),查找包含相同的用戶標(biāo)識(shí)及狀態(tài)類別的狀態(tài)類型數(shù)據(jù),在查找到的各狀態(tài)類型數(shù)據(jù)中確定生成時(shí)間最晚的狀態(tài)類型數(shù)據(jù),并將生成時(shí)間最晚的狀態(tài)類型數(shù)據(jù)確定為對(duì)查找到的各狀態(tài)類型數(shù)據(jù)進(jìn)行合并后的狀態(tài)類型數(shù)據(jù); 針對(duì)提取的累加類型數(shù)據(jù),查找包含相同的用戶標(biāo)識(shí)及操作類別的累加類型數(shù)據(jù),將查找到的各累加類型數(shù)據(jù)中包含的累加次數(shù)相加的和值作為第一合并累加次數(shù),將以所述相同的用戶標(biāo)識(shí)及操作類別、以及得到的第一合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)查找到的各累加類型數(shù)據(jù)進(jìn)行合并后的累加類型數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述服務(wù)器根據(jù)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù),對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并,具體包括: 所述服務(wù)器針對(duì)轉(zhuǎn)換格式后的每條狀態(tài)類型數(shù)據(jù),在自身當(dāng)前保存的數(shù)據(jù)中查找與該狀態(tài)類型數(shù)據(jù)包含相同用戶標(biāo)識(shí)及狀態(tài)類別的數(shù)據(jù),將轉(zhuǎn)換格式后的該狀態(tài)類型數(shù)據(jù)確定為對(duì)該狀態(tài)類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù); 針對(duì)轉(zhuǎn)換格式后的每條累加類型數(shù)據(jù),在自身當(dāng)前保存的數(shù)據(jù)中查找與該累加類型數(shù)據(jù)包含相同用戶標(biāo)識(shí)及操作類別的數(shù)據(jù),將轉(zhuǎn)換格式后的該累加類型數(shù)據(jù)中包含的第一合并累加次數(shù)與查找到的數(shù)據(jù)中包含的累加次數(shù)的和值作為第二合并累加次數(shù),將以所述相同用戶標(biāo)識(shí)及操作類別、以及得到的第二合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)該累加類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,其特征在于,將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式之后,所述方法還包括: 根據(jù)當(dāng)前時(shí)刻,對(duì)轉(zhuǎn)換格式后的每條數(shù)據(jù)設(shè)置時(shí)間戳; 將轉(zhuǎn)換格式后的該狀態(tài)類型數(shù)據(jù)確定為對(duì)該狀態(tài)類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù)之前,所述方法還包括: 確定轉(zhuǎn)換格式后的該狀態(tài)類型數(shù)據(jù)的時(shí)間戳晚于查找到的數(shù)據(jù)的時(shí)間戳; 將以所述相同用戶標(biāo)識(shí)及操作類別、以及得到的第二合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)該累加類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù)之前,所述方法還包括: 確定轉(zhuǎn)換格式后的該累加類型數(shù)據(jù)的時(shí)間戳晚于查找到的數(shù)據(jù)的時(shí)間戳。
5.如權(quán)利要求1所述的方法,其特征在于,對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并之后,所述方法還包括: 確定對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并后發(fā)生變化的數(shù)據(jù);根據(jù)確定的發(fā)生變化的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份。
6.一種數(shù)據(jù)存儲(chǔ)裝置,其特征在于,包括: 獲取模塊,用于獲取日志文件; 提取模塊,用于提取所述日志文件中指定類型的數(shù)據(jù),其中,所述指定類型包括狀態(tài)類型和累加類型; 第一合并模塊,用于根據(jù)提取的數(shù)據(jù)類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,并將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式; 第二合并模塊,用于根據(jù)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù),對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并及存儲(chǔ)。
7.如權(quán)利要求6所述的裝置,其特征在于,所述第一合并模塊具體用于,針對(duì)提取的狀態(tài)類型數(shù)據(jù),查找包含相同的用戶標(biāo)識(shí)及狀態(tài)類別的狀態(tài)類型數(shù)據(jù),在查找到的各狀態(tài)類型數(shù)據(jù)中確定生成時(shí)間最晚的狀態(tài)類型數(shù)據(jù),并將生成時(shí)間最晚的狀態(tài)類型數(shù)據(jù)確定為對(duì)查找到的各狀態(tài)類型數(shù)據(jù)進(jìn)行合并后的狀態(tài)類型數(shù)據(jù);針對(duì)提取的累加類型數(shù)據(jù),查找包含相同的用戶標(biāo)識(shí)及操作 類別的累加類型數(shù)據(jù),將查找到的各累加類型數(shù)據(jù)中包含的累加次數(shù)相加的和值作為第一合并累加次數(shù),將以所述相同的用戶標(biāo)識(shí)及操作類別、以及得到的第一合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)查找到的各累加類型數(shù)據(jù)進(jìn)行合并后的累加類型數(shù)據(jù)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述第二合并模塊具體用于,針對(duì)轉(zhuǎn)換格式后的每條狀態(tài)類型數(shù)據(jù),在自身當(dāng)前保存的數(shù)據(jù)中查找與該狀態(tài)類型數(shù)據(jù)包含相同用戶標(biāo)識(shí)及狀態(tài)類別的數(shù)據(jù),將轉(zhuǎn)換格式后的該狀態(tài)類型數(shù)據(jù)確定為對(duì)該狀態(tài)類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù);針對(duì)轉(zhuǎn)換格式后的每條累加類型數(shù)據(jù),在自身當(dāng)前保存的數(shù)據(jù)中查找與該累加類型數(shù)據(jù)包含相同用戶標(biāo)識(shí)及操作類別的數(shù)據(jù),將轉(zhuǎn)換格式后的該累加類型數(shù)據(jù)中包含的第一合并累加次數(shù)與查找到的數(shù)據(jù)中包含的累加次數(shù)的和值作為第二合并累加次數(shù),將以所述相同用戶標(biāo)識(shí)及操作類別、以及得到的第二合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)該累加類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第一合并模塊還用于,將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式之后,根據(jù)當(dāng)前時(shí)刻,對(duì)轉(zhuǎn)換格式后的每條數(shù)據(jù)設(shè)置時(shí)間戳; 所述第二合并模塊還用于,將轉(zhuǎn)換格式后的該狀態(tài)類型數(shù)據(jù)確定為對(duì)該狀態(tài)類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù)之前,確定轉(zhuǎn)換格式后的該狀態(tài)類型數(shù)據(jù)的時(shí)間戳晚于查找到的數(shù)據(jù)的時(shí)間戳;將以所述相同用戶標(biāo)識(shí)及操作類別、以及得到的第二合并累加次數(shù)構(gòu)成的數(shù)據(jù)確定為對(duì)該累加類型數(shù)據(jù)以及查找到的數(shù)據(jù)進(jìn)行合并后的數(shù)據(jù)之前,確定轉(zhuǎn)換格式后的該累加類型數(shù)據(jù)的時(shí)間戳晚于查找到的數(shù)據(jù)的時(shí)間戳。
10.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 備份模塊,用于在所述第二合并模塊對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并之后,確定對(duì)轉(zhuǎn)換格式后的數(shù)據(jù)以及自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并后發(fā)生變化的數(shù)據(jù),根據(jù)確定的發(fā)生變化的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)存儲(chǔ)方法及裝置,用以解決現(xiàn)有技術(shù)中基于存儲(chǔ)的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)的效率較低的問題。該方法服務(wù)器獲取日志文件后,提取日志文件中指定類型的數(shù)據(jù),再根據(jù)提取的數(shù)據(jù)的類型,對(duì)提取的數(shù)據(jù)進(jìn)行合并,并將合并后的數(shù)據(jù)轉(zhuǎn)換為指定格式,最后將轉(zhuǎn)換格式后的數(shù)據(jù)與自身當(dāng)前保存的數(shù)據(jù)進(jìn)行合并存儲(chǔ)。通過上述方法,服務(wù)器可從日志文件中僅提取出機(jī)器學(xué)習(xí)所需的數(shù)據(jù),并可將格式不同的數(shù)據(jù)轉(zhuǎn)換為統(tǒng)一格式的數(shù)據(jù)并存儲(chǔ),因此后續(xù)基于存儲(chǔ)的數(shù)據(jù)進(jìn)行機(jī)器學(xué)習(xí)時(shí),無需耗費(fèi)大量的時(shí)間清洗數(shù)據(jù),可有效提高機(jī)器學(xué)習(xí)的效率。
文檔編號(hào)G06F17/30GK103235811SQ20131014543
公開日2013年8月7日 申請日期2013年4月24日 優(yōu)先權(quán)日2013年4月24日
發(fā)明者陸偉 申請人:微夢創(chuàng)科網(wǎng)絡(luò)科技(中國)有限公司