專利名稱:一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法與裝置的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及數(shù)據(jù)庫(kù)領(lǐng)域,特別是涉及一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法與裝置。
背景技術(shù):
在數(shù)據(jù)倉(cāng)庫(kù)的后臺(tái)ETL(Extraction-Transformation-Loading,數(shù)據(jù)提取、轉(zhuǎn)換和加載)場(chǎng)景中,常常有這樣的業(yè)務(wù)場(chǎng)景,即針對(duì)同一份用戶行為產(chǎn)生的用戶日志,或者用戶行為流水表,進(jìn)行不同維度下的UV (Unique Visitor,用戶獨(dú)立訪問(wèn)數(shù))計(jì)算。例如,對(duì)于搜索訪問(wèn)用戶日志,按照搜索類目,搜索關(guān)鍵詞,搜索排序算法等維度進(jìn)行用戶UV的計(jì)算。這些數(shù)據(jù)量是很大的,一般都是上億條記錄數(shù),所以需要使用hadoop( —種分布式系統(tǒng)基礎(chǔ)架構(gòu))或者Hive (Hive是基于hadoop分布式文件處理系統(tǒng)的一種數(shù)據(jù)查詢和編程語(yǔ)言)進(jìn)行處理。
在衡量互聯(lián)網(wǎng)流量效果的指標(biāo)中,UV是比較特殊的衡量次數(shù),如果某個(gè)維度的UV越高,說(shuō)明此維度設(shè)置越有效,并且不同維度的UV不能疊加計(jì)算。而現(xiàn)有技術(shù)中,通常每計(jì)算一個(gè)維度下的UV都需要全量遍歷一次源表,通常每計(jì)算一次指定維度下的UV指標(biāo)就需要做一次全表遍歷。如果需要單獨(dú)算兩個(gè)維度的UV,就需要全表遍歷兩次,N個(gè)維度就需要N次,并且每計(jì)算一個(gè)維度就需要進(jìn)行兩次遍歷去重過(guò)程,N個(gè)維度就需要2N次遍歷去重過(guò)程,在需要計(jì)算的維度較多的情況下,全表遍歷次數(shù)和遍歷去重過(guò)程,消耗計(jì)算資源和計(jì)算時(shí)間都呈線性增長(zhǎng)的趨勢(shì),運(yùn)算和耗時(shí)都非常巨大。
發(fā)明內(nèi)容
本申請(qǐng)所要解決的技術(shù)問(wèn)題是提供一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法和裝置,只需要一次全表遍歷和相應(yīng)兩次遍歷去重過(guò)程就可獲得任意維度組合下的UV。為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,包括打標(biāo)簽步驟,遍歷一次用戶日志,并以用戶id為基準(zhǔn),對(duì)各維度下的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽;第一分析運(yùn)算步驟,以標(biāo)簽、維度組合和用戶id作為關(guān)鍵詞,對(duì)所述數(shù)據(jù)進(jìn)行聚合匯總得到用戶粒度數(shù)據(jù);第二分析運(yùn)算步驟,遍歷所得到的用戶粒度數(shù)據(jù),再以標(biāo)簽和維度組合作為關(guān)鍵詞,對(duì)用戶粒度數(shù)據(jù)進(jìn)行聚合匯總得到各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)。優(yōu)選的,所述的打標(biāo)簽步驟具體包括數(shù)據(jù)獲取步驟,遍歷一次用戶日志,獲得用戶數(shù)據(jù);數(shù)據(jù)復(fù)制步驟,當(dāng)維度組合個(gè)數(shù)為η時(shí),將每條數(shù)據(jù)復(fù)制η-1條;數(shù)據(jù)保留置空步驟,對(duì)所得到由同一條用戶數(shù)據(jù)復(fù)制得到的η個(gè)相同的數(shù)據(jù)分別不重復(fù)地保留一個(gè)維度的數(shù)據(jù)和對(duì)應(yīng)的用戶id,并將其他η-1個(gè)維度的數(shù)據(jù)置空;標(biāo)記模塊步驟,將所得到的每條只保留某維度數(shù)據(jù)和對(duì)應(yīng)用戶id的數(shù)據(jù)打上所屬維度的全局標(biāo)簽。
優(yōu)選的,所述的第一分析運(yùn)算步驟具體包括第一判斷步驟,對(duì)打上同一全局標(biāo)簽的每條保留一個(gè)維度數(shù)據(jù)和相應(yīng)用戶id的數(shù)據(jù),判斷此全局標(biāo)簽下是否含有相同子維度和用戶id的數(shù)據(jù);如果包含轉(zhuǎn)入第一計(jì)數(shù)步驟;如果不包含,轉(zhuǎn)入第二計(jì)數(shù)步驟;其中,所述第一計(jì)數(shù)步驟為,對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),記錄獨(dú)立訪問(wèn)數(shù)為I;所述第二計(jì)數(shù)步驟為,根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)數(shù)為I ;第一整理步驟,對(duì)數(shù)據(jù)進(jìn)行整理得到用戶粒度數(shù)據(jù)。優(yōu)選的,所述的第二分析運(yùn)算步驟具體包括
第二判斷步驟,遍歷用戶粒度數(shù)據(jù),去除用戶id,對(duì)打上同一全局標(biāo)簽的每條數(shù)據(jù),判斷其中是否含有相同子維度的數(shù)據(jù);如果包含,轉(zhuǎn)入第三計(jì)數(shù)步驟;如果不包含,轉(zhuǎn)入第四計(jì)數(shù)步驟;其中,所述第三計(jì)數(shù)步驟為,對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),并記錄重復(fù)次數(shù)為用戶獨(dú)立訪問(wèn)數(shù);所述第四計(jì)數(shù)步驟為,根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)次數(shù)為I ;第二整理步驟,將各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)整理成表。優(yōu)選的,還包括第三分析運(yùn)算步驟,根據(jù)同一子緯度數(shù)據(jù)條數(shù)獲得各子緯度的用戶訪問(wèn)數(shù)。優(yōu)選的,使用聚合函數(shù)進(jìn)行去重操作。相應(yīng)的,本申請(qǐng)還公開(kāi)了一種獲得用戶獨(dú)立訪問(wèn)數(shù)的裝置,包括打標(biāo)簽?zāi)K,用于遍歷一次用戶數(shù)據(jù),并以用戶id為基準(zhǔn),對(duì)各維度下的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽;第一分析運(yùn)算模塊,用于以標(biāo)簽、維度和用戶id的組合作為關(guān)鍵詞,對(duì)所述數(shù)據(jù)進(jìn)行聚合匯總得到用戶粒度數(shù)據(jù);第二分析運(yùn)算模塊,用于遍歷所得到的用戶粒度數(shù)據(jù),再以標(biāo)簽和維度的組合作為關(guān)鍵詞,對(duì)用戶粒度數(shù)據(jù)進(jìn)行聚合匯總得到各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)。優(yōu)選的,所述的打標(biāo)簽?zāi)K具體包括數(shù)據(jù)獲取模塊,用于遍歷一次用戶日志,獲得用戶數(shù)據(jù);數(shù)據(jù)復(fù)制模塊,用于當(dāng)維度組合個(gè)數(shù)為η時(shí),將每條數(shù)據(jù)復(fù)制η-1條;數(shù)據(jù)保留和置空模塊,用于對(duì)所得到由同一條用戶數(shù)據(jù)復(fù)制得到的η個(gè)相同的數(shù)據(jù)分別不重復(fù)地保留一個(gè)維度的數(shù)據(jù)和對(duì)應(yīng)的用戶id,并將其他η-1個(gè)維度的數(shù)據(jù)置空;標(biāo)記模塊,用于將所得到的每條只保留某維度數(shù)據(jù)和對(duì)應(yīng)用戶id的數(shù)據(jù)打上所屬維度的全局標(biāo)簽。優(yōu)選的,所述的分析運(yùn)算模塊一具體包括第一判斷模塊,用于對(duì)打上同一全局標(biāo)簽的每條保留一個(gè)維度數(shù)據(jù)和相應(yīng)用戶id的數(shù)據(jù),判斷此全局標(biāo)簽下是否含有相同子維度和用戶id的數(shù)據(jù);第一計(jì)數(shù)模塊,用于對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),記錄獨(dú)立訪問(wèn)數(shù)為I ;第二計(jì)數(shù)模塊,用于根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)數(shù)為I ;第一整理模塊,用于對(duì)數(shù)據(jù)進(jìn)行整理得到用戶粒度數(shù)據(jù)。優(yōu)選的,所述的分析運(yùn)算模塊二具體包括
第二判斷模塊,用于遍歷用戶粒度數(shù)據(jù),去除用戶id,對(duì)打上同一全局標(biāo)簽的每條數(shù)據(jù),判斷其中是否含有相同子維度的數(shù)據(jù);第三計(jì)數(shù)模塊,用于對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),并記錄重復(fù)次數(shù)為用戶獨(dú)立訪問(wèn)數(shù);第四計(jì)數(shù)模塊,用于根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)次數(shù)為I ;第二整理模塊,用于將各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)整理成表。與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn)本申請(qǐng)通過(guò)在遍歷用戶日志時(shí),對(duì)每個(gè)維度的數(shù)據(jù)打上所屬維度的全局標(biāo)簽,然后以標(biāo)簽、維度組合和用戶id作為第一次聚合匯總過(guò)程的關(guān)鍵詞,再以標(biāo)簽和維度組合作為第二次聚合匯總過(guò)程的關(guān)鍵詞,最終只要在HIVE中對(duì)原表進(jìn)行一次遍歷就能最終得到任意維度下的各種常見(jiàn)的UV (即用戶獨(dú)立訪問(wèn)數(shù)),這大幅節(jié)省了計(jì)算資源和計(jì)算時(shí)間。
圖1是本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法的流程示意圖;圖2是本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法優(yōu)選的打標(biāo)簽步驟流程示意圖;圖3是本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法優(yōu)選的第一分析步驟流程示意圖;圖4是本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法優(yōu)選的第二分析步驟流程示意圖;圖5是本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的裝置的結(jié)構(gòu)示意圖。圖6是本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的裝置優(yōu)選的打標(biāo)簽?zāi)K結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。參照?qǐng)D1,示出了本申請(qǐng)一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法的流程示意圖,其步驟包括打標(biāo)簽步驟100,遍歷一次用戶日志,并以用戶id為基準(zhǔn),對(duì)各維度下的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽;第一分析運(yùn)算步驟110,以標(biāo)簽、維度組合和用戶id作為關(guān)鍵詞,對(duì)所述數(shù)據(jù)進(jìn)行聚合匯總得到用戶粒度數(shù)據(jù);第二分析運(yùn)算步驟120,遍歷所得到的用戶粒度數(shù)據(jù),再以標(biāo)簽和維度組合作為關(guān)鍵詞,對(duì)用戶粒度數(shù)據(jù)進(jìn)行聚合匯總得到各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)。進(jìn)一步地,還可包括第三分析運(yùn)算步驟,根據(jù)同一子緯度數(shù)據(jù)條數(shù)獲得各子緯度的用戶訪問(wèn)數(shù)。所述打標(biāo)簽步驟100中,所述的維度的建立是根據(jù)業(yè)務(wù)特性,用來(lái)標(biāo)識(shí)用戶每一次搜索行為的屬性或者特性。例如,用戶在搜索框中使用‘連衣裙’這個(gè)搜索詞(query)在女裝這個(gè)類目使用按照價(jià)格降序排列的排序方式完成了一次搜索,那么轉(zhuǎn)化成結(jié)構(gòu)化的數(shù)據(jù)就是這樣的query 類目排序方式UV PV
連衣裙按照價(jià)格降序 II其中,query、類目和排序方式就是用來(lái)衡量或者標(biāo)識(shí)這次搜索行為的三個(gè)維度,其中,UV為用戶獨(dú)立訪問(wèn)數(shù),PV為用戶訪問(wèn)數(shù);然后以用戶id為基準(zhǔn)對(duì)這三個(gè)維度的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽,其中,全局標(biāo)簽始終表明此數(shù)據(jù)所屬維度。參照?qǐng)D2,所述的打標(biāo)簽步驟100具體可包括數(shù)據(jù)獲取步驟S101,遍歷一次用戶日志,獲得用戶數(shù)據(jù)。用戶數(shù)據(jù)包括各種維度下的數(shù)據(jù)和每條數(shù)據(jù)對(duì)應(yīng)的用戶id。由于用戶的訪問(wèn)數(shù)據(jù)量龐大,在實(shí)際中,可按需求只提取某些維度的相關(guān)用戶數(shù)據(jù)。
·
數(shù)據(jù)復(fù)制步驟S102,當(dāng)維度組合個(gè)數(shù)為η時(shí),將每條數(shù)據(jù)復(fù)制η_1條。當(dāng)需要計(jì)算的維度的個(gè)數(shù)為η時(shí),將包括了用戶id,對(duì)應(yīng)維度數(shù)據(jù)的每條用戶數(shù)據(jù)復(fù)制η-1條得到對(duì)應(yīng)于同一條用戶數(shù)據(jù)的η條數(shù)據(jù)。數(shù)據(jù)保留置空步驟S103,對(duì)所得到由同一條用戶數(shù)據(jù)復(fù)制得到的η個(gè)相同的數(shù)據(jù),分別不重復(fù)地保留一個(gè)維度的數(shù)據(jù)和對(duì)應(yīng)的用戶id,并將其他η-1個(gè)維度的數(shù)據(jù)置空;對(duì)由同一條用戶數(shù)據(jù)復(fù)制得到的η條相同的數(shù)據(jù),以用戶id為基準(zhǔn),即每條數(shù)據(jù)都保留相應(yīng)的用戶id,并對(duì)此η條數(shù)據(jù)中的每條數(shù)據(jù)只保留η個(gè)維度中的一個(gè)維度的數(shù)據(jù),同時(shí)將其他維度的數(shù)據(jù)置空,由于每個(gè)維度不重復(fù)保留,即只保留一次,這樣就得到了對(duì)應(yīng)同一條用戶數(shù)據(jù)的保留了用戶id和只保留一個(gè)維度數(shù)據(jù)的η條數(shù)據(jù)(其中,每條數(shù)據(jù)的保留的維度互不相同)。標(biāo)記模塊步驟S104,將所得到的每條只保留某維度數(shù)據(jù)和對(duì)應(yīng)用戶id的數(shù)據(jù)打上所屬維度的全局標(biāo)簽。在實(shí)際中,標(biāo)簽是根據(jù)具體需要計(jì)算的維度組合來(lái)確定的,每個(gè)維度都會(huì)有一個(gè)專屬的全局標(biāo)簽。對(duì)數(shù)據(jù)保留和置空步驟S103得到的每條只保留了某個(gè)維度數(shù)據(jù)的數(shù)據(jù)打上此維度所屬的全局標(biāo)簽。例如,假設(shè)有類似表一的原始數(shù)據(jù)
用戶類型搜索類型類目id~用戶id~
2search 50015天青
2list50015天青
4list50015天青 01表一此表表示用戶數(shù)據(jù),表中每個(gè)用戶id對(duì)應(yīng)三個(gè)維度,即用戶類型、搜索類型和類目id,每個(gè)維度下包括三個(gè)數(shù)據(jù)。在這個(gè)例子中,我們需要分別計(jì)算用戶類型,搜索類型和搜索類目這三個(gè)維度下的子維度的UV,在第一次遍歷(map)階段,可將把同一條數(shù)據(jù)翻成三條,對(duì)于每條數(shù)據(jù),只提取出自己關(guān)心的特定維度,其它的維度置空,并對(duì)指定維度的數(shù)據(jù)打上標(biāo)簽。例如,在表一的例子中,需要計(jì)算用戶類型的UV,在數(shù)據(jù)中只提取用戶類型的值,對(duì)搜索類型和類目ID這兩個(gè)維度置空,并且為這三條數(shù)據(jù)手動(dòng)打上“用戶類型”的標(biāo)簽。進(jìn)一步得到表二的數(shù)據(jù)
權(quán)利要求
1.一種獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,其特征在于,包括打標(biāo)簽步驟,遍歷一次用戶日志,并以用戶id為基準(zhǔn),對(duì)各維度下的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽;第一分析運(yùn)算步驟,以標(biāo)簽、維度組合和用戶id作為關(guān)鍵詞,對(duì)所述數(shù)據(jù)進(jìn)行聚合匯總得到用戶粒度數(shù)據(jù);第二分析運(yùn)算步驟,遍歷所得到的用戶粒度數(shù)據(jù),再以標(biāo)簽和維度組合作為關(guān)鍵詞,對(duì)用戶粒度數(shù)據(jù)進(jìn)行聚合匯總得到各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)。
2.如權(quán)利要求1所述的獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,其特征在于所述的打標(biāo)簽步驟具體包括數(shù)據(jù)獲取步驟,遍歷一次用戶日志,獲得用戶數(shù)據(jù);數(shù)據(jù)復(fù)制步驟,當(dāng)維度組合個(gè)數(shù)為η時(shí),將每條數(shù)據(jù)復(fù)制η-1條;數(shù)據(jù)保留置空步驟,對(duì)所得到由同一條用戶數(shù)據(jù)復(fù)制得到的η個(gè)相同的數(shù)據(jù)分別不重復(fù)地保留一個(gè)維度的數(shù)據(jù)和對(duì)應(yīng)的用戶id,并將其他η-1個(gè)維度的數(shù)據(jù)置空;標(biāo)記模塊步驟,將所得到的每條只保留某維度數(shù)據(jù)和對(duì)應(yīng)用戶id的數(shù)據(jù)打上所屬維度的全局標(biāo)簽。
3.如權(quán)利要求1所述的獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,其特征在于所述的第一分析運(yùn)算步驟具體包括第一判斷步驟,對(duì)打上同一全局標(biāo)簽的每條保留一個(gè)維度數(shù)據(jù)和相應(yīng)用戶id的數(shù)據(jù), 判斷此全局標(biāo)簽下是否含有相同子維度和用戶id的數(shù)據(jù);如果包含轉(zhuǎn)入第一計(jì)數(shù)步驟;如果不包含,轉(zhuǎn)入第二計(jì)數(shù)步驟;其中,所述第一計(jì)數(shù)步驟為,對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),記錄獨(dú)立訪問(wèn)數(shù)為I ;所述第二計(jì)數(shù)步驟為,根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)數(shù)為I ;第一整理步驟,對(duì)數(shù)據(jù)進(jìn)行整理得到用戶粒度數(shù)據(jù)。
4.如權(quán)利要求1所述的獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,其特征在于所述的第二分析運(yùn)算步驟具體包括第二判斷步驟,遍歷用戶粒度數(shù)據(jù),去除用戶id,對(duì)打上同一全局標(biāo)簽的每條數(shù)據(jù),判斷其中是否含有相同子維度的數(shù)據(jù);如果包含,轉(zhuǎn)入第三計(jì)數(shù)步驟;如果不包含,轉(zhuǎn)入第四計(jì)數(shù)步驟;其中,所述第三計(jì)數(shù)步驟為,對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),并記錄重復(fù)次數(shù)為用戶獨(dú)立訪問(wèn)數(shù);所述第四計(jì)數(shù)步驟為,根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)次數(shù)為I ;第二整理步驟,將各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)整理成表。
5.如權(quán)利要求1所述的獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,其特征在于還包括第三分析運(yùn)算步驟,根據(jù)同一子緯度數(shù)據(jù)條數(shù)獲得各子緯度的用戶訪問(wèn)數(shù)。
6.如權(quán)利要求3或4所述的獲取用戶獨(dú)立訪問(wèn)數(shù)的方法,其特征在于使用聚合函數(shù)進(jìn)行去重操作。
7.一種獲得用戶獨(dú)立訪問(wèn)數(shù)的裝置,其特征在于,包括打標(biāo)簽?zāi)K,用于遍歷一次用戶數(shù)據(jù),并以用戶id為基準(zhǔn),對(duì)各維度下的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽;第一分析運(yùn)算模塊,用于以標(biāo)簽、維度和用戶id的組合作為關(guān)鍵詞,對(duì)所述數(shù)據(jù)進(jìn)行聚合匯總得到用戶粒度數(shù)據(jù);第二分析運(yùn)算模塊,用于遍歷所得到的用戶粒度數(shù)據(jù),再以標(biāo)簽和維度的組合作為關(guān)鍵詞,對(duì)用戶粒度數(shù)據(jù)進(jìn)行聚合匯總得到各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)。
8.如權(quán)利要求7所述的獲得用戶獨(dú)立訪問(wèn)數(shù)的裝置,其特征在于所述的打標(biāo)簽?zāi)K具體包括數(shù)據(jù)獲取模塊,用于遍歷一次用戶日志,獲得用戶數(shù)據(jù);數(shù)據(jù)復(fù)制模塊,用于當(dāng)維度組合個(gè)數(shù)為η時(shí),將每條數(shù)據(jù)復(fù)制η-1條;數(shù)據(jù)保留和置空模塊,用于對(duì)所得到由同一條用戶數(shù)據(jù)復(fù)制得到的η個(gè)相同的數(shù)據(jù)分別不重復(fù)地保留一個(gè)維度的數(shù)據(jù)和對(duì)應(yīng)的用戶id,并將其他η-1個(gè)維度的數(shù)據(jù)置空;標(biāo)記模塊,用于將所得到的每條只保留某維度數(shù)據(jù)和對(duì)應(yīng)用戶id的數(shù)據(jù)打上所屬維度的全局標(biāo)簽。
9.如權(quán)利要求8所述的獲得用戶獨(dú)立訪問(wèn)數(shù)的裝置,其特征在于所述的分析運(yùn)算模塊一具體包括第一判斷模塊,用于對(duì)打上同一全局標(biāo)簽的每條保留一個(gè)維度數(shù)據(jù)和相應(yīng)用戶id的數(shù)據(jù),判斷此全局標(biāo)簽下是否含有相同子維度和用戶id的數(shù)據(jù);第一計(jì)數(shù)模塊,用于對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),記錄獨(dú)立訪問(wèn)數(shù)為I ; 第二計(jì)數(shù)模塊,用于根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)數(shù)為I ;第一整理模塊,用于對(duì)數(shù)據(jù)進(jìn)行整理得到用戶粒度數(shù)據(jù)。
10.如權(quán)利要求9所述的獲得用戶獨(dú)立訪問(wèn)數(shù)的裝置,其特征在于所述的分析運(yùn)算模塊二具體包括第二判斷模塊,用于遍歷用戶粒度數(shù)據(jù),去除用戶id,對(duì)打上同一全局標(biāo)簽的每條數(shù)據(jù),判斷其中是否含有相同子維度的數(shù)據(jù);第三計(jì)數(shù)模塊,用于對(duì)所述數(shù)據(jù)去重并只保留一條此類數(shù)據(jù),并記錄重復(fù)次數(shù)為用戶獨(dú)立訪問(wèn)數(shù);第四計(jì)數(shù)模塊,用于根據(jù)所述數(shù)據(jù)直接記錄用戶獨(dú)立訪問(wèn)次數(shù)為I ;第二整理模塊,用于將各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)整理成表。
全文摘要
本申請(qǐng)?zhí)峁┝艘环N獲取用戶獨(dú)立訪問(wèn)數(shù)的方法與裝置,涉及數(shù)據(jù)庫(kù)領(lǐng)域。所述的方法包括遍歷一次用戶日志,并以用戶id為基準(zhǔn),對(duì)各維度下的每條數(shù)據(jù)打上所屬維度的全局標(biāo)簽;以標(biāo)簽、維度組合和用戶id作為關(guān)鍵詞,對(duì)所述數(shù)據(jù)進(jìn)行聚合匯總得到用戶粒度數(shù)據(jù);遍歷所得到的用戶粒度數(shù)據(jù),再以標(biāo)簽和維度組合作為關(guān)鍵詞,對(duì)用戶粒度數(shù)據(jù)進(jìn)行聚合匯總得到各維度下每個(gè)子維度的用戶獨(dú)立訪問(wèn)數(shù)。通過(guò)本申請(qǐng),只需要在HIVE中對(duì)原表進(jìn)行一次遍歷就能最終得到任意維度下的各種常見(jiàn)的UV,這大幅節(jié)省了計(jì)算資源和計(jì)算時(shí)間。
文檔編號(hào)G06F17/30GK102999506SQ20111026919
公開(kāi)日2013年3月27日 申請(qǐng)日期2011年9月13日 優(yōu)先權(quán)日2011年9月13日
發(fā)明者劉凡, 呂春建 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司