欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)處理方法及裝置與流程

文檔序號:11234188閱讀:916來源:國知局
一種數(shù)據(jù)處理方法及裝置與流程

本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及裝置。



背景技術(shù):

對于網(wǎng)站而言,自然會涉及到用戶數(shù)據(jù)(例如,日訪問用戶數(shù)、周訪問用戶數(shù)、月訪問用戶數(shù)等)計(jì)算的相關(guān)問題。計(jì)算用戶數(shù)據(jù)不僅是數(shù)據(jù)分析的基礎(chǔ),也為網(wǎng)站運(yùn)營決策提供大數(shù)據(jù)的支持。

對于數(shù)據(jù)量相對較小網(wǎng)站,通常采用關(guān)系型數(shù)據(jù)庫存儲并計(jì)算用戶數(shù)據(jù),例如,mysql、oracle數(shù)據(jù)庫。計(jì)算用戶數(shù)據(jù)時,可以通過關(guān)系型數(shù)據(jù)庫執(zhí)行sql語句進(jìn)行計(jì)算所需的數(shù)據(jù);或者,數(shù)據(jù)量較大時,使用直接編輯文本數(shù)據(jù)的方式計(jì)算得到所需的數(shù)據(jù)。但是,當(dāng)網(wǎng)站每天訪問用戶達(dá)到億級,或者,訪問網(wǎng)站的次數(shù)達(dá)到千億級別時,用戶數(shù)據(jù)被存放在分布式集群中,不能采用應(yīng)用于關(guān)系型數(shù)據(jù)庫的計(jì)算方式進(jìn)行計(jì)算。因此,基于分布式集群,如何計(jì)算用戶數(shù)據(jù)成為亟需解決的技術(shù)問題。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)處理方法及裝置,計(jì)算得到基于分布式集群的用戶數(shù)據(jù)。具體的技術(shù)方案如下:

第一方面,本申請?zhí)峁┮环N數(shù)據(jù)處理方法,應(yīng)用于分布式存儲系統(tǒng)中,包括:

從所述分布式存儲系統(tǒng)中獲取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù);

獲取所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識;

統(tǒng)計(jì)所述用戶行為數(shù)據(jù)中包含的互不相同的所述用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

可選地,所述預(yù)設(shè)周期為一天,則所述統(tǒng)計(jì)所述用戶行為數(shù)據(jù)中包含的互不相同的所述用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量,包括:

對于一天內(nèi)所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識,逐個進(jìn)行兩兩比較,去除重復(fù)的用戶唯一標(biāo)識,得到互不相同的用戶唯一標(biāo)識集合;

計(jì)算所述用戶唯一標(biāo)識集合中所包含的用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器的日訪問用戶量。

可選地,若所述預(yù)設(shè)周期是一周,則所述統(tǒng)計(jì)所述用戶行為數(shù)據(jù)中包含的互不相同的所述用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量,包括:

查找所述預(yù)設(shè)周期內(nèi)每一天的用戶行為數(shù)據(jù)所包含的互不相同的用戶唯一標(biāo)識,獲得所述目標(biāo)服務(wù)器每一天的日訪問用戶集合,所述日訪問用戶集合包括所述用戶唯一標(biāo)識;

將所述預(yù)設(shè)周期中第二天對應(yīng)的所述日訪問用戶集合與所述預(yù)設(shè)周期中第一天對應(yīng)的所述日訪問用戶集合進(jìn)行合并,并去除合并后的日訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述第二天對應(yīng)的累計(jì)日訪問用戶集合;

從所述預(yù)設(shè)周期中的第三天開始,將當(dāng)天對應(yīng)的所述日訪問用戶集合與前一天對應(yīng)的累計(jì)日訪問用戶集合進(jìn)行合并,并去除合并后的日訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述當(dāng)天對應(yīng)的累計(jì)日訪問用戶集合,直到所述預(yù)設(shè)周期中的最后一天結(jié)束,計(jì)算得到所述目標(biāo)服務(wù)器的周訪問用戶量。

可選地,若所述預(yù)設(shè)周期為一個月,則所述統(tǒng)計(jì)所述用戶行為數(shù)據(jù)中包含的互不相同的所述用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量,包括:

根據(jù)所述預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù),獲得所述目標(biāo)服務(wù)器在所述預(yù)設(shè)周期內(nèi)每一周對應(yīng)的周訪問用戶集合,所述周訪問集合包含在一周內(nèi)訪問所述目標(biāo)服務(wù)器的全部互不相同的用戶唯一標(biāo)識;

將所述預(yù)設(shè)周期中第二周對應(yīng)的周訪問用戶集合與第一周對應(yīng)的周訪問用戶集合進(jìn)行合并,并去除合并后的周訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述第二周對應(yīng)的累計(jì)周訪問用戶集合;

