本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及裝置。
背景技術(shù):
隨著信息技術(shù)和電子技術(shù)的發(fā)展,出現(xiàn)了大數(shù)據(jù)的概念和使用。大數(shù)據(jù)能夠更好的實(shí)現(xiàn)數(shù)據(jù)共享。然而在現(xiàn)有技術(shù)中發(fā)現(xiàn),目前數(shù)據(jù)處理中依然存在著大量的數(shù)據(jù)查詢慢、數(shù)據(jù)處理效率低及消耗了大量的數(shù)據(jù)處理資源等問題。
比如,基于Hbase數(shù)據(jù)庫的數(shù)據(jù)處理,以行關(guān)鍵字(RowKey)進(jìn)行查詢時(shí),速度快且效率高,但是以非行關(guān)鍵字進(jìn)行查詢時(shí),通常會出現(xiàn)速率慢及處理效率低等問題。所述Hbase數(shù)據(jù)庫為是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫,不同于一般的關(guān)系數(shù)據(jù)庫,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。另一個(gè)不同的是HBase基于列的而不是基于行的模式的數(shù)據(jù)庫。
故在現(xiàn)有技術(shù),提出一種數(shù)據(jù)處理效率高且查詢速度快的數(shù)據(jù)處理方法,是亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例期望提供一種數(shù)據(jù)處理方法及裝置,能夠至少部分解決數(shù)據(jù)處理效率低或查詢速度慢的問題。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:本發(fā)明實(shí)施例第一方面提供了一種數(shù)據(jù)處理方法,所述方法包括:
對用戶行為數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選處理,形成數(shù)據(jù)篩選結(jié)果;
基于所述數(shù)據(jù)篩選結(jié)果,將用戶行為數(shù)據(jù)劃分為滿足查詢需求的摘要數(shù)據(jù)和滿足數(shù)據(jù)分析處理的系統(tǒng)數(shù)據(jù);其中,所述摘要數(shù)據(jù)歸屬于用戶列表集;所 述系統(tǒng)數(shù)據(jù)和所述摘要數(shù)據(jù)均屬于系統(tǒng)數(shù)據(jù)集;
基于所述系數(shù)數(shù)據(jù)集形成查詢所述系統(tǒng)數(shù)據(jù)集的關(guān)聯(lián)字段;其中,所述關(guān)聯(lián)字段歸屬于用戶明細(xì)集。
基于上述方案,所述方法還包括:
基于所述系統(tǒng)數(shù)據(jù)集,建立與所述關(guān)聯(lián)字段關(guān)聯(lián)的主表。
基于上述方案,所述用戶列表集還包括摘要字段;
其中,所述摘要字段與所述摘要數(shù)據(jù)具有映射關(guān)系,能夠用于查詢所述摘要數(shù)據(jù)。
基于上述方案,所述摘要字段包括用戶標(biāo)識及查詢時(shí)間。
基于上述方案,所述方法還包括:
基于所述用戶列表集及所述用戶明細(xì)集,建立索引表;
其中,所述索引表的查詢索引包括關(guān)聯(lián)字段以及所述摘要字段
基于上述方案,所述索引表還包括所述摘要數(shù)據(jù)。
基于上述方案,所述方法還包括:
接收基于用戶輸入形成的查詢標(biāo)簽;
將所述查詢標(biāo)簽與所述索引表中的字段進(jìn)行匹配;
若所述查詢標(biāo)簽與所述摘要字段相匹配,則基于所述摘要字段查詢所述摘要數(shù)據(jù),并返回所述摘要數(shù)據(jù);
若所述查詢標(biāo)簽與所述關(guān)聯(lián)字段相匹配,則基于所述關(guān)聯(lián)字段,查詢所述主表并返回查詢結(jié)果。
本發(fā)明實(shí)施例第二方面提供一種數(shù)據(jù)處理裝置,所述裝置包括:
篩選單元,用于對用戶行為數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選處理,形成數(shù)據(jù)篩選結(jié)果;
劃分單元,用于基于所述數(shù)據(jù)篩選結(jié)果,將用戶行為數(shù)據(jù)劃分為滿足查詢需求的摘要數(shù)據(jù)和滿足數(shù)據(jù)分析處理的系統(tǒng)數(shù)據(jù);其中,所述摘要數(shù)據(jù)歸屬于用戶列表集;所述系統(tǒng)數(shù)據(jù)和所述摘要數(shù)據(jù)均屬于系統(tǒng)數(shù)據(jù)集;
生成單元,用于基于所述系數(shù)數(shù)據(jù)集形成查詢所述系統(tǒng)數(shù)據(jù)集的關(guān)聯(lián)字段;其中,所述關(guān)聯(lián)字段歸屬于用戶明細(xì)集。
基于上述方案,所述裝置還包括:
第一建立單元,用于基于所述系統(tǒng)數(shù)據(jù)集,建立與所述關(guān)聯(lián)字段關(guān)聯(lián)的主表。
基于上述方案,所述用戶列表集還包括摘要字段;
其中,所述摘要字段與所述摘要數(shù)據(jù)具有映射關(guān)系,能夠用于查詢所述摘要數(shù)據(jù)。
基于上述方案,所述摘要字段包括用戶標(biāo)識及查詢時(shí)間。
基于上述方案,所述裝置還包括:
第二建立單元,用于基于所述用戶列表集及所述用戶明細(xì)集,建立索引表;
其中,所述索引表的查詢索引包括關(guān)聯(lián)字段以及所述摘要字段
基于上述方案,
所述索引表還包括所述摘要數(shù)據(jù)。
基于上述方案,所述裝置還包括:
接收單元,用于接收基于用戶輸入形成的查詢標(biāo)簽;
匹配單元,用于將所述查詢標(biāo)簽與所述索引表中的字段進(jìn)行匹配;
第一查詢單元,用于若所述查詢標(biāo)簽與所述摘要字段相匹配,則基于所述摘要字段查詢所述摘要數(shù)據(jù),并返回所述摘要數(shù)據(jù);
第二查詢單元,用于若所述查詢標(biāo)簽與所述關(guān)聯(lián)字段相匹配,則基于所述關(guān)聯(lián)字段,查詢所述主表并返回查詢結(jié)果。
本發(fā)明實(shí)施例所述的數(shù)據(jù)處理方法及裝置,將形成用戶列表集、用戶明細(xì)集和系統(tǒng)數(shù)據(jù)集這三個(gè)數(shù)據(jù)集,用戶列表集是用戶通常會查詢到的數(shù)據(jù),放在用戶列表集中,這樣在進(jìn)行一般數(shù)據(jù)查詢時(shí),用戶列表集中的數(shù)據(jù)是小于所用用戶行為數(shù)據(jù)的,從而減少檢索量,從而提高了查詢速度。同時(shí)形成了用戶明細(xì)集,用戶明細(xì)集內(nèi)形成有關(guān)聯(lián)字段,能夠查詢到系統(tǒng)數(shù)據(jù)集中不常查詢的數(shù)據(jù),且系統(tǒng)數(shù)據(jù)集中的數(shù)據(jù)方便進(jìn)行系統(tǒng)分析處理,實(shí)踐證明,數(shù)據(jù)冗余度小且冗余度可以根據(jù)需要通過調(diào)整數(shù)據(jù)集所包括數(shù)據(jù)實(shí)現(xiàn)冗余度的可控,從而減少了數(shù)據(jù)占用大量的存儲和系統(tǒng)維護(hù)運(yùn)行資源的現(xiàn)象。
附圖說明
圖1為本發(fā)明實(shí)施例所述的一種數(shù)據(jù)處理方法的流程示意圖;
圖2為本發(fā)明實(shí)施例所述的一種數(shù)據(jù)處理方法的局部流程示意圖;
圖3為本發(fā)明實(shí)施例所述的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖之一;
圖4為本發(fā)明實(shí)施例所述的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖之二;
圖5為本發(fā)明實(shí)施例所述的數(shù)據(jù)處理方法中數(shù)據(jù)劃分的流程示意圖;
圖6為本發(fā)明實(shí)施例所述的三種數(shù)據(jù)集之間的關(guān)系示意圖;
圖7為本發(fā)明實(shí)施例所述的主表和索引表的效果示意。
具體實(shí)施方式
以下結(jié)合說明書附圖及具體實(shí)施例對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)闡述。
方法實(shí)施例:
如圖1所示,本實(shí)施例提供了一種數(shù)據(jù)處理方法,所述方法包括:
步驟S110:對用戶行為數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選處理,形成數(shù)據(jù)篩選結(jié)果;
步驟S120:基于所述數(shù)據(jù)篩選結(jié)果,將用戶行為數(shù)據(jù)劃分為滿足查詢需求的摘要數(shù)據(jù)和滿足數(shù)據(jù)分析處理的系統(tǒng)數(shù)據(jù);其中,所述摘要數(shù)據(jù)歸屬于用戶列表集;所述系統(tǒng)數(shù)據(jù)和所述摘要數(shù)據(jù)均屬于系統(tǒng)數(shù)據(jù)集;
步驟S130:基于所述系數(shù)數(shù)據(jù)集形成查詢所述系統(tǒng)數(shù)據(jù)集的關(guān)聯(lián)字段;其中,所述關(guān)聯(lián)字段歸屬于用戶明細(xì)集。
在本實(shí)施例中所述步驟S110中可以根據(jù)數(shù)據(jù)處理需求來進(jìn)行所述數(shù)據(jù)篩選處理。通常需要滿足普通用戶查詢需求的數(shù)據(jù)則應(yīng)該屬于一類的數(shù)據(jù)。這里滿足用戶查詢需求可包括:滿足用戶對指定時(shí)間內(nèi)發(fā)生的用戶行為數(shù)據(jù)實(shí)時(shí)查詢需求的數(shù)據(jù)。這里的指定時(shí)間可以為從當(dāng)前時(shí)間開始,向前退一段時(shí)間內(nèi)的數(shù)據(jù)。所述指定時(shí)間可為最近一個(gè)月內(nèi)的用戶行為數(shù)據(jù)。而所述系統(tǒng)數(shù)據(jù)集中的系統(tǒng)數(shù)據(jù)的話,可能是用戶查詢的概率較小的數(shù)據(jù),具體如,根據(jù)對查詢統(tǒng)計(jì)結(jié)果,將用戶查詢概率小于閾值或查詢概率從高到低靠后的數(shù)據(jù)作為系統(tǒng)數(shù) 據(jù)歸屬到系統(tǒng)數(shù)據(jù)集中。
值得注意的是在本實(shí)施例中所述步驟S110中所述數(shù)據(jù)篩選處理,可認(rèn)為是數(shù)據(jù)存儲之前依據(jù)數(shù)據(jù)存儲規(guī)則進(jìn)行的數(shù)據(jù)分析和抽象,在存儲空間上各個(gè)集合的數(shù)據(jù)都可以存儲在一起,可以在存儲邏輯上,這些數(shù)據(jù)歸屬于不同的集合。這里的集合可包括用戶列表集和系統(tǒng)數(shù)據(jù)集等。數(shù)據(jù)在存儲邏輯上的劃分,可以通過數(shù)據(jù)指針以及數(shù)據(jù)標(biāo)簽等方式來實(shí)現(xiàn)。
以HBase數(shù)據(jù)庫中存儲的數(shù)據(jù)為例,在主表中存儲有P1列數(shù)據(jù),在步驟S110中篩選出P2列作為所述摘要數(shù)據(jù)中的數(shù)據(jù);所述P2為小于所述P1的正整數(shù)。在步驟S120中進(jìn)行數(shù)據(jù)劃分的過程中,還包括生成所述摘要數(shù)據(jù)的查詢索引的步驟。實(shí)質(zhì)上摘要數(shù)據(jù)相當(dāng)于一個(gè)可查詢的表,查詢該表需要查詢索引,該查詢索引能夠獲取該摘要數(shù)據(jù)。如所述P2列數(shù)據(jù)中的每一行數(shù)據(jù)都對應(yīng)一個(gè)查詢的索引,該查詢索引在所述HBase數(shù)據(jù)庫中可稱為RoWKey。
當(dāng)然,進(jìn)行數(shù)據(jù)查詢的用戶可分為多個(gè)類別,具體如包括兩個(gè)類別。在步驟S120中所述摘要數(shù)據(jù)可能是能夠滿足第一類用戶查詢需求的數(shù)據(jù)。這里的普通用戶即為所述第一類用戶,通常所述第一類用戶即為權(quán)限較低的用戶,可能某些數(shù)據(jù)不對這些用戶開放,或者這些用戶對某些數(shù)據(jù)不感興趣,不會要求查詢對應(yīng)的數(shù)據(jù)。這里的某些數(shù)據(jù)即包括所述系統(tǒng)數(shù)據(jù)。譬如,所述用戶行為包括用戶A的上網(wǎng)行為。用戶A感興趣的數(shù)據(jù)可能是自己訪問了哪些網(wǎng)頁、訪問網(wǎng)頁所產(chǎn)生的數(shù)據(jù)流量等數(shù)據(jù)。但是用戶A可能不感興趣的是,被自己訪問的網(wǎng)頁采用的通信協(xié)議及資源IP地址等。
總之,所述用戶行為數(shù)據(jù)根據(jù)預(yù)定的數(shù)據(jù)劃分策略劃分稱為摘要數(shù)據(jù)和系統(tǒng)數(shù)據(jù)。系統(tǒng)數(shù)據(jù)為能夠滿足系統(tǒng)分析需求的數(shù)據(jù)。
在本實(shí)施例中為了提高用戶查詢摘要速率,通過步驟S110中將用戶不感興趣或不允許查詢的系統(tǒng)數(shù)據(jù)與所述摘要數(shù)據(jù)分離出來。這樣的話用戶在查詢數(shù)據(jù)時(shí),就不用到所有用戶行為數(shù)據(jù)中去查詢,從而減少了數(shù)據(jù)比對匹配查詢的量,從而能夠提高查詢速度。
當(dāng)然為了慢速分析處理需求,本實(shí)施例中摘要數(shù)據(jù)和系統(tǒng)數(shù)據(jù)都?xì)w屬到了 系統(tǒng)數(shù)據(jù)集中,方便數(shù)據(jù)分析裝置對數(shù)據(jù)進(jìn)行分析,這樣的話,也保證了系統(tǒng)需要進(jìn)行數(shù)據(jù)分析時(shí)的數(shù)據(jù)分析處理效率。與此同時(shí),為了方便對所有用戶行為數(shù)據(jù)的查詢,在本實(shí)施例中還引入了用戶明細(xì)集,在用戶明細(xì)集里面形成并存儲有關(guān)聯(lián)字段,這些關(guān)聯(lián)字段可以作為查詢所述系統(tǒng)數(shù)據(jù)集中各個(gè)用戶行為數(shù)據(jù)的查詢索引。
這樣的話,也同時(shí)滿足了對系統(tǒng)數(shù)據(jù)的查詢需求;且采用這種數(shù)據(jù)處理結(jié)構(gòu)在進(jìn)行數(shù)據(jù)查詢時(shí),實(shí)踐證明速度也是毫秒級別的。
作為本實(shí)施例的進(jìn)一步改進(jìn),所述方法還包括:
基于所述系統(tǒng)數(shù)據(jù)集,建立與所述關(guān)聯(lián)字段關(guān)聯(lián)的主表。
本實(shí)施例所述主表能夠包括各個(gè)用戶行為數(shù)據(jù),在本實(shí)施例中所述主表可為按時(shí)間分布形成的表;通常以預(yù)定的時(shí)間增量周期,更新所述主表。
所述關(guān)聯(lián)字段與所述主表關(guān)聯(lián),采用所述關(guān)聯(lián)字段可以在所述主表中進(jìn)行查詢,能夠返回對應(yīng)的數(shù)據(jù);這樣就能夠簡便的實(shí)現(xiàn)主表中數(shù)據(jù)的查詢,尤其方便了第二類用戶對主表中系統(tǒng)分析處理之后的處理結(jié)果的查詢。譬如,通過對用戶行為數(shù)據(jù)的分析,產(chǎn)生了分析結(jié)果,該分析結(jié)果可能是對某一個(gè)網(wǎng)站在指定時(shí)間內(nèi)的訪問頻次,這些數(shù)據(jù)可能涉及商業(yè)密碼,對具有較低權(quán)限的第一類用戶就不開放,但是對于第二類用戶(如網(wǎng)站分析維護(hù)工作人員)就開放,則這個(gè)通過系統(tǒng)分析處理產(chǎn)生基于用戶行為產(chǎn)生的數(shù)據(jù),能夠通過所述用戶明細(xì)列表中的關(guān)聯(lián)字段查詢到。
作為本實(shí)施例的進(jìn)一步改進(jìn),所述用戶列表集還包括摘要字段;
其中,所述摘要字段與所述摘要數(shù)據(jù)具有映射關(guān)系,能夠用于查詢所述摘要數(shù)據(jù)。所述摘要字段包括用戶標(biāo)識及查詢時(shí)間。所述用戶標(biāo)識為可以標(biāo)識用戶的任意信息,具體如用戶賬號或用戶身份序列號等信息。所述查詢時(shí)間為用戶指定查詢的時(shí)間范圍,通常為當(dāng)前時(shí)間或當(dāng)前時(shí)間以前的某一個(gè)時(shí)刻或時(shí)間段。
不同的用戶對應(yīng)用不同的用戶標(biāo)識。所述查詢時(shí)間可理解為用戶想用查詢該段時(shí)間內(nèi)產(chǎn)生的用戶行為數(shù)據(jù)。這里的用戶標(biāo)識至少包括第一類用戶標(biāo)識。
從本實(shí)施例可知在所述用戶列表集中的數(shù)據(jù)是按用戶標(biāo)識進(jìn)行排列的,針對于每一用戶都記錄著其用戶行為產(chǎn)生可供查詢的用戶行為數(shù)據(jù),如訪問網(wǎng)站的時(shí)間、訪問了哪些網(wǎng)站、訪問這些網(wǎng)站產(chǎn)生的數(shù)據(jù)流量以及訪問這些網(wǎng)站產(chǎn)生的流量類型。所述流量類型可包括第二代移動通信2G流量、第三代移動通信3G流量或第四代移動通信4G流量等。
所述摘要字段相當(dāng)于查詢所述摘要數(shù)據(jù)的索引,當(dāng)數(shù)據(jù)處理裝置接收到對應(yīng)的摘要字段時(shí),可根據(jù)摘要字段的匹配等處理,查詢到對應(yīng)的摘要數(shù)據(jù)。在具體實(shí)現(xiàn)時(shí),為了對所述摘要字段的管理,減少索引失效的問題,通常所述摘要字段還歸屬于所述用戶明細(xì)集,由用戶明細(xì)集對進(jìn)行數(shù)據(jù)查詢的索引(包括摘要字段和關(guān)聯(lián)字段)同一進(jìn)行管理和維護(hù)。
所述方法還包括:
基于所述用戶列表集及所述用戶明細(xì)集,建立索引表;
其中,所述索引表的查詢索引包括關(guān)聯(lián)字段以及所述摘要字段。
在本實(shí)施例中所述方法還包括索引表。根據(jù)前述技術(shù)方案可知,查詢數(shù)據(jù)可利用所述摘要字段和所述關(guān)聯(lián)字段,在本實(shí)施例中為了方便對這些具有數(shù)據(jù)查詢字段的同一關(guān)聯(lián),避免形成多個(gè)索引表和多種索引類型,在本實(shí)施例中將關(guān)聯(lián)字段和摘要字段都存到索引表中,減少了索引類型,避免了索引類型混亂及索引存儲占用存儲空間大的問題,減少了數(shù)據(jù)冗余。
所述索引表還包括所述摘要數(shù)據(jù)。
在本實(shí)施例中所述索引表還直接包括摘要數(shù)據(jù),利用所述摘要字段就能直接查詢所述索引表中的摘要數(shù)據(jù),這樣的話,所述摘要字段相當(dāng)于非關(guān)聯(lián)索引。
在本實(shí)施例中所述索引表中的關(guān)聯(lián)字段,還可以關(guān)聯(lián)到主表中進(jìn)行主表中數(shù)據(jù)的查詢,相當(dāng)于關(guān)聯(lián)索引。這就實(shí)現(xiàn)了非關(guān)聯(lián)索引和關(guān)聯(lián)索引的同一管理和處理。
當(dāng)然摘要數(shù)據(jù)也可以復(fù)用為所述關(guān)聯(lián)字段。比如,第一類用戶可能會查詢之前自己訪問過的網(wǎng)站,但是第二類用戶可能會查詢第一類用戶訪問過的網(wǎng)站的累積訪問數(shù)等信息。這個(gè)實(shí)收第一類用戶訪問過的網(wǎng)站是可供第一類用戶查 詢的數(shù)據(jù),作為摘要數(shù)據(jù)存儲在用戶列表集中。當(dāng)時(shí)第一類用戶訪問過的網(wǎng)站也作為關(guān)聯(lián)字段,存儲在用戶明細(xì)集中,這個(gè)時(shí)候?yàn)榱诉M(jìn)一步減少數(shù)據(jù)冗余,可以將用戶明細(xì)集和用戶列表集中的數(shù)據(jù)共同形成前述索引表。在索引表中有些輸入即作為摘要數(shù)據(jù),也作為關(guān)聯(lián)字段,這樣就能盡可能減少數(shù)據(jù)冗余,減少數(shù)據(jù)存儲及維護(hù)占用的資源。
在具體的實(shí)現(xiàn)過程中,在所述索引表中的每一行元素中可至少包括一個(gè)所述摘要字段和一個(gè)所述關(guān)聯(lián)字段。當(dāng)然所述索引表中每一行元素還可包括是否做主表關(guān)聯(lián)查詢參數(shù)的屬性,這個(gè)屬性對應(yīng)的參數(shù)值為假,則表示該行元素中的查詢索引為摘要字段,可以直接返回該摘要字段對應(yīng)的摘要數(shù)據(jù)即可。通常該摘要數(shù)據(jù)也存儲在該行元素中。當(dāng)所述是否做主表表關(guān)聯(lián)參數(shù)的屬性為真時(shí),表示該行元素對應(yīng)的查詢索引為所述關(guān)聯(lián)字段,是可用于關(guān)聯(lián)到主表進(jìn)行查詢的。此外,索引表中還可包括關(guān)聯(lián)元素個(gè)數(shù)的屬性,若關(guān)聯(lián)元素個(gè)數(shù)為0,也表示對應(yīng)的摘要字段,否則為關(guān)聯(lián)字段。
總之所述索引表中的每一個(gè)數(shù)據(jù)或字段都可以作為用戶查詢數(shù)據(jù)的索引,但是對應(yīng)的字段具體為摘要字段還是關(guān)聯(lián)字段,則可以通過設(shè)定卻分兩種字段的參數(shù)來表示,如關(guān)聯(lián)元素個(gè)數(shù)或是否關(guān)聯(lián)屬性的參數(shù)。
如圖2所示,所述方法還包括:
步驟S210:接收基于用戶輸入形成的查詢標(biāo)簽;
步驟S220:將所述查詢標(biāo)簽與所述索引表中的字段進(jìn)行匹配;
步驟S230:若所述查詢標(biāo)簽與所述摘要字段相匹配,則基于所述摘要字段查詢所述摘要數(shù)據(jù),并返回所述摘要數(shù)據(jù);
步驟S240:若所述查詢標(biāo)簽與所述關(guān)聯(lián)字段相匹配,則基于所述關(guān)聯(lián)字段,查詢所述主表并返回查詢結(jié)果。
所述查詢標(biāo)簽可為用戶輸入的查詢索引,或電子設(shè)備結(jié)合用戶輸入的信息和用戶標(biāo)識等信息生成的可用于與用戶明細(xì)列表中的數(shù)據(jù)進(jìn)行匹配的數(shù)據(jù)。
顯然本實(shí)施例中提供了一種數(shù)據(jù)查詢方法,能夠提供統(tǒng)一的數(shù)據(jù)查詢接口,將查詢標(biāo)簽與索引表中的字段的匹配,可以快速通過非關(guān)聯(lián)的方式返回摘要數(shù) 據(jù),同時(shí)通過關(guān)聯(lián)的方式返回出主表中的數(shù)據(jù),具有數(shù)據(jù)處理效率快、數(shù)據(jù)冗余度小及索引管理簡便的特點(diǎn)。
設(shè)備實(shí)施例:
如圖3所示,本實(shí)施例提供一種數(shù)據(jù)處理裝置,所述裝置包括:
篩選單元110,用于對用戶行為數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選處理,形成數(shù)據(jù)篩選結(jié)果;
劃分單元120,用于基于所述數(shù)據(jù)篩選結(jié)果,將用戶行為數(shù)據(jù)劃分為滿足查詢需求的摘要數(shù)據(jù)和滿足數(shù)據(jù)分析處理的系統(tǒng)數(shù)據(jù);其中,所述摘要數(shù)據(jù)歸屬于用戶列表集;所述系統(tǒng)數(shù)據(jù)和所述摘要數(shù)據(jù)均屬于系統(tǒng)數(shù)據(jù)集;
生成單元130,用于基于所述系數(shù)數(shù)據(jù)集形成查詢所述系統(tǒng)數(shù)據(jù)集的關(guān)聯(lián)字段;其中,所述關(guān)聯(lián)字段歸屬于用戶明細(xì)集。
本實(shí)施例中所述的數(shù)據(jù)處理裝置可對應(yīng)于各種形式的能夠進(jìn)行數(shù)據(jù)處理的電子設(shè)備,如臺式電腦、筆記本電腦、服務(wù)器或服務(wù)器平臺等。
所述篩選單元110、劃分單元120及生成單元130所對應(yīng)的結(jié)構(gòu)可包括處理結(jié)構(gòu)和存儲介質(zhì)。所述處理結(jié)構(gòu)可包括處理器和處理電路。所述處理器可包括應(yīng)用處理器AP、數(shù)字信號處理器DSP、可編程陣列PLC、數(shù)字信號處理器DSP或微處理器MCU等結(jié)構(gòu)。所述處理電路可包括專用集成電路ASIC。所述存儲介質(zhì)可以通過總線接口等連接結(jié)構(gòu)與所述處理結(jié)構(gòu)相連。所述存儲介質(zhì)上存儲有可執(zhí)行代碼,所述處理結(jié)構(gòu)可以通過執(zhí)行所述可執(zhí)行代碼實(shí)現(xiàn)上述單元的功能。
上述任意兩個(gè)單元可分別對應(yīng)不同的處理結(jié)構(gòu),也可以集成對應(yīng)于同一個(gè)所述處理結(jié)構(gòu)。所述處理結(jié)構(gòu)集成對應(yīng)多個(gè)單元時(shí),所述處理結(jié)構(gòu)采用時(shí)分復(fù)用或并發(fā)線程的方式,分別完成不同單元的操作。
在本實(shí)施例中所述摘要數(shù)據(jù)和所述系統(tǒng)數(shù)據(jù)的區(qū)分可以詳細(xì)參見對應(yīng)方法實(shí)施例,在此就不重復(fù)了。
如圖4所示,所述裝置還包括:
第一建立單元130,用于基于所述系統(tǒng)數(shù)據(jù)集,建立與所述關(guān)聯(lián)字段關(guān)聯(lián) 的主表。
本實(shí)施例所述第一建立單元可包括存儲介質(zhì),所述存儲介質(zhì)用于存儲所述主表。所述第一建立單元用于根據(jù)主表的建立函數(shù)或策略,基于所述系統(tǒng)數(shù)據(jù)集中的數(shù)據(jù),形成所述主表。
所述主表與關(guān)聯(lián)字段之間有關(guān)聯(lián)關(guān)系,這種關(guān)聯(lián)關(guān)系可以用于第二類用戶查詢到所述主表內(nèi)的數(shù)據(jù)。
所述用戶列表集還包括摘要字段;其中,所述摘要字段與所述摘要數(shù)據(jù)具有映射關(guān)系,能夠用于查詢所述摘要數(shù)據(jù)。
在本實(shí)施例中所述用戶列表中直接包括能夠第一類用戶查詢的摘要數(shù)據(jù)和摘要字段。這樣所述數(shù)據(jù)處理裝置通過摘要字段能過在毫秒級內(nèi)快速查詢到所述摘要數(shù)據(jù)。
在本實(shí)施例中,所述摘要字段包括用戶標(biāo)識及查詢時(shí)間;所述摘要數(shù)據(jù)是基于用戶標(biāo)識分布和形成的數(shù)據(jù),這樣方便快速查詢。
作為本實(shí)施例的進(jìn)一步改進(jìn),所述裝置還包括:第二建立單元150,用于基于所述用戶列表集及所述用戶明細(xì)集,建立索引表;其中,所述索引表的查詢索引包括關(guān)聯(lián)字段以及所述摘要字段。
在本實(shí)施例中所述第二建立單元150的具體結(jié)構(gòu)與所述第一建立單元的結(jié)構(gòu)類似,不同的是:所述第二建立單元150是用于建立索引表的結(jié)構(gòu)。在所述索引表中包括關(guān)鍵字段和關(guān)聯(lián)字段,這樣通過索引表統(tǒng)一對索引進(jìn)行管理,能夠避免索引混亂等各種問題。
所述索引表還包括所述摘要數(shù)據(jù)。在本實(shí)施例中直接將所述摘要數(shù)據(jù)在所述索引表中進(jìn)行維護(hù),這樣通過與索引表中的字段匹配,確定了對應(yīng)查詢標(biāo)簽與關(guān)鍵字段匹配,就直接將維護(hù)在索引表中的摘要數(shù)據(jù)返回,這樣就能最大限度的提高查詢速率;且相對于摘要字段和摘要數(shù)據(jù)分別存儲映射,最大限度的減少了數(shù)據(jù)冗余,減少數(shù)據(jù)占用的存儲資源和數(shù)據(jù)維護(hù)資源。
作為本實(shí)施例的進(jìn)一步改進(jìn),如圖4所示,所述裝置還包括:
接收單元210,用于接收基于用戶輸入形成的查詢標(biāo)簽;
匹配單元220,用于將所述查詢標(biāo)簽與所述索引表中的字段進(jìn)行匹配;
第一查詢單元230,用于若所述查詢標(biāo)簽與所述摘要字段相匹配,則基于所述摘要字段查詢所述摘要數(shù)據(jù),并返回所述摘要數(shù)據(jù);
第二查詢單元240,用于若所述查詢標(biāo)簽與所述關(guān)聯(lián)字段相匹配,則基于所述關(guān)聯(lián)字段,查詢所述主表并返回查詢結(jié)果。
本實(shí)施例所述的接收單元210的具體結(jié)構(gòu)可包括通信接口,用于接收基于用戶輸入形成的查詢標(biāo)簽。通常情況下,查詢摘要數(shù)據(jù)的標(biāo)簽可為用戶標(biāo)識加上查詢事件。若是需要查詢所述主表中的數(shù)據(jù),通常可能是查詢時(shí)間加上用戶標(biāo)識,再加上業(yè)務(wù)字段等信息。
所述第一查詢單元230和第二查詢單元240的具體結(jié)構(gòu)都可為對應(yīng)于具有信息查詢功能的處理結(jié)構(gòu);所述處理結(jié)構(gòu)的具體描述可以參見前述部分??傊?,本實(shí)施例所述的裝置在查詢數(shù)據(jù)時(shí),結(jié)合使用關(guān)聯(lián)索引和非關(guān)聯(lián)索引,能夠快速的查詢到用戶想要的數(shù)據(jù),同時(shí)具有數(shù)據(jù)的冗余度小,占用的系統(tǒng)資源少等特點(diǎn)。
以下結(jié)合上述任意實(shí)施例提供幾個(gè)具體示例。
示例一:
圖5所示的為基于前述實(shí)施例中對數(shù)據(jù)進(jìn)行劃分的流程。
將HBase中的用戶行為數(shù)據(jù)進(jìn)行劃分,劃分為:滿足用戶實(shí)時(shí)查詢需求的數(shù)據(jù)和滿足系統(tǒng)處理需求的數(shù)據(jù)。再進(jìn)一步將滿足用戶實(shí)施查詢需求的數(shù)據(jù)劃分歸屬于用戶列表集的數(shù)據(jù)和歸屬于用戶明細(xì)集的數(shù)據(jù)。而僅滿足系統(tǒng)處理需求的數(shù)據(jù)則將全部歸屬于系統(tǒng)數(shù)據(jù)集。
所述用戶行為數(shù)據(jù)劃分的過程可如下:
第一步:滿足用戶行為實(shí)時(shí)查詢的需求抽象:
因?yàn)橛脩粜袨轭悢?shù)據(jù)放在HBase里的原因主要是由于用戶行為實(shí)時(shí)查詢的需求引起的。所以首先我們對用戶行為實(shí)時(shí)查詢數(shù)據(jù)的特征進(jìn)行了抽象分析。
由于用戶的注意力范圍有限有限,一個(gè)用戶通常不可能同時(shí)關(guān)注大量的數(shù)據(jù)內(nèi)容。所以用戶喜歡把瀏覽數(shù)據(jù)的過程分為兩步來執(zhí)行。我們根據(jù)這樣的行 為特點(diǎn)將數(shù)據(jù)展示分為兩個(gè)步驟:展示摘要的數(shù)據(jù)和展示明細(xì)數(shù)據(jù)。
我們基于這樣一種數(shù)據(jù)展示方式,把將來用來讓用戶查詢的數(shù)據(jù)分為兩類的記錄集,一個(gè)是用戶列表集,一個(gè)是用戶明細(xì)集。用戶摘要集對應(yīng)的是用戶瀏覽大批數(shù)據(jù)的摘要需求,用戶明細(xì)集對應(yīng)的是查詢明細(xì)的需求。這兩個(gè)數(shù)據(jù)集合都是全部用戶行為數(shù)據(jù)的子集。
那么這兩個(gè)數(shù)據(jù)集是怎么從全部數(shù)據(jù)中篩選出來的呢?因?yàn)橛脩糁粫P(guān)心自己的數(shù)據(jù),而且很有可能是某一段時(shí)間的。所以這兩個(gè)數(shù)據(jù)集是通先按用戶標(biāo)識字段過濾,然后再按時(shí)間字段過濾,就得到了所需要的數(shù)據(jù)集。
第二步:滿足數(shù)據(jù)分析處理需求的抽象:
剛剛我們分析了用戶實(shí)時(shí)查詢的需求,但是在一個(gè)大數(shù)據(jù)共享平臺中,用戶行為類數(shù)據(jù)不可能只為用戶實(shí)時(shí)查詢所使用。還有可能會被系統(tǒng)內(nèi)部的數(shù)據(jù)分析和處理。
下面分析一下系統(tǒng)內(nèi)部的數(shù)據(jù)分析和處理的業(yè)務(wù)特征。
系統(tǒng)內(nèi)的數(shù)據(jù)分析和處理的場景會根據(jù)具體分析的內(nèi)容有所不同,不同的分析所關(guān)心的數(shù)據(jù)列也不同,這也是列存儲的由來,所以從理論上來說數(shù)據(jù)分析和處理過程中需要表中任何一個(gè)字段都有可能。同時(shí)在大數(shù)據(jù)共享平臺的分析處理中,通常不會關(guān)心某一個(gè)用戶的數(shù)據(jù),而是關(guān)心大量用戶的數(shù)據(jù),但基本都是按時(shí)間周期進(jìn)行增量處理。不管是使用多表聯(lián)的SQL處理,還是MepReduce處理都是這樣。針對于這樣的系統(tǒng)內(nèi)部的數(shù)據(jù)分析和處理需求特征,我們得到了這樣的一個(gè)“系統(tǒng)數(shù)據(jù)集合”,這個(gè)數(shù)據(jù)集包含了所有的數(shù)據(jù)字段,它通過時(shí)間字段來從全部數(shù)據(jù)中過濾出來。
圖6所示的可為根據(jù)圖5所示方法,劃分后的數(shù)據(jù)分布示意圖。從圖6可知,可能所有的用戶行為數(shù)據(jù)都滿足系統(tǒng)分析處理需求的數(shù)據(jù),故所有的用戶行為數(shù)據(jù)都?xì)w屬于系統(tǒng)數(shù)據(jù)集。而滿足用戶實(shí)時(shí)查詢需求的數(shù)據(jù)可包括歸屬于用戶列表集和用戶明細(xì)集中的數(shù)據(jù)。用戶列表集中的數(shù)據(jù)包括摘要數(shù)據(jù)和關(guān)鍵字段,所述關(guān)鍵字段為查詢所述摘要數(shù)據(jù)的查詢索引。在圖6中為了方便對索引的統(tǒng)一管理。所述用戶明細(xì)集中除了包括對系統(tǒng)數(shù)據(jù)集中數(shù)據(jù)查詢的關(guān)聯(lián)字 段以外,還包括用戶明細(xì)集中的摘要字段。
下表為比對三種數(shù)據(jù)集的異同。
顯然從上表可知,用戶列表集的數(shù)據(jù)可能介于用戶明細(xì)集和系統(tǒng)數(shù)據(jù)集之間,但是用戶明細(xì)集和用戶列表集都是系統(tǒng)數(shù)據(jù)集的子集。所述檢索字段為查詢對應(yīng)數(shù)據(jù)集中的索引。在本示例中查詢用戶列表集中的數(shù)據(jù)都可以采用用戶標(biāo)識加上時(shí)間的檢索字段。這里的時(shí)間即為前述的查詢時(shí)間。
基于上述數(shù)據(jù)劃分,進(jìn)行數(shù)據(jù)結(jié)構(gòu)的設(shè)置。因?yàn)橄到y(tǒng)數(shù)據(jù)集合包括全部的字段,所以適合用主表存儲相關(guān)數(shù)據(jù)。用戶明細(xì)集合有返回記錄數(shù)極小的特點(diǎn),非常適合通過對主表建一個(gè)關(guān)聯(lián)索引(這里的關(guān)聯(lián)索引即為前述的關(guān)聯(lián)字段)來實(shí)現(xiàn)。因?yàn)镠Base關(guān)聯(lián)二級索引在記錄較少時(shí)性能很高,空間占用也較少。用戶列表集合因?yàn)榉祷赜涗洈?shù)較大,使用HBase關(guān)聯(lián)二級索引得到最好的性能,但因?yàn)檫@個(gè)集合的字段比其他兩個(gè)集合都要小,比較適合使用HBase非關(guān)聯(lián)二級索引實(shí)現(xiàn)。也就是索引中保存全部需要的摘要數(shù)據(jù),查詢時(shí)不作與主表的關(guān)聯(lián)查詢。這樣性能較高,但是會占用一些空間,因?yàn)檫@個(gè)集合字段最少,相當(dāng)于犧牲一點(diǎn)冗余換取最佳的性能。
通過上述的設(shè)計(jì),使得在各種查詢的需求下都有較高的查詢性能,同時(shí)數(shù)據(jù)存在了一些數(shù)據(jù)冗余,但冗余量很小。
按如上述,將形成一個(gè)主表和兩個(gè)索引。這里的兩個(gè)索引即相當(dāng)于前述實(shí) 施例中的摘要字段和關(guān)聯(lián)字段。摘要字段相當(dāng)于非關(guān)聯(lián)索引,而關(guān)聯(lián)字段相當(dāng)于關(guān)聯(lián)索引。
接下來把這兩個(gè)索引進(jìn)行合并。在具體實(shí)現(xiàn)時(shí),非聯(lián)合索引的內(nèi)容包括了聯(lián)合索引的內(nèi)容,合并方法是以用戶列表集合的索引內(nèi)容作為合并后索引的內(nèi)容,通過給索引器傳遞“是否作主表關(guān)聯(lián)查詢參數(shù)”,當(dāng)參數(shù)為假時(shí),直接返回索引表數(shù)據(jù),和“關(guān)聯(lián)元素個(gè)數(shù)”兩個(gè)參數(shù)即可。
在大數(shù)據(jù)共享平臺的分析處理中,通常不會關(guān)心某一個(gè)用戶的數(shù)據(jù),而是關(guān)心大量用戶的數(shù)據(jù),但基本都是按時(shí)間周期進(jìn)行增量處理。不管是使用多表聯(lián)的SQL處理,還是MepReduce處理。
系統(tǒng)數(shù)據(jù)集合主要針對內(nèi)部分析處理的,通過主表以能較好的解決系統(tǒng)內(nèi)部分析和處理時(shí)間性能問題。主表使用時(shí)間加上業(yè)務(wù)字段作為查詢索引,也就是說主表中的數(shù)據(jù)分布是按時(shí)間在HBase中進(jìn)行分布的,這樣時(shí)我們在作系統(tǒng)內(nèi)部分析處理時(shí),能高效的定位到新增數(shù)據(jù)所在的位置。只取需要處理的數(shù)據(jù)。能夠提高數(shù)據(jù)處理過程中對數(shù)據(jù)查詢和提取的速率。
如圖7所示,主表中的數(shù)據(jù)是按時(shí)間順序組織排列的;而索引表中的數(shù)據(jù)是按用戶賬號進(jìn)行組織排列的。當(dāng)然用戶賬號為用戶標(biāo)識的其中一種。
在索引表中包括摘要字段和摘要數(shù)據(jù),其中,圖7中顯示的“5-6”、“6-5xxx”都可作為所述摘要字段映射的摘要數(shù)據(jù)。在圖7中還顯示索引值,此處的索引值相當(dāng)于前述實(shí)施例中的關(guān)聯(lián)字段,用于關(guān)聯(lián)到主表進(jìn)行對主表中數(shù)據(jù)的查詢。
在主表中存儲著各種數(shù)據(jù),這些數(shù)據(jù)當(dāng)然也包括用戶賬號、查詢時(shí)間、Fa以及Fb組成的用戶查詢檢索的業(yè)務(wù)字段等。
索引表將用戶ID+時(shí)間戳+其他摘要字段串成一個(gè)字符串作產(chǎn)需行關(guān)鍵字,中間用分割符分割,用戶查詢摘要數(shù)據(jù)時(shí),將自己的查詢的用戶ID、時(shí)間范圍及其他查詢條件變成一種行關(guān)鍵字查詢。通過這個(gè)行關(guān)鍵字查詢快速定位數(shù)據(jù)位置。然后直接取出索引表數(shù)據(jù),前面敘述過了索引表包括了所有摘要字段,所以直接從索引表返回?cái)?shù)據(jù),不用關(guān)聯(lián)主表查詢。這里的用戶ID即為前述用戶標(biāo)識的一種。
所以整個(gè)過程其實(shí)就是一個(gè)索引表的行關(guān)鍵字范圍查詢,因此效率較高。
索引表與主表關(guān)聯(lián),索引表的索引值前半部分與主表行關(guān)鍵字相同,從使索引表與主表關(guān)聯(lián)通關(guān)聯(lián)起來,索引表的索引值后半部分是其它的用戶摘要數(shù)據(jù)。這樣的目的是因?yàn)樗饕淼乃饕涤斜旧碛袃煞N用途,第一是與主表的行關(guān)鍵字關(guān)聯(lián),第二是能承載用戶摘要數(shù)據(jù)。這樣就通過索引值實(shí)現(xiàn)了關(guān)聯(lián)索引與非關(guān)聯(lián)索引進(jìn)行合并的結(jié)果。比如這時(shí)索引值包括第一部分和第二部分;第一部分用于與摘要數(shù)據(jù)映射,第二部分用于與主表映射,這樣第一部分相當(dāng)于摘要字段,而第二部分相當(dāng)于關(guān)聯(lián)字段。這樣的話一個(gè)索引值,可以同時(shí)用于查詢到摘要數(shù)據(jù)和系統(tǒng)數(shù)據(jù)集中的數(shù)據(jù)。當(dāng)然這種方式,是區(qū)分于前述設(shè)置特別的參數(shù)來區(qū)分關(guān)聯(lián)字段和摘要字段的。相當(dāng)于一個(gè)索引值對應(yīng)兩個(gè)字段,一個(gè)是關(guān)聯(lián)還是非關(guān)聯(lián),另一個(gè)是關(guān)聯(lián)元素個(gè)數(shù)。這樣可實(shí)現(xiàn)數(shù)據(jù)保存一份,用于兩種用途。
當(dāng)用戶查詢明細(xì)數(shù)據(jù)時(shí),通過索引表關(guān)聯(lián)主表。整個(gè)過程其實(shí)就是執(zhí)行(返回記錄數(shù)*2)次行關(guān)鍵字查詢,因?yàn)槊骷?xì)數(shù)據(jù)查詢的特點(diǎn)是查詢少量數(shù)據(jù),但有較多字段。所以關(guān)聯(lián)時(shí)可以有較高的性能。
在數(shù)據(jù)處理分析的場景里,處理過程通常不是以單個(gè)用戶為中心的?;径际前磿r(shí)間作增量處理,比如定位處理前一小時(shí)數(shù)據(jù)。不斷新增數(shù)據(jù)不斷作處理。
數(shù)據(jù)分析處理系統(tǒng)獲取數(shù)據(jù),可以從主表中按行關(guān)鍵字查詢通過Hive、impala、spark引擎查詢及處理?;蚴褂肕apReduce直接通過Rowkey定位要處理的數(shù)據(jù)區(qū)間,避免全表掃描。
示例二:
下面通過一個(gè)示例來介紹本發(fā)明:
將A口的用戶上網(wǎng)行為數(shù)據(jù)進(jìn)存儲。支撐業(yè)務(wù)使用數(shù)據(jù)的需求。該數(shù)據(jù)通常有兩類用途:
用戶查詢上網(wǎng)記錄。
系統(tǒng)用該數(shù)據(jù)作用戶上網(wǎng)行為分析。
元數(shù)據(jù)如下:
定義數(shù)據(jù)集
將字段按用戶關(guān)注度排序,從高關(guān)注度向低關(guān)注度進(jìn)行排序,進(jìn)而選擇出高關(guān)注度的字段作為摘要字段,并根據(jù)摘要字段確定出摘要數(shù)據(jù)集,再加上其余用戶關(guān)心的數(shù)據(jù)作為明細(xì)數(shù)據(jù)集,全集就是系統(tǒng)分析處理數(shù)據(jù)集。這里的關(guān)注度可體現(xiàn)在用戶查詢該數(shù)據(jù)的頻次上。排序結(jié)果如下:
在上表形成的排序結(jié)果中,將用戶賬號、開始時(shí)間、業(yè)務(wù)編號、業(yè)務(wù)類別編號及網(wǎng)站名稱編號作為摘要字段,這些摘要字段對應(yīng)的數(shù)據(jù)作為摘要數(shù)據(jù)。將上表中從用戶賬號到應(yīng)用層協(xié)議編號作為用戶明細(xì)數(shù)據(jù)集中的數(shù)據(jù)字段。其他的系統(tǒng)字段歸屬于系統(tǒng)數(shù)據(jù)集。
定義主表
主表是用時(shí)間+業(yè)務(wù)字段作為行關(guān)鍵字的,在本例子中使用開始時(shí)間加上用戶賬號連起來作為主表的關(guān)鍵字。(時(shí)間作為行關(guān)鍵字rowkey前綴是固定的,后面部分可以根據(jù)業(yè)務(wù)需求來設(shè)計(jì)),全部數(shù)據(jù)都保存在主表里
定義索引表
將用戶列表集內(nèi)的字段聯(lián)合起來建成索引。所述用戶列表集內(nèi)字段可包括: 用戶帳號、業(yè)務(wù)編號、業(yè)務(wù)類別編號、開始時(shí)間、網(wǎng)站名稱編號。
索引表是以用戶賬號為前綴的,服務(wù)于用戶查詢。用戶查詢數(shù)據(jù)時(shí)按該用戶的用戶賬號作快速匹配。
用戶查詢上網(wǎng)記錄時(shí)。
用戶查詢他某一時(shí)間段上網(wǎng)記錄時(shí),通過用戶帳號和時(shí)間段(這里的時(shí)間段即相當(dāng)于前述的查詢時(shí)間),以及選擇業(yè)務(wù)類型(即時(shí)通信、微博等)等查詢上網(wǎng)記錄是數(shù)據(jù)摘要部分。用戶可以看到相應(yīng)的摘要數(shù)據(jù)。示例中他將會看到,他使用過什么軟件(BusinessType_ID)訪問了什么網(wǎng)站(WebsiteID)等信息。這些數(shù)據(jù)量可能有很多,有可能會有分頁。系統(tǒng)內(nèi)部是通過HBase二級索引進(jìn)行行關(guān)鍵字匹配,完成快速查詢。因?yàn)椴魂P(guān)聯(lián)主表,即使查詢記錄有幾萬條,也能保證在數(shù)秒內(nèi)返回。
用戶查詢明細(xì)數(shù)據(jù)時(shí),用戶看了摘要數(shù)據(jù)后,選擇出他要進(jìn)一步查看的明細(xì)數(shù)據(jù)。明細(xì)數(shù)據(jù)有更多的信息詳情(字段),但數(shù)據(jù)記錄數(shù)很小。系統(tǒng)內(nèi)部是通過按用戶帳號、時(shí)間段等對HBase二級索引進(jìn)行行關(guān)鍵字查詢,然后再關(guān)聯(lián)到主表進(jìn)行查詢。這個(gè)關(guān)聯(lián)過程比不關(guān)聯(lián)性能要低,但是由于明細(xì)查詢記錄數(shù)較小,所以秒級返回也有保障。
系統(tǒng)對用戶行為數(shù)據(jù)進(jìn)行分析處理。
例如:要分析哪個(gè)網(wǎng)站用戶訪問數(shù)最多。系統(tǒng)不可能只分析一次,而是按時(shí)間窗口(比如一天)作增量分析。所以要求數(shù)據(jù)要按時(shí)間分布,方便只處理最近一天的數(shù)據(jù)。我們的主表是按時(shí)間和業(yè)務(wù)字段作rowkey的,也就是按時(shí)間分布的,同時(shí)主表包含所有字段。分析時(shí)直接對主表進(jìn)行分析,而不用走索引表。從HBase取數(shù)據(jù)時(shí),本質(zhì)上是對主表進(jìn)行范圍的rowkey查詢,從HBase中取出最近一天的數(shù)據(jù)進(jìn)行匯總,而不用掃描以往的數(shù)據(jù)。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特 征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)處理模塊中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。