本發(fā)明涉及移動(dòng)通信領(lǐng)域,尤其涉及一種信息查詢方法及系統(tǒng)。
背景技術(shù):
在移動(dòng)互聯(lián)網(wǎng)中,移動(dòng)終端如手機(jī)和PAD終端通過電信運(yùn)營商進(jìn)行無線方式接入,實(shí)現(xiàn)網(wǎng)絡(luò)的訪問。為了保障公共信息安全,電信運(yùn)營商對通過CTNET、CTWAP或者WLAN方式接入,訪問互聯(lián)網(wǎng)業(yè)務(wù)的網(wǎng)絡(luò)痕跡數(shù)據(jù)進(jìn)行了留存。主要包含了兩種類型痕跡數(shù)據(jù),移動(dòng)上網(wǎng)用戶在接入互聯(lián)網(wǎng)時(shí)認(rèn)證登錄過程中痕跡和移動(dòng)上網(wǎng)用戶在接入互聯(lián)網(wǎng)后訪問互聯(lián)網(wǎng)時(shí)痕跡數(shù)據(jù)。
隨著移動(dòng)互聯(lián)網(wǎng)的迅猛發(fā)展和智能手機(jī)終端的普及,移動(dòng)上網(wǎng)的痕跡留存數(shù)據(jù)量由GB級別突破到TB級別。以福建電信900萬C網(wǎng)用戶,2014年1月的每天產(chǎn)生的原始上網(wǎng)痕跡數(shù)據(jù)為700G。按照至少保存3個(gè)月的中國工信部要求,那么數(shù)據(jù)總量在70T,而且有日益增長的趨勢。
現(xiàn)有的技術(shù)解決架構(gòu)為把上網(wǎng)痕跡數(shù)據(jù)關(guān)聯(lián)匹配后,裝載入關(guān)系型數(shù)據(jù)庫,來實(shí)現(xiàn)對用戶上網(wǎng)行為的查詢和統(tǒng)計(jì)分析。當(dāng)遍歷查詢的數(shù)據(jù)量在10TB以上時(shí),集中式的關(guān)系型數(shù)據(jù)庫處理系統(tǒng),出現(xiàn)了數(shù)據(jù)查詢定位緩慢,檢索一個(gè)用戶的一周上網(wǎng)痕跡數(shù)據(jù)時(shí)需要耗費(fèi)接近6小時(shí),對宏觀的用戶網(wǎng)絡(luò)行為分析在現(xiàn)有架構(gòu)下無法完成。即使目前互聯(lián)網(wǎng)行業(yè)已大量采用hadoop大數(shù)據(jù)技術(shù)運(yùn)用在用戶行為分析上,但仍然需要因業(yè)務(wù)量快速增長而帶來的分析數(shù)據(jù)量的海量增加,不斷被動(dòng)地手工調(diào)整云計(jì)算資源和存儲資源。
因此,有必要提出一種高效的移動(dòng)上網(wǎng)的痕跡留存數(shù)據(jù)留存和檢索方法以解決上述技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本公開要解決的一個(gè)技術(shù)問題是如何提出一種高效的移動(dòng)上網(wǎng)的痕跡留存數(shù)據(jù)留存和檢索方法解決現(xiàn)有技術(shù)中海量數(shù)據(jù)存儲與檢索中存在的問題。
本公開提供一種信息查詢方法,包括:在接收到查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求后,對查詢統(tǒng)計(jì)請求進(jìn)行任務(wù)分解以得到相應(yīng)的map reduce任務(wù);根據(jù)得到的map reduce任務(wù),從分布式文件系統(tǒng)中相應(yīng)的分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取數(shù)據(jù);其中在分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中,數(shù)據(jù)存儲采用RcFile格式;根據(jù)各分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取的數(shù)據(jù)進(jìn)行分布式計(jì)算;將各分布式數(shù)據(jù)存儲節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行合并,以得到查詢結(jié)果;將查詢結(jié)果提供給查詢用戶。
進(jìn)一步地,該方法包括:實(shí)時(shí)采集移動(dòng)用戶的上網(wǎng)痕跡數(shù)據(jù);將采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中。
進(jìn)一步地,該方法包括:在將采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中的步驟中,還包括:
在進(jìn)行Hive數(shù)據(jù)倉庫中數(shù)據(jù)表創(chuàng)建時(shí),根據(jù)查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)和系統(tǒng)能力確定分桶個(gè)數(shù)。
進(jìn)一步地,該方法包括:利用公式
Buckets=min(data_total_size/dfs.block.size,map_count)
計(jì)算分桶個(gè)數(shù)Buckets,其中min()為取最小值函數(shù),data_total_size為上網(wǎng)痕跡數(shù)據(jù)總量,dfs.block.size為分布式文件系統(tǒng)中配置的文件塊大小,map_count為查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)。
進(jìn)一步地,該方法包括:上網(wǎng)痕跡數(shù)據(jù)包括DPI設(shè)備分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、WAP網(wǎng)關(guān)分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、防火墻的SYSLOG日志服務(wù)器上傳的NAT地址轉(zhuǎn)換信息。
本發(fā)明還提供一種信息查詢系統(tǒng),包括接口單元、查詢驅(qū)動(dòng)單元、數(shù)據(jù)處理單元和分布式文件系統(tǒng),其中:接口單元,用于接收查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求;查詢驅(qū)動(dòng)單元,用于在接口單元接收到查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求后,對查詢統(tǒng)計(jì)請求進(jìn)行任務(wù)分解,以得到相應(yīng)的 map reduce任務(wù),并將得到的map reduce任務(wù)提供給數(shù)據(jù)讀取單元;數(shù)據(jù)處理單元,用于根據(jù)得到的map reduce任務(wù),從分布式文件系統(tǒng)中相應(yīng)的分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取數(shù)據(jù),根據(jù)各分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取的數(shù)據(jù)進(jìn)行分布式計(jì)算,將各分布式數(shù)據(jù)存儲節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行合并,以得到查詢結(jié)果;并指示接口單元將查詢結(jié)果提供給查詢用戶;分布式文件系統(tǒng),用于存儲分布式數(shù)據(jù),其中在分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中,數(shù)據(jù)存儲采用RcFile格式。
進(jìn)一步地,還包括:采集單元和數(shù)據(jù)裝載單元,其中:
采集單元,用于實(shí)時(shí)采集移動(dòng)用戶的上網(wǎng)痕跡數(shù)據(jù);
數(shù)據(jù)裝載單元,用于將采集單元采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中。
進(jìn)一步地,數(shù)據(jù)裝載單元具體在進(jìn)行Hive數(shù)據(jù)倉庫中數(shù)據(jù)表創(chuàng)建時(shí),根據(jù)查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)和系統(tǒng)能力確定分桶個(gè)數(shù)。
進(jìn)一步地,數(shù)據(jù)裝載單元利用公式
Buckets=min(data_total_size/dfs.block.size,map_count)
計(jì)算分桶個(gè)數(shù)Buckets,其中min()為取最小值函數(shù),data_total_size為上網(wǎng)痕跡數(shù)據(jù)總量,dfs.block.size為分布式文件系統(tǒng)中配置的文件塊大小,map_count為查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)。
進(jìn)一步地,上網(wǎng)痕跡數(shù)據(jù)包括DPI設(shè)備分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、WAP網(wǎng)關(guān)分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、防火墻的SYSLOG日志服務(wù)器上傳的NAT地址轉(zhuǎn)換信息。
本公開提供的信息查詢方法與系統(tǒng),以自動(dòng)資源適配的方式自動(dòng)增加云資源計(jì)算節(jié)點(diǎn),提升移動(dòng)上網(wǎng)日志查詢和分析的效率。
附圖說明
圖1示出本發(fā)明一個(gè)實(shí)施例的信息查詢方法的流程圖。
圖2示出本發(fā)明一個(gè)實(shí)施例的信息查詢系統(tǒng)的結(jié)構(gòu)示意圖。
圖3示出本發(fā)明一個(gè)實(shí)施例的信息查詢方法的流程示意圖。
圖4示出本發(fā)明一個(gè)實(shí)施例的信息查詢方法的效果圖。
圖5示出本發(fā)明一個(gè)實(shí)施例的信息查詢系統(tǒng)的結(jié)構(gòu)框圖。
圖6示出本發(fā)明的另一個(gè)實(shí)施例的信息查詢系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面參照附圖對本發(fā)明進(jìn)行更全面的描述,其中說明本發(fā)明的示例性實(shí)施例。
圖1示出本發(fā)明一個(gè)實(shí)施例的信息查詢方法的流程圖。如圖1所示,該方法主要包括:
步驟100,在接收到查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求后,對查詢統(tǒng)計(jì)請求進(jìn)行任務(wù)分解,以得到相應(yīng)的map reduce任務(wù)。
步驟102,根據(jù)得到的map reduce任務(wù),從分布式文件系統(tǒng)中相應(yīng)的分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取數(shù)據(jù);其中在分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中,數(shù)據(jù)存儲采用RcFile格式。
在一個(gè)實(shí)施例中,實(shí)時(shí)采集移動(dòng)用戶的上網(wǎng)痕跡數(shù)據(jù);將采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中。
在一個(gè)實(shí)施例中,上網(wǎng)痕跡數(shù)據(jù)包括DPI設(shè)備分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、WAP網(wǎng)關(guān)分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、防火墻的SYSLOG日志服務(wù)器上傳的NAT地址轉(zhuǎn)換信息。
在一個(gè)實(shí)施例中,在進(jìn)行Hive數(shù)據(jù)倉庫中數(shù)據(jù)表創(chuàng)建時(shí),根據(jù)查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)和系統(tǒng)能力確定分桶個(gè)數(shù)。
在一個(gè)實(shí)施例中,可以利用公式
Buckets=min(data_total_size/dfs.block.size,map_count)
計(jì)算分桶個(gè)數(shù)Buckets,其中min()為取最小值函數(shù),data_total_size為上網(wǎng)痕跡數(shù)據(jù)總量,dfs.block.size為分布式文件系統(tǒng)中配置的文件塊大小,map_count為查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)。這樣,以自動(dòng)資源適配的方式自動(dòng)增加云資源計(jì)算節(jié)點(diǎn),有利于后期進(jìn)行檢索。
步驟104,根據(jù)各分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取的數(shù)據(jù)進(jìn)行分布式計(jì)算。具體地可以根據(jù)分桶算法形成的存儲節(jié)點(diǎn)進(jìn)行分布計(jì)算,這樣可以 提升移動(dòng)上網(wǎng)日志查詢和分析的效率。
步驟106,將各分布式數(shù)據(jù)存儲節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行合并,以得到查詢結(jié)果。
步驟108,將查詢結(jié)果提供給查詢用戶。
本發(fā)明實(shí)施例提供的信息查詢方法,可以充分發(fā)揮云計(jì)算資源池和Hadoop分布式大數(shù)據(jù)處理兩種技術(shù)優(yōu)勢,在數(shù)據(jù)倉庫Hive使用優(yōu)化數(shù)據(jù)分桶算法,并且對上網(wǎng)痕跡類型數(shù)據(jù)采用Rcfile壓縮格式存儲,其中,Hive RcFile壓縮存儲格式的使用,相比Hadoop中自然TextFile格式,相同數(shù)量數(shù)據(jù)可節(jié)省2/3存儲空間;Hive使用優(yōu)化數(shù)據(jù)分桶算法,相比Hive自然中不分桶存儲,業(yè)務(wù)查詢時(shí)間大幅提升。
圖2示出本發(fā)明一個(gè)實(shí)施例的信息查詢系統(tǒng)的結(jié)構(gòu)示意圖。本發(fā)明提供一種構(gòu)建在X86架構(gòu)云計(jì)算資源池上的HADOOP分布式大數(shù)據(jù)處理系統(tǒng),以自動(dòng)資源適配的方式,自動(dòng)增加云資源計(jì)算節(jié)點(diǎn),提升移動(dòng)上網(wǎng)日志查詢和分析的效率。如圖2所示,該系統(tǒng)包括:日志采集模塊27、X86架構(gòu)的云計(jì)算資源池21,HDFS分布式文件系統(tǒng)22、map reduce23、PIC查詢模塊25、HIVE統(tǒng)計(jì)分析模塊26。其中,日志采集模塊27是負(fù)責(zé)移動(dòng)上網(wǎng)痕跡數(shù)據(jù)采集的模塊,移動(dòng)上網(wǎng)痕跡數(shù)據(jù)采集模塊部署在具備高速網(wǎng)絡(luò)接入的物理設(shè)備上,負(fù)責(zé)把分組域的DPI設(shè)備分類上傳認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、WAP網(wǎng)關(guān)分類上傳認(rèn)證信息、互聯(lián)網(wǎng)訪問信息(包括代理信息)、防火墻的SYSLOG日志服務(wù)器上傳NAT地址轉(zhuǎn)換信息進(jìn)行收集和關(guān)聯(lián)。
大數(shù)據(jù)查詢分析模塊部署在x86架構(gòu)的云計(jì)算資源池21上,充分利用云計(jì)算Iaas的靈活計(jì)算資源調(diào)度能力,大數(shù)據(jù)查詢分析模塊將移動(dòng)上網(wǎng)痕跡數(shù)據(jù)采集模塊中關(guān)聯(lián)完畢的痕跡數(shù)據(jù)裝載進(jìn)入Hive數(shù)據(jù)倉庫,數(shù)據(jù)存儲采用RcFile格式,Hadoop平臺系統(tǒng)中常用的文件存儲格式有支持文本的TextFile和支持二進(jìn)制的SequenceFile等,它們都屬于行存儲方式。RCFile(Record Columnar File)存儲結(jié)構(gòu)遵循的是“先水平劃分,再垂直劃分”的設(shè)計(jì)理念。
首先,RCFile具備相當(dāng)于行存儲的數(shù)據(jù)加載速度和負(fù)載適應(yīng)能 力;其次,RCFile的讀優(yōu)化可以在掃描表格時(shí)避免不必要的列讀取,測試顯示在多數(shù)情況下,它比其他結(jié)構(gòu)擁有更好的性能;再次,RCFile使用列維度的壓縮,因此能夠有效提升存儲空間利用率,一般而言,Hive RcFile壓縮存儲格式的使用,相比Hadoop中自然TextFile格式,相同數(shù)量數(shù)據(jù)可節(jié)省2/3存儲空間。
在進(jìn)行數(shù)據(jù)表創(chuàng)建時(shí)分桶個(gè)數(shù)計(jì)算公式如下:
Buckets=min(data_total_size/dfs.block.size,map_count)
其中buckets為分桶個(gè)數(shù);data_total_size為數(shù)據(jù)總大?。籨fs.block.size為hdfs中配置的文件快大小。map_count為業(yè)務(wù)查詢?nèi)蝿?wù)分解個(gè)數(shù)。
按照上述公式確定分桶個(gè)數(shù),進(jìn)行數(shù)據(jù)倉庫Hive中數(shù)據(jù)表創(chuàng)建時(shí),可以充分考慮后續(xù)業(yè)務(wù)查詢分解和現(xiàn)有系統(tǒng)能力配置的匹配,經(jīng)過同量數(shù)據(jù)的反復(fù)測試,達(dá)到了時(shí)間和資源的優(yōu)化平衡,可以有效的縮短后期檢索所使用的時(shí)間。
圖3示出本發(fā)明一個(gè)實(shí)施例的信息查詢方法的流程示意圖。如圖3所示,該方法包括:
步驟301,用戶通過Web interface31發(fā)送查詢統(tǒng)計(jì)請求。
處理用戶通過web interface發(fā)送的查詢統(tǒng)計(jì)請求,并將所述查詢統(tǒng)計(jì)請求發(fā)送給Hive Drive32。
步驟302,Hive Drive32分解任務(wù)引擎。
具體地,Hive Drive32分解和翻譯查詢統(tǒng)計(jì)請求,將該查詢統(tǒng)計(jì)請求分解和翻譯為map reduce(映射歸約)任務(wù)。
步驟303,Map reduce33根據(jù)任務(wù)的依賴關(guān)系,執(zhí)行各種mapreduce任務(wù)。
具體地,一個(gè)mapreduce任務(wù)都被序列化到一個(gè)plan.xml文件中,然后加載到j(luò)ob cache中,并且各部分解析plan.xml(反序列化),并執(zhí)行相關(guān)操作,將結(jié)果放入臨時(shí)的位置,再由DML(數(shù)據(jù)操縱語言)轉(zhuǎn)移到指定位置。
步驟304,HDFS(Hadoop Distributed File System,分布式文件系 統(tǒng))調(diào)取分布式數(shù)據(jù)存儲節(jié)點(diǎn)數(shù)據(jù)進(jìn)行分布式計(jì)算,其中該分布式存儲節(jié)點(diǎn)的數(shù)據(jù)是根據(jù)分桶算法得到的數(shù)據(jù)。
步驟305,Map reduce33合并各個(gè)節(jié)點(diǎn)的計(jì)算結(jié)果。
步驟306,Hive Drive32返回展現(xiàn)結(jié)果給Web interface31,以通過Web interface31將展現(xiàn)結(jié)果展現(xiàn)給查詢用戶。
圖4示出本發(fā)明一個(gè)實(shí)施例的信息查詢方法的效果圖,以福建電信移動(dòng)上網(wǎng)痕跡數(shù)據(jù)的采集分析為例。福建電信900萬C網(wǎng)用戶,2014年1月的每天產(chǎn)生的原始上網(wǎng)痕跡數(shù)據(jù)為700G,按照至少保存3個(gè)月的中國工信部要求,數(shù)據(jù)總量在70T,按照本發(fā)明的架構(gòu),日志采集模塊和各個(gè)數(shù)據(jù)源通過光纖高速互聯(lián),并且使用物理服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)的匯聚和關(guān)聯(lián)。
本發(fā)明的主要核心模塊,承載在福建電信業(yè)務(wù)云計(jì)算資源池,使用vmware vspher的虛擬化計(jì)算平臺,開通6個(gè)處理節(jié)點(diǎn)。采用本發(fā)明實(shí)施例的分桶算法進(jìn)行存儲時(shí),針對用戶的漫游訪問模型、提籃臨近模型、最高訪問目的模型等實(shí)現(xiàn)了行為分析,在對100億條的數(shù)據(jù)查詢,測試查詢結(jié)果為1201秒,相比原集中式關(guān)系數(shù)據(jù)庫處理系統(tǒng),有了大幅提升。
圖5示出本發(fā)明一個(gè)實(shí)施例的信息查詢系統(tǒng)的結(jié)構(gòu)框圖,該系統(tǒng)500包括接口單元501、查詢驅(qū)動(dòng)單元502、數(shù)據(jù)處理單元503和分布式文件系統(tǒng)504,其中:接口單元501用于接收查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求;查詢驅(qū)動(dòng)單元502用于在接口單元接收到查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求后,對查詢統(tǒng)計(jì)請求進(jìn)行任務(wù)分解,以得到相應(yīng)的map reduce任務(wù),并將得到的map reduce任務(wù)提供給數(shù)據(jù)讀取單元;數(shù)據(jù)處理單元503,用于根據(jù)得到的map reduce任務(wù),從分布式文件系統(tǒng)中相應(yīng)的分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取數(shù)據(jù),根據(jù)各分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取的數(shù)據(jù)進(jìn)行分布式計(jì)算,將各分布式數(shù)據(jù)存儲節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行合并,以得到查詢結(jié)果;并指示接口單元將查詢結(jié)果提供給查詢用戶;分布式文件系統(tǒng)504,用于存儲分布式數(shù)據(jù),其中在分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中,數(shù)據(jù)存儲采用RcFile格式。
在一個(gè)實(shí)施例中,接口單元501可以為Web interface,查詢驅(qū)動(dòng)單元502可以為Hive Drive,數(shù)據(jù)處理單元可以為Map reduce,分布式文件系統(tǒng)可以為HDFS。
在一個(gè)實(shí)施例中,該裝置還包括:采集單元505和數(shù)據(jù)裝載單元506,其中:采集單元505,用于實(shí)時(shí)采集移動(dòng)用戶的上網(wǎng)痕跡數(shù)據(jù);數(shù)據(jù)裝載單元506,用于將采集單元采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中。
在一個(gè)實(shí)施例中,數(shù)據(jù)裝載單元506具體在進(jìn)行Hive數(shù)據(jù)倉庫中數(shù)據(jù)表創(chuàng)建時(shí),根據(jù)查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)和系統(tǒng)能力確定分桶個(gè)數(shù)。
在一個(gè)實(shí)施例中,數(shù)據(jù)裝載單元506利用公式
Buckets=min(data_total_size/dfs.block.size,map_count)
計(jì)算分桶個(gè)數(shù)Buckets,其中min()為取最小值函數(shù),data_total_size為上網(wǎng)痕跡數(shù)據(jù)總量,dfs.block.size為分布式文件系統(tǒng)中配置的文件塊大小,map_count為查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)。
在一個(gè)實(shí)施例中,上網(wǎng)痕跡數(shù)據(jù)包括DPI設(shè)備分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、WAP網(wǎng)關(guān)分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、防火墻的SYSLOG日志服務(wù)器上傳的NAT地址轉(zhuǎn)換信息。
圖6示出本發(fā)明的另一個(gè)實(shí)施例的信息查詢系統(tǒng)的結(jié)構(gòu)框圖,該信息查詢系統(tǒng)600可以是具備計(jì)算能力的主機(jī)服務(wù)器、個(gè)人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)、移動(dòng)終端或其他終端等。本發(fā)明具體實(shí)施例并不對計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
信息查詢系統(tǒng)600包括處理器(processor)601、通信接口(Communications Interface)602、存儲器(memory)603和總線604。其中,處理器601、通信接口602、以及存儲器603通過總線604完成相互間的通信。
通信接口602用于與網(wǎng)絡(luò)設(shè)備通信,其中網(wǎng)絡(luò)設(shè)備包括例如虛擬機(jī)管理中心、共享存儲等。
處理器601用于執(zhí)行程序。處理器601可以是一個(gè)中央處理器 CPU,或者可以是專用集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
存儲器603用于存放文件。存儲器603可以包含高速RAM存儲器,也可還包括非易失性存儲器(non-volatile memory),例如至少一個(gè)磁盤存儲器。存儲器603也可以是存儲器陣列。存儲器603還可能被分塊,并且塊可按一定的規(guī)則組合成虛擬卷。
在一種實(shí)施方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可用于:在接收到查詢用戶發(fā)送的查詢統(tǒng)計(jì)請求后,對查詢統(tǒng)計(jì)請求進(jìn)行任務(wù)分解,以得到相應(yīng)的map reduce任務(wù);根據(jù)得到的map reduce任務(wù),從分布式文件系統(tǒng)中相應(yīng)的分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取數(shù)據(jù);其中在分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中,數(shù)據(jù)存儲采用RcFile格式;根據(jù)各分布式數(shù)據(jù)存儲節(jié)點(diǎn)讀取的數(shù)據(jù)進(jìn)行分布式計(jì)算;將各分布式數(shù)據(jù)存儲節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行合并,以得到查詢結(jié)果;將查詢結(jié)果提供給查詢用戶。
在一個(gè)具體地實(shí)施方式中,該方法還包括:實(shí)時(shí)采集移動(dòng)用戶的上網(wǎng)痕跡數(shù)據(jù);將采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中。
在一個(gè)具體地實(shí)施方式中,在將采集到的上網(wǎng)痕跡數(shù)據(jù)裝載到分布式文件系統(tǒng)中的Hive數(shù)據(jù)倉庫中的步驟中,還包括:在進(jìn)行Hive數(shù)據(jù)倉庫中數(shù)據(jù)表創(chuàng)建時(shí),根據(jù)查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)和系統(tǒng)能力確定分桶個(gè)數(shù)。
在一個(gè)具體地實(shí)施方式中,利用公式
Buckets=min(data_total_size/dfs.block.size,map_count)
計(jì)算分桶個(gè)數(shù)Buckets,其中min()為取最小值函數(shù),data_total_size為上網(wǎng)痕跡數(shù)據(jù)總量,dfs.block.size為分布式文件系統(tǒng)中配置的文件塊大小,map_count為查詢統(tǒng)計(jì)請求任務(wù)分解個(gè)數(shù)。
在一個(gè)具體地實(shí)施方式中,上網(wǎng)痕跡數(shù)據(jù)包括DPI設(shè)備分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、WAP網(wǎng)關(guān)分類上傳的認(rèn)證信息和互聯(lián)網(wǎng)訪問信息、防火墻的SYSLOG日志服務(wù)器上傳的NAT地址轉(zhuǎn)換信息。
本領(lǐng)域普通技術(shù)人員可以意識到,本文所描述的實(shí)施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以針對特定的應(yīng)用選擇不同的方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
如果以計(jì)算機(jī)軟件的形式來實(shí)現(xiàn)功能并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲在計(jì)算機(jī)可讀取的非易失性存儲介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動(dòng)硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本發(fā)明的描述是為了示例和描述起見而給出的,而并不是無遺漏的或者將本發(fā)明限于所公開的形式。很多修改和變化對于本領(lǐng)域的普通技術(shù)人員而言是顯然的。選擇和描述實(shí)施例是為了更好說明本發(fā)明的原理和實(shí)際應(yīng)用,并且使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明從而設(shè)計(jì)適于特定用途的帶有各種修改的各種實(shí)施例。