從所述預(yù)設(shè)周期中的第三周開始,將本周對應(yīng)的周訪問用戶集合與前一周對應(yīng)的累計(jì)周訪問用戶集合進(jìn)行合并,并去除合并后的周訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述本周對應(yīng)的累計(jì)周訪問用戶集合,直到所述預(yù)設(shè)周期中的最后一個完整周,得到第四周對應(yīng)的累計(jì)周訪問用戶集合;

將所述預(yù)設(shè)周期內(nèi)不夠一個完整周的剩余天數(shù)對應(yīng)的日訪問用戶集合進(jìn)行合并,得到剩余累計(jì)日訪問用戶集合;

將所述剩余累計(jì)日訪問用戶集合與所述第四周對應(yīng)的累計(jì)周訪問用戶集合進(jìn)行合并,并去除合并后的訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述預(yù)設(shè)周期對應(yīng)的月訪問用戶集合;

計(jì)算所述月訪問用戶集合中包含的用戶唯一標(biāo)識,得到所述預(yù)設(shè)周期的月訪問用戶量。

可選地,所述方法還包括:輸出所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

第二方面,本申請還提供一種數(shù)據(jù)處理裝置,應(yīng)用于分布式存儲系統(tǒng)中,包括:

第一獲取單元,用于從所述分布式存儲系統(tǒng)中獲取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù);

第二獲取單元,用于獲取所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識;

統(tǒng)計(jì)單元,用于統(tǒng)計(jì)所述用戶行為數(shù)據(jù)中包含的互不相同的所述用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

可選地,所述預(yù)設(shè)周期為一天,則所述統(tǒng)計(jì)單元,包括:

第一去重子單元,用于將一天內(nèi)所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識,逐個進(jìn)行兩兩比較,去除重復(fù)的用戶唯一標(biāo)識,得到互不相同的用戶唯一標(biāo)識集合;

第一計(jì)算子單元,用于計(jì)算所述用戶唯一標(biāo)識集合中所包含的用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器的日訪問用戶量。

可選地,若所述預(yù)設(shè)周期是一周,則所述統(tǒng)計(jì)單元,包括:

第一獲取子單元,用于查找所述預(yù)設(shè)周期內(nèi)每一天的用戶行為數(shù)據(jù)所包含的互不相同的用戶唯一標(biāo)識,獲得所述目標(biāo)服務(wù)器每一天的日訪問用戶集合,所述日訪問用戶集合包括所述用戶唯一標(biāo)識;

第二去重子單元,用于將所述預(yù)設(shè)周期中第二天對應(yīng)的所述日訪問用戶集合與所述預(yù)設(shè)周期中第一天對應(yīng)的所述日訪問用戶集合進(jìn)行合并,并去除合并后的日訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述第二天對應(yīng)的累計(jì)日訪問用戶集合;

第三去重子單元,用于從所述預(yù)設(shè)周期中的第三天開始,將當(dāng)天對應(yīng)的所述日訪問用戶集合與前一天對應(yīng)的累計(jì)日訪問用戶集合進(jìn)行合并,并去除合并后的日訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述當(dāng)天對應(yīng)的累計(jì)日訪問用戶集合,直到所述預(yù)設(shè)周期中的最后一天結(jié)束;

第二計(jì)算子單元,用于計(jì)算得到所述目標(biāo)服務(wù)器的周訪問用戶量。

可選地,若所述預(yù)設(shè)周期為一個月,則所述統(tǒng)計(jì)單元,包括:

第二獲取子單元,用于根據(jù)所述預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù),獲得所述目標(biāo)服務(wù)器在所述預(yù)設(shè)周期內(nèi)每一周對應(yīng)的周訪問用戶集合,所述周訪問集合包含在一周內(nèi)訪問所述目標(biāo)服務(wù)器的全部互不相同的用戶唯一標(biāo)識;

第四去重子單元,用于將所述預(yù)設(shè)周期中第二周對應(yīng)的周訪問用戶集合與第一周對應(yīng)的周訪問用戶集合進(jìn)行合并,并去除合并后的周訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述第二周對應(yīng)的累計(jì)周訪問用戶集合;

第五去重子單元,用于從所述預(yù)設(shè)周期中的第三周開始,將本周對應(yīng)的周訪問用戶集合與前一周對應(yīng)的累計(jì)周訪問用戶集合進(jìn)行合并,并去除合并后的周訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述本周對應(yīng)的累計(jì)周訪問用戶集合,直到所述預(yù)設(shè)周期中的最后一個完整周,得到第四周對應(yīng)的累計(jì)周訪問用戶集合;

第六去重子單元,用于將所述預(yù)設(shè)周期內(nèi)不夠一個完整周的剩余天數(shù)對應(yīng)的日訪問用戶集合進(jìn)行合并,得到剩余累計(jì)日訪問用戶集合;

第七去重子單元,用于將所述剩余累計(jì)日訪問用戶集合與所述第四周對應(yīng)的累計(jì)周訪問用戶集合進(jìn)行合并,并去除合并后的訪問用戶集合中重復(fù)的用戶唯一標(biāo)識,得到所述預(yù)設(shè)周期對應(yīng)的月訪問用戶集合;

第三計(jì)算子單元,用于計(jì)算所述月訪問用戶集合中包含的用戶唯一標(biāo)識,得到所述預(yù)設(shè)周期的月訪問用戶量。

可選地,還包括:

輸出單元,用于輸出所述目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法,從分布式存儲系統(tǒng)中獲取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù);并獲取所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識;然后,統(tǒng)計(jì)獲得的用戶行為數(shù)據(jù)所包含的互不相同的用戶唯一標(biāo)識的數(shù)量,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量,例如,預(yù)設(shè)周期內(nèi)訪問目標(biāo)服務(wù)器的用戶數(shù)量;利用該方法實(shí)現(xiàn)了對基于分布式存儲系統(tǒng)所存儲的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1示出了本申請實(shí)施例一種分布式數(shù)據(jù)處理系統(tǒng)架構(gòu)的框圖;

圖2示出了本申請實(shí)施例一種數(shù)據(jù)處理方法的流程圖;

圖3示出了本申請實(shí)施例另一種數(shù)據(jù)處理方法的流程圖;

圖4示出了本申請實(shí)施例又一種數(shù)據(jù)處理方法的流程圖;

圖5示出了本申請實(shí)施例再一種數(shù)據(jù)處理方法的流程圖;

圖6示出了本申請實(shí)施例一種數(shù)據(jù)處理裝置的框圖;

圖7示出了本申請實(shí)施例一種統(tǒng)計(jì)單元的框圖;

圖8示出了本申請實(shí)施例另一種統(tǒng)計(jì)單元的框圖;

圖9示出了本申請實(shí)施例又一種統(tǒng)計(jì)單元的框圖;

圖10示出了本申請實(shí)施例另一種數(shù)據(jù)處理裝置的框圖。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

請參見圖1,示出了本申請實(shí)施例一種分布式數(shù)據(jù)處理系統(tǒng)架構(gòu)的框圖,該架構(gòu)包括:日志數(shù)據(jù)收集系統(tǒng)100、hadoop分布式文件系統(tǒng)(hadoopdistributedfilesystem,hdfs)200和數(shù)據(jù)計(jì)算系統(tǒng)300。

日志數(shù)據(jù)收集系統(tǒng)100可以由flume系統(tǒng)實(shí)現(xiàn),flume是分布式的日志收集系統(tǒng),它將各個服務(wù)器中的日志數(shù)據(jù)收集起來并送到指定的目的地,例如,hdfs。

在本申請實(shí)施例中,日志數(shù)據(jù)收集系統(tǒng)100用于收集用戶行為記錄日志,這些用戶行為記錄日志可以是每天應(yīng)用程序(application,app)、個人計(jì)算機(jī)(personalcomputer,pc)客戶端等平臺的用戶行為記錄。

flume的核心是把數(shù)據(jù)從數(shù)據(jù)輸入端收集起來,再將收集到的數(shù)據(jù)通過數(shù)據(jù)輸出端送到指定的目的地。flume將數(shù)據(jù)輸入端設(shè)置為用戶行為日志,將數(shù)據(jù)輸出端設(shè)置為hdfs,將讀取得到的日志文件轉(zhuǎn)換成指定的存儲形式存儲到hdfs中。hdfs每天分區(qū)域存儲接收到的用戶行為數(shù)據(jù)(或,稱為用戶行為日志)。

數(shù)據(jù)計(jì)算系統(tǒng)300可以通過mapreduce系統(tǒng)實(shí)現(xiàn),mapreduce系統(tǒng)主要包括mapper和reducer兩個抽象類。mapper端主要負(fù)責(zé)對數(shù)據(jù)進(jìn)行分析處理,最終轉(zhuǎn)化為key-value的數(shù)據(jù)結(jié)構(gòu);reducer端主要是獲取mapper出來的結(jié)果,對結(jié)果進(jìn)行統(tǒng)計(jì)。

本申請?zhí)峁┑臄?shù)據(jù)處理方法主要應(yīng)用于數(shù)據(jù)計(jì)算系統(tǒng)中,下面將詳細(xì)介紹數(shù)據(jù)處理方法的具體實(shí)施過程。

請參見圖2,示出了本申請實(shí)施例一種數(shù)據(jù)處理方法的流程圖,該方法應(yīng)用于圖1所示分布式系統(tǒng)中的數(shù)據(jù)計(jì)算系統(tǒng)300中。如圖2所示,該方法主要包括以下步驟:

s110,從分布式存儲系統(tǒng)中讀取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù)。

預(yù)設(shè)周期可以根據(jù)實(shí)際需求設(shè)定,例如,一天、一周、一個月等。

mapreduce中的map函數(shù)先從hdfs中讀取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù)。

目標(biāo)服務(wù)器即想要分析用戶行為數(shù)據(jù)的網(wǎng)站或應(yīng)用程序?qū)?yīng)的服務(wù)器,可以根據(jù)需求指定任意一個網(wǎng)站或應(yīng)用程序。指定目標(biāo)服務(wù)器后,需要配置圖1所示的分布式數(shù)據(jù)處理系統(tǒng)中的相應(yīng)參數(shù),例如,日志收集的數(shù)據(jù)輸入端。

s120,獲取用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識。

map函數(shù)讀取用戶行為數(shù)據(jù)后,獲取該用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識。例如,用戶唯一標(biāo)識可以是用戶在目標(biāo)服務(wù)器提供的平臺注冊的賬戶、或者,用戶所使用的終端設(shè)備的唯一標(biāo)識碼等能夠唯一標(biāo)識一個用戶的信息。

s130,統(tǒng)計(jì)用戶行為數(shù)據(jù)中包含的互不相同的所述用戶唯一標(biāo)識的數(shù)量,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

mapreduce中的reduce函數(shù)接收map函數(shù)返回的包含用戶唯一標(biāo)識的數(shù)據(jù),并對map函數(shù)返回的數(shù)據(jù)中的用戶唯一標(biāo)識進(jìn)行去重操作,即去除用戶行為數(shù)據(jù)中出現(xiàn)的重復(fù)的用戶唯一標(biāo)識,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

本實(shí)施例提供的數(shù)據(jù)處理方法,從分布式存儲系統(tǒng)中獲取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù);并獲取所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識;然后,統(tǒng)計(jì)獲得的用戶行為數(shù)據(jù)所包含的互不相同的用戶唯一標(biāo)識的數(shù)量,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量,例如,預(yù)設(shè)周期內(nèi)訪問目標(biāo)服務(wù)器的用戶數(shù)量;利用該方法實(shí)現(xiàn)了對基于分布式存儲系統(tǒng)所存儲的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算,而且,該方法操作簡單,運(yùn)算速度快。

請參見圖3,示出了本申請實(shí)施例另一種數(shù)據(jù)處理方法的流程圖,本實(shí)施例用于計(jì)算目標(biāo)服務(wù)器的日訪問用戶數(shù)量。如圖3所示,該方法可以包括以下步驟:

s210,從分布式存儲系統(tǒng)中讀取目標(biāo)服務(wù)器對應(yīng)的每天的用戶行為數(shù)據(jù)。

mapreduce中的map函數(shù)先從hdfs中讀取目標(biāo)服務(wù)器在一天內(nèi)的用戶行為數(shù)據(jù)。

s220,獲取每天的用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識。

map函數(shù)從每天的用戶行為數(shù)據(jù)中獲取用戶唯一標(biāo)識,并返回給reduce函數(shù)。

s230,對于用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識,去除重復(fù)的用戶唯一標(biāo)識,得到當(dāng)天的日訪問用戶集合。

reduce函數(shù)逐個比較一天內(nèi)的用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識是否存在重復(fù)的用戶唯一標(biāo)識,若存在重復(fù)的用戶唯一標(biāo)識,則去除重復(fù)的用戶唯一標(biāo)識,即相同的用戶唯一標(biāo)識只保留一個。

實(shí)際過程中可能存在如下情況,某個用戶一天內(nèi)多次訪問目標(biāo)服務(wù)器,則用戶行為日志中會存在多條包含同一用戶唯一標(biāo)識的用戶訪問數(shù)據(jù);當(dāng)統(tǒng)計(jì)目標(biāo)服務(wù)器的日訪問用戶量(即統(tǒng)計(jì)每天訪問目標(biāo)服務(wù)器的不同用戶的總量)時,需要去除重復(fù)訪問的用戶量。例如,用戶a一天內(nèi)訪問了3次目標(biāo)服務(wù)器,統(tǒng)計(jì)日訪問用戶量時,用戶a的用戶數(shù)是1。

s240,計(jì)算所述日訪問用戶集合所包含的用戶唯一標(biāo)識的數(shù)量,得到目標(biāo)服務(wù)器的日訪問用戶量。

s230中得到的用戶唯一標(biāo)識集合中的用戶唯一標(biāo)識互不相同,因此,reduce函數(shù)統(tǒng)計(jì)該日訪問用戶集合中包含的用戶唯一標(biāo)識的數(shù)量即可得到當(dāng)天訪問目標(biāo)服務(wù)器的用戶數(shù)量。

本實(shí)施例提供的數(shù)據(jù)處理方法,從分布式存儲系統(tǒng)中讀取一天內(nèi)訪問目標(biāo)服務(wù)器的用戶行為數(shù)據(jù),并從用戶行為數(shù)據(jù)中獲取用戶唯一標(biāo)識,然后對用戶唯一標(biāo)識進(jìn)行去重,得到一天內(nèi)訪問目標(biāo)服務(wù)器的所有不同的用戶唯一標(biāo)識,最終得到該目標(biāo)服務(wù)器的日訪問用戶量。利用該方法可以實(shí)現(xiàn)對分布式存儲系統(tǒng)中的用戶數(shù)據(jù)的統(tǒng)計(jì)和計(jì)算,而且,該方法操作簡單,運(yùn)算速度快。

請參見圖4,示出了本申請實(shí)施例又一種數(shù)據(jù)處理方法的流程圖,本實(shí)施例用于計(jì)算目標(biāo)服務(wù)器在一周內(nèi)的訪問用戶數(shù)量,即,周訪問用戶量。如圖4所示,該方法可以包括以下步驟:

s310,從分布式存儲系統(tǒng)中讀取目標(biāo)服務(wù)器一周內(nèi)的用戶行為數(shù)據(jù)。

在本申請的一個實(shí)施例中,一周可以是星期一到星期日的自然周;在本申請的另一個實(shí)施例中,一周可以是連續(xù)的7天,并不限定為從星期一到星期日。

s320,獲取一周內(nèi)每一天的日訪問用戶集合。

reduce函數(shù)按照圖3所示的獲得日訪問用戶量的方式得到一周內(nèi)每一天的日訪問用戶集合,日訪問用戶集合包含一天內(nèi)訪問目標(biāo)服務(wù)器的所有互不相同的用戶對應(yīng)的用戶唯一標(biāo)識。

例如,用d1表示一周內(nèi)第一天的日訪問用戶集合,d2、d3、d4、d5、d6和d7分別表示一周內(nèi)第二天、第三天、第四天、第五天、第六天和第七天的日訪問用戶集合。需要說明的是,此處一周內(nèi)的第一天不一定是一個自然周的第一天。

s330,將d2與d1進(jìn)行合并、去重,得到第二天對應(yīng)的累計(jì)日訪問用戶集合r1。

如果某個用戶在第一天和第二天都訪問了目標(biāo)服務(wù)器,則在統(tǒng)計(jì)時只將該用戶統(tǒng)計(jì)一次。

reduce函數(shù)將d1和d2進(jìn)行合并,并去除d1和d2所包含的重復(fù)用戶唯一標(biāo)識,得到第二天對應(yīng)的累計(jì)日訪問用戶集合r1。例如,d1包括四個用戶分別是id1、id3、id4、id5;d2包括id1、id2、id4、id7這四個用戶,將d1與d2合并后得到的r1包括id1、id2、id3、id4、id5、id7這六個用戶。

s340,將d3與r1進(jìn)行合并、去重,得到第三天對應(yīng)的累計(jì)日訪問用戶集合r2。

d3與r1合并的過程與上述的d1、d2合并過程相同,刪除重復(fù)的用戶唯一標(biāo)識,得到前三天的累計(jì)訪問用戶集合r2。

s350,將d4與r2進(jìn)行合并、去重,得到第四天對應(yīng)的累計(jì)日訪問用戶集合r3。

r3表示一周內(nèi)前四天的累計(jì)訪問用戶集合。

s360,將d5與r3進(jìn)行合并、去重,得到第五天對應(yīng)的累計(jì)日訪問用戶集合r4。

r4表示一周內(nèi)前五天的累計(jì)訪問用戶集合。

s370,將d6與r4進(jìn)行合并、去重,得到第六天對應(yīng)的累計(jì)日訪問用戶集合r5。

r5表示一周內(nèi)前六天的累計(jì)訪問用戶集合。

s380,將d7與r5進(jìn)行合并、去重,得到第七天對應(yīng)的累計(jì)日訪問用戶集合r6。

r6表示一周內(nèi)七天的累計(jì)訪問用戶集合,即,周訪問用戶集合。

s390,統(tǒng)計(jì)r6內(nèi)包含的用戶唯一標(biāo)識,得到目標(biāo)服務(wù)器的周訪問用戶量。

由于r6即一周內(nèi)七天的累計(jì)訪問用戶集合,所以,只需要統(tǒng)計(jì)r6中所包含的用戶唯一標(biāo)識的數(shù)據(jù)即可得到本周訪問目標(biāo)服務(wù)器的不同用戶的數(shù)量。

本實(shí)施例提供的數(shù)據(jù)處理方法,能夠計(jì)算得到一周內(nèi)訪問目標(biāo)服務(wù)器的用戶數(shù)量。首先,獲取一周內(nèi)每一天對應(yīng)的日訪問用戶集合,并將第一天的日訪問用戶集合與第二天的日訪問用戶集合進(jìn)行合并、去重,得到前兩天的累計(jì)日訪問用戶集合;然后,從第三天開始將當(dāng)天的日訪問用戶集合與前一天對應(yīng)的累計(jì)日訪問用戶集合進(jìn)行合并、去重,得到該當(dāng)天對應(yīng)的累計(jì)日訪問用戶集合,直到本周的最后一天結(jié)束,得到本周的累計(jì)日訪問用戶集合。最后,統(tǒng)計(jì)本周的累計(jì)日訪問集合所包含的用戶唯一標(biāo)識的數(shù)量,得到周訪問用戶量。利用該方法可以實(shí)現(xiàn)對分布式存儲系統(tǒng)中的周訪問用戶數(shù)量的統(tǒng)計(jì)和計(jì)算,而且,該方法操作簡單,運(yùn)算速度快。

請參見圖5,示出了本申請實(shí)施例再一種數(shù)據(jù)處理方法的流程圖,本實(shí)施例中預(yù)設(shè)周期是一個月,如圖5所示,該方法可以包括以下步驟:

s410,從分布式存儲系統(tǒng)中獲取目標(biāo)服務(wù)器在一個月內(nèi)的用戶行為數(shù)據(jù)。

s420,獲取目標(biāo)服務(wù)器對應(yīng)的一個月內(nèi)每一周的周訪問用戶集合。

該周訪問用戶集合根據(jù)上述圖4所示的方法實(shí)施例獲得,此處不再贅述。

w1、w2、w3、w4分別表示一個月內(nèi)第一、第二、第三、第四周的周訪問用戶集合。

s430,將w1和w2進(jìn)行合并、去重,得到第二周對應(yīng)的累計(jì)周訪問用戶集合t1。

利用reduce函數(shù)將w1和w2進(jìn)行合并,并去除合并后的周訪問用戶集合所包含的重復(fù)的用戶唯一標(biāo)識,得到前兩周訪問目標(biāo)服務(wù)器的累計(jì)周訪問用戶集合t1。

s440,將w3與t1進(jìn)行合并、去重,得到第三周對應(yīng)的累計(jì)周訪問用戶集合t2。

t2表示前三周訪問目標(biāo)服務(wù)器的累計(jì)周訪問用戶集合。

s450,w4與t2進(jìn)行合并、去重,得到第四周對應(yīng)的累計(jì)周訪問用戶集合t3。

t3表示前四周訪問目標(biāo)服務(wù)器的累計(jì)周訪問用戶集合。

s460,將一個月內(nèi)除四個完整周后剩余的天數(shù)對應(yīng)的日訪問用戶集合進(jìn)行合并、去重,得到剩余累計(jì)日訪問用戶集合。

例如,一個月有30天包括4個完整周還剩余2天,此步驟是將剩余的2天對應(yīng)的日訪問用戶集合進(jìn)行合并、去重,得到剩余累計(jì)日訪問用戶集合r1。

s470,將r1與t3進(jìn)行合并、去重,得到月訪問用戶集合y1。

s480,統(tǒng)計(jì)月訪問用戶集合所包含的用戶唯一標(biāo)識,得到月訪問用戶量。

統(tǒng)計(jì)y1所包含的用戶唯一標(biāo)識的數(shù)量,得到月訪問用戶量。

本實(shí)施例提供的數(shù)據(jù)處理方法,能夠計(jì)算一個月內(nèi)訪問目標(biāo)服務(wù)器的累計(jì)用戶數(shù)量。首先,獲取一個月內(nèi)每個完整周對應(yīng)的周訪問用戶集合;然后,將第一周與第二周的周訪問用戶集合進(jìn)行合并、去重,得到前兩周的累計(jì)周訪問用戶集合;將第三周的周訪問用戶集合與前兩周累計(jì)周訪問用戶集合進(jìn)行合并、去重,得到一個月的累計(jì)訪問用戶集合,最后,統(tǒng)計(jì)該累計(jì)訪問用戶集合所包含的用戶唯一標(biāo)識即可計(jì)算得到一個月內(nèi)的累計(jì)訪問用戶數(shù)量。利用該方法可以實(shí)現(xiàn)對分布式存儲系統(tǒng)中的周訪問用戶數(shù)量的統(tǒng)計(jì)和計(jì)算,而且,該方法操作簡單,運(yùn)算速度快。

對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。

請參見圖6,示出了本申請實(shí)施例一種數(shù)據(jù)處理裝置的框圖,該裝置應(yīng)用于分布式存儲系統(tǒng)中,如圖6所示,該裝置包括:第一獲取單元110、第二獲取單元120和統(tǒng)計(jì)單元130。

第一獲取單元110,用于從分布式存儲系統(tǒng)中讀取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù)。

預(yù)設(shè)周期可以根據(jù)實(shí)際需求設(shè)定,例如,一天、一周、一個月等。用戶行為數(shù)據(jù)即用戶訪問目標(biāo)服務(wù)器所產(chǎn)生的日志文件,

目標(biāo)服務(wù)器即想要分析用戶行為數(shù)據(jù)的網(wǎng)站或應(yīng)用程序?qū)?yīng)的服務(wù)器,可以根據(jù)需求指定任意一個網(wǎng)站或應(yīng)用程序。指定目標(biāo)服務(wù)器后,需要配置圖1所示的分布式數(shù)據(jù)處理系統(tǒng)中的相應(yīng)參數(shù),例如,日志收集的數(shù)據(jù)輸入端。

第二獲取單元120,用于獲取用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識。

map函數(shù)讀取用戶行為數(shù)據(jù)后,獲取該用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識。

統(tǒng)計(jì)單元130,用于統(tǒng)計(jì)用戶行為數(shù)據(jù)中包含的互不相同的用戶唯一標(biāo)識的數(shù)量,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

mapreduce中的reduce函數(shù)接收map函數(shù)返回的包含用戶唯一標(biāo)識的數(shù)據(jù),并對map函數(shù)返回的數(shù)據(jù)中的用戶唯一標(biāo)識進(jìn)行去重操作,即去除用戶行為數(shù)據(jù)中出現(xiàn)的重復(fù)的用戶唯一標(biāo)識,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

在本申請的一個實(shí)施例中預(yù)設(shè)周期為一天,如圖7所示,統(tǒng)計(jì)單元130包括:第一去重子單元1311和第一計(jì)算子單元1312。

第一去重子單元1311,用于將一天內(nèi)用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識進(jìn)行去重,得到互不相同的用戶唯一標(biāo)識集合。

第一計(jì)算子單元1312,用于計(jì)算用戶唯一標(biāo)識集合中所包含的用戶唯一標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器的日訪問用戶量。

在本申請的另一個實(shí)施例中,所述預(yù)設(shè)周期是一周,如圖8所示,統(tǒng)計(jì)單元130包括:第一獲取子單元1321、第二去重子單元1322、第三去重子單元1323和第二計(jì)算子單元1324。

第一獲取子單元1321,用于查找一周內(nèi)每一天的用戶行為數(shù)據(jù)所包含的互不相同的用戶唯一標(biāo)識,獲得目標(biāo)服務(wù)器每一天的日訪問用戶集合;

日訪問用戶集合包括一天內(nèi)訪問目標(biāo)服務(wù)器的所有不同用戶的用戶唯一標(biāo)識。第一獲取子單元用于獲取一周內(nèi)第一天訪問目標(biāo)服務(wù)器的日訪問用戶集合。

第二去重子單元1322,用于將一周內(nèi)第二天對應(yīng)的所述日訪問用戶集合與所述預(yù)設(shè)周期中第一天對應(yīng)的日訪問用戶集合進(jìn)行合并、去重,得到所述第二天對應(yīng)的累計(jì)日訪問用戶集合。

第二天的累計(jì)日訪問用戶集合是一周內(nèi)前兩天訪問目標(biāo)服務(wù)器的所有不同用戶的集合。

第三去重子單元1323,用于從一周內(nèi)的第三天開始,將當(dāng)天對應(yīng)的日訪問用戶集合與前一天對應(yīng)的累計(jì)日訪問用戶集合進(jìn)行合并、去重,得到所述當(dāng)天對應(yīng)的累計(jì)日訪問用戶集合,直到所述預(yù)設(shè)周期中的最后一天結(jié)束,得到本周的周訪問用戶集合;

從一周的第三天開始,將當(dāng)天的日訪問用戶集合與本周內(nèi)當(dāng)天之前的累計(jì)日訪問用戶集合進(jìn)行合并、去重,直到本周的最后一天結(jié)束,得到本周的周訪問用戶集合。

第二計(jì)算子單元1324,用于計(jì)算周訪問用戶集合所包含的用戶標(biāo)識的數(shù)量,得到所述目標(biāo)服務(wù)器的周訪問用戶量。

在本申請的又一個實(shí)施例中,預(yù)設(shè)周期為一個月,如圖9所示,統(tǒng)計(jì)單元130包括:第二獲取子單元1331、第四去重子單元1332、第五去重子單元1333、第六去重子單元1334、第七去重子單元1335和第三計(jì)算子單元1336。

第二獲取子單元1331,用于根據(jù)一個月內(nèi)的用戶行為數(shù)據(jù),獲得目標(biāo)服務(wù)器在本月內(nèi)每一周對應(yīng)的周訪問用戶集合;

所述周訪問集合包含在一周內(nèi)訪問目標(biāo)服務(wù)器的全部互不相同的用戶對應(yīng)的用戶唯一標(biāo)識。

第四去重子單元1332,用于將本月內(nèi)中第二周的周訪問用戶集合與第一周的周訪問用戶集合進(jìn)行合并、去重,得到第二周對應(yīng)的累計(jì)周訪問用戶集合。

第二周對應(yīng)的累計(jì)周訪問用戶集合,即本月內(nèi)前兩周的累計(jì)訪問用戶集合。

第五去重子單元1333,用于從本月的第三周開始,將本周的周訪問用戶集合與前一周對應(yīng)的累計(jì)周訪問用戶集合進(jìn)行合并、去重,得到所述本周對應(yīng)的累計(jì)周訪問用戶集合,直到本月的最后一個完整周,得到第四周對應(yīng)的累計(jì)周訪問用戶集合。

第六去重子單元1334,用于將所述預(yù)設(shè)周期內(nèi)不夠一個完整周的剩余天數(shù)對應(yīng)的日訪問用戶集合進(jìn)行合并,得到剩余累計(jì)日訪問用戶集合;

一個月有30天包括4個完整周還剩余2天,該第六去重子單元是將剩余的2天對應(yīng)的日訪問用戶集合進(jìn)行合并、去重,得到剩余累計(jì)日訪問用戶集合r1。

第七去重子單元1335,用于將所述剩余累計(jì)日訪問用戶集合與第四周對應(yīng)的累計(jì)周訪問用戶集合進(jìn)行合并、去重,得到本月對應(yīng)的月訪問用戶集合。

第三計(jì)算子單元1336,用于計(jì)算所述月訪問用戶集合中包含的用戶唯一標(biāo)識,得到本月的月訪問用戶量。

本實(shí)施例提供的數(shù)據(jù)處理裝置,從分布式存儲系統(tǒng)中獲取目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶行為數(shù)據(jù);并獲取所述用戶行為數(shù)據(jù)所包含的用戶唯一標(biāo)識;然后,統(tǒng)計(jì)獲得的用戶行為數(shù)據(jù)所包含的互不相同的用戶唯一標(biāo)識的數(shù)量,得到目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量,例如,預(yù)設(shè)周期內(nèi)訪問目標(biāo)服務(wù)器的用戶數(shù)量;利用該裝置實(shí)現(xiàn)了對基于分布式存儲系統(tǒng)所存儲的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算,而且,該裝置操作簡單,運(yùn)算速度快。

請參見圖10,示出了本申請實(shí)施例另一種數(shù)據(jù)處理裝置的框圖,該裝置應(yīng)用于分布式存儲系統(tǒng)中,該裝置在圖6所示實(shí)施例的基礎(chǔ)上還包括輸出單元210。

輸出單元210,用于輸出目標(biāo)服務(wù)器在預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量。

當(dāng)統(tǒng)計(jì)單元130統(tǒng)計(jì)得到預(yù)設(shè)周期內(nèi)的用戶訪問數(shù)量后,可以通過輸出單元輸出到某一結(jié)果目錄下,以供需要時讀取該結(jié)果目錄下的用戶訪問數(shù)量結(jié)果。

本實(shí)施提供的數(shù)據(jù)處理裝置,得到預(yù)設(shè)周期內(nèi)訪問目標(biāo)服務(wù)器的用戶訪問數(shù)量后,通過輸出單元輸出到設(shè)定的結(jié)果目錄下,當(dāng)接收到獲取該預(yù)設(shè)周期內(nèi)用戶訪問數(shù)量的請求后,從該結(jié)果目錄下讀取對應(yīng)的用戶訪問數(shù)量即可。操作方便,請求響應(yīng)速度快。

需要說明的是,本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似的部分互相參見即可。對于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。

最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

對所公開的實(shí)施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
天镇县| 龙口市| 商水县| 平定县| 巴东县| 青岛市| 斗六市| 龙海市| 通化县| 水城县| 德格县| 嘉黎县| 前郭尔| 囊谦县| 陵川县| 奈曼旗| 札达县| 白河县| 济南市| 游戏| 芮城县| 昭苏县| 新乡市| 乐清市| 刚察县| 宝坻区| 松滋市| 庆阳市| 平顺县| 梁山县| 揭阳市| 申扎县| 桂平市| 辽阳市| 西畴县| 株洲县| 邮箱| 壶关县| 吴江市| 合水县| 杭锦旗|