国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于HBASE的4G流量話單實時查詢及分頁展示方法

2017-11-14 10:45:47龍鳳王凡鮮鵬唐堂
移動通信 2017年19期

龍鳳+王凡+鮮鵬+唐堂

【摘 要】現(xiàn)有大數據集實時查詢和分頁展示的兩種方法存在時延大、適用場景有限等問題,為支撐4G用戶海量流量話單的查詢,構建對應于大數據表的統(tǒng)計信息索引小表,同時設計一套異步數據頁緩存裝置,實現(xiàn)對數據服務器查詢出的數據的緩存,供用戶對后續(xù)頁面的查詢使用,以提高查詢和展示效率。

【關鍵詞】HBASE 流量話單 分頁展示

中圖分類號:TN929 文獻標志碼:A 文章編號:1006-1010(2017)19-0024-05

Method of Real-time Inquiry and Pagination Display of 4G Traffic Bill Based on HBASE

LONG Feng, WANG Fan, XIAN Peng, TANG Tang

[Abstract] The two methods of existing big data set real-time inquiry and pagination display suffer from large delay and limited application scenario. In order to support the massive 4G user traffic bill inquiry, a small statistical information index table was constructed according to the big data table. A set of asynchronous data page buffer device was designed. Data buffer of data server inquiry output was realized. It can be provided to user to inquire the subsequent page. The efficiency of inquiry and display is enhanced.

[Key words]HBASE traffic bill pagination display

1 引言

隨著4G業(yè)務的快速發(fā)展,電信運營商計費系統(tǒng)中用戶的流量清單飛速增長,目前占到用戶清單總存儲量的70%以上,在查詢用戶月流量清單時,需要對超過10萬條的結果集進行查詢及展示,用戶等待時間較長,滿意度低。因此本文接下來將介紹一種新的大量數據實時查詢及分頁展示的方法,提高查詢效率,提升用戶滿意度。

2 分頁查詢展示方法的現(xiàn)狀研究

目前常見的大數據實時查詢和分頁展示有兩種方法:

(1)方法一:客戶端發(fā)送請求到數據服務器,數據服務器將查詢結果返回給客戶端,客戶端根據獲取的數據集進行處理,統(tǒng)計數據集的一些相關信息,然后在前臺界面分頁展示給用戶。該種方法易管理、易維護,技術體系成熟,但是當查詢的數據集過大時,超過10萬條記錄,服務端的查詢時間長,網絡數據傳輸量大,用戶等待時間長。

(2)方法二:客戶端在發(fā)送請求到數據服務器時,采用頁碼索引的方式,每次只發(fā)送需要查詢的頁碼給數據服務器,數據服務器根據特定算法,每次根據頁碼范圍進行查詢,將查詢的結果集返回給客戶端。該種方法適用于只展示明細數據、不需要展示統(tǒng)計數據的場景。

3 統(tǒng)計信息索引表和異步數據緩存的技術

原理

本文介紹一種大數據實時查詢分頁展示的方法,通過建立統(tǒng)計信息索引表和異步數據頁緩存裝置方式解決現(xiàn)有的數據查詢與分頁展示方法存在的問題。

在數據查詢系統(tǒng)(本文以HBASE數據庫為例)中,構建對應于大數據表的統(tǒng)計信息索引小表,并通過相關技術保證統(tǒng)計索引小表與清單大表間的數據實時同步。同時設計一套異步數據頁緩存裝置,實現(xiàn)對數據服務器查詢出的結果集數據的緩存,供用戶對后續(xù)頁面查詢使用。從索引統(tǒng)計小表中查詢出統(tǒng)計信息,在清單查詢填充程序完成初始設定的展示頁碼緩存容器填充時,HBASE服務器端查詢應用程序就可以對客戶端展示程序進行結果響應,客戶端展示程序在收到返回的報文后,給用戶展現(xiàn)統(tǒng)計信息及經過排序后的前幾頁清單數據。

同時,對完整結果集的查詢并行進行,并不斷填充到空的頁碼緩存容器中。當用戶需要檢索未展示的清單頁時,頁碼索引信息被發(fā)送到HBASE服務端查詢程序,HBASE服務端查詢程序通過算法分析其對應的頁碼緩存容器是否已填完數據,如完成則從相關頁碼緩存容器中取出數據,對客戶端進行響應,如未完成則等待頁碼容器被填充。由于采用了異步并行技術,頁碼容器未填充的概率較低,即使出現(xiàn),其等待填充的時間也遠遠小于全量數據查詢的時間,故采用本方法后,大大改善了用戶在查詢大數據清單時的查詢展示時間,能提升用戶感知及滿意度,同時避免了全量查詢數據結果集的網絡傳輸。

4 統(tǒng)計信息索引表和異步數據緩存的技術

實現(xiàn)

下面以用戶GPRS海量清單實時查詢與分頁展示的設計為實例進行說明。

4.1 邏輯結構

本方法實現(xiàn)的邏輯與物理結構如圖1所示:

步驟1:HBASE服務器端查詢程序收到客戶端展示程序的請求,根據查詢條件檢索索引統(tǒng)計小表,獲取用戶查詢結果集的統(tǒng)計信息,如GPRS清單的總條數、總費用、總流量。

步驟2:HBASE服務器端查詢程序初始化異步數據緩沖池中的頁碼緩沖器鏈表,調用2個查詢填充程序對清單數據大表按HBASE的key-value方式進行檢索,一個順序查、一個逆序查。

步驟3:查詢填充程序將獲得的查詢結果不斷填充到異步數據緩沖池中對應的頁碼緩沖器鏈表上的頁碼緩沖容器中,一個順序填充、一個逆序填充。endprint

步驟4:HBASE服務器端查詢程序在從索引統(tǒng)計小表中獲取結果集統(tǒng)計信息且啟動了查詢填充程序后,監(jiān)控其對應的頁緩沖鏈表上,前幾個頁緩沖容器是否被填滿(展示幾個頁可以通過配置文件配置)。

步驟5:當HBASE服務器端查詢程序發(fā)現(xiàn)前幾個頁緩沖容器已經被填滿后,HBASE服務器端查詢程序讀取相關頁緩沖容器中的數據,結合前面獲得的結果集統(tǒng)計信息,生成XML返回報文對客戶端展示程序進行響應,客戶端展示程序獲取到返回報文后,給用戶進行初步展示。

步驟6、7:和HBASE存儲程序在對原始清單文件進行解析存儲,在向HBASE數據庫清單大表存入清單數據時,同時存入統(tǒng)計項信息,兩個操作同時成功方認為數據存儲成功。

步驟8:索引統(tǒng)計小表同步程序實現(xiàn)清單大表與索引小表的信息同步,在帳期切換時,對索引小表進行合并,合并后一個用戶號碼只對應一條統(tǒng)計信息,加快了索引小表的檢索速度。

步驟9:頁碼緩沖容器內存回收程序根據配置設定的緩沖失效時間,在失效時間到達時,清理頁碼緩沖容器鏈表,釋放相關的內存。

4.2 HBASE數據庫設計

(1)用戶清單索引統(tǒng)計小表歷史月HBASE存儲格式設計

1)RowKey設計

MSISDN+日期+業(yè)務類型;

MSISDN:計費號碼;

日期:處理時間字段,精確到天;

業(yè)務類型:兩位計費業(yè)務類型。

2)Column Family設計

一個Column Family、3個column,分別為話單總條數、總流量和總金額。

(2)用戶清單索引統(tǒng)計小表當前月HBASE存儲格式設計

1)RowKey設計

MSISDN+日期+業(yè)務類型;

MSISDN:計費號碼;

日期:處理時間字段,精確到天;

業(yè)務類型:兩位計費業(yè)務類型。

2)Column Family設計

一個Column Family、2個column,分別為流量和金額。

該類表存儲需要在前臺進行展示的統(tǒng)計信息,存儲量很小,如用戶GPRS的總流量、總條數、總金額,對于歷史月的GPRS清單查詢,如果是比當期帳期小一月,會在月初由后臺同步程序,即圖1的步驟8完成統(tǒng)計信息的初始化工作。

(3)用戶清單大表HBASE存儲格式設計

1)RowKey設計

MSISDN+日期+業(yè)務類型;

MSISDN:計費號碼;

日期:處理時間字段,精確到天;

業(yè)務類型:兩位計費業(yè)務類型。

2)Column Family設計

一個Column Family、多個column,單條話單整體存入column。

該表為用戶清單實際數據的存儲表,存儲海量的用戶清單相關信息,在進行用戶清單查詢時,如遇到用戶清單量非常大時,由HBASE客戶端查詢程序調度的并發(fā)查詢子程序實現(xiàn)將結果集異步緩存到數據緩存池中,如步驟3所示。

4.3 HBASE服務器端查詢程序設計

HBASE服務器端查詢程序根據前端展示程序要求構造,響應前段查詢請求時,與客戶端展示程序間通過XML報文進行通信

HBASE服務器端查詢程序收到客戶端展示程序發(fā)送的清單查詢請求報文后,判斷是否為首次查詢,如為首次查詢則從統(tǒng)計信息索引小表中查詢對應用戶的統(tǒng)計信息,然后初始化頁碼緩存容器鏈表,同時啟動2個查詢填充進程對HBASE中的清單大表進行并發(fā)查詢,并發(fā)程序從HBASE大表中查詢出數據后,將數據放入頁碼緩存容器鏈表中,HBASE服務器端程序在從索引統(tǒng)計小表中獲取了用戶的統(tǒng)計信息后,循環(huán)掃描頁碼緩存容器鏈表中的前n個容器是否已填滿(n的數量可以通過配置文件定義),如都已填滿,則產生XML報文進行響應,其響應報文見上述響應報文體,此時所有結果集的頁碼緩存容器并未填滿,兩個查詢填充程序仍然在順序和逆序的兩個方向上填充頁碼緩存容器鏈表,但前臺展示程序已經可以給用戶進行展示了,大大提升了展示的效率。

當用戶點擊頁碼進行展示選擇時,展示端程序發(fā)送請求報文,報文中的beginpage和endpage不為空,此時HBASE服務器端程序知曉為非首次查詢,其到頁碼數據緩沖池中進行查詢,通過傳入的頁碼范圍匹配到對應的頁碼緩存容器,并檢查查詢填充進程是否已將其所需的頁碼緩存容器填滿,如填滿則讀取相關數據生成XML報文進行響應,如未填滿則繼續(xù)等待,直到其需要的頁碼緩沖器全部被填滿后,生成XML報文進行響應。由于用戶要求展示的內容為全部結果集的片段,且這些片段的填充被2個并行服務器同時進行,用戶的請求也是分多次進行且是順序增長的,其時間間隔足以讓并行服務器將頁碼緩存容器鏈表填滿,故查詢效率大大提升,另外用戶很可能只瀏覽結果全集里的很少一部分關注的內容,所以網絡傳輸的數據量也大大降低,上述處理流程結構如圖2所示:

4.4 頁碼緩存容器結構及查詢填充程序設計

頁碼緩存容器是一種內存結構,所有的頁碼緩存容器串成一個雙向鏈表,其結構如圖3所示:

頁緩存容器頭內存結構包括指向第一個頁碼緩存器的指針和指向最后一個頁碼緩存器的指針,正序查詢填充程序的填充進度指針及倒序查詢填充程序的填充進度指針(其中正序查詢填充程序的填充進度指針初始指向第一個頁碼緩存容器,逆序查詢填充程序進度指針初始指向最后一個頁碼緩存容器),兩個查詢填充進程從鏈表的兩端對鏈表的頁碼緩存容器進行數據填充,其處理流程如圖4所示:

4.5 頁碼緩存容器內存回收程序設計

該程序根據緩存超時時間設定,回收頁碼緩存容器占用的內存,其處理流程如圖5所示。endprint

4.6 HBASE存儲程序設計

HBASE存儲程序在進行話單存儲時,同時向HBASE數據庫清單大表與索引統(tǒng)計小表進行插入,類似關系數據庫中的表與索引的關系,在HBASE數據庫調用HBASE接口存儲全量清單數據進清單大表中,在索引統(tǒng)計小表中根據字段過濾存入統(tǒng)計字段數據,索引統(tǒng)計小表占全量清單數據的比重一般控制在5%以內,否則異步展示的效果將打折扣,本例中只有2個字段:流量和金額,其占全量清單數據比重不到1%。

4.7 索引統(tǒng)計小表信息同步程序

當帳期切換時,索引統(tǒng)計小表信息同步程序對上月的索引小表進行處理,實現(xiàn)每個用戶號碼只對應一條統(tǒng)計信息,提升索引小表查詢效率。

5 結論

本文提供了一種大數據實時查詢分頁展示的方法,通過數據的異步處理技術,使清單數據可以異步按用戶需要展示,而統(tǒng)計數據通過小表查詢同步展示,節(jié)約了查詢和展示時間,同時設計了頁數據緩存容器裝置,降低了數據服務器的訪問量,并提升了用戶查詢與分頁展示的速度,特別是在查詢分頁展示超過上百頁或上千頁的數據時,具備很高的應用價值。該方法在某省移動公司的業(yè)務支撐系統(tǒng)HBASE用戶詳單數據庫中已進行使用,降低了數據服務器的訪問負荷,提高了用戶的查詢效率。

參考文獻:

[1] 楊志. 一種實時大數據查詢技術——對象分布式查詢[J]. 計算機與數字工程, 2015,43(10): 1851-1856.

[2] 涂新莉,劉波,林偉偉. 大數據研究綜述[J]. 計算機應用研究, 2014,31(6): 1612-1616.

[3] 衛(wèi)長安. 大數據環(huán)境下數據的查詢優(yōu)化研究[J]. 長治學院學報, 2015,32(5): 56-57.

[4] 蔡志剛,閻潔. 基于緩存框架的Web緩存研究[J]. 計算機教學與教育信息化, 2009,5(31): 8737-8739.

[5] 嚴霄鳳,張德馨. 大數據研究[J]. 計算機技術與發(fā)展, 2013,23(4): 168-172.

[6] 萬虎,徐遠超,孫鳳蕓,等. 面向大數據應用的眾核處理器緩存結構設計[J]. 計算機工程與科學, 2015,37(1): 28-35.

[7] 陳潔,陳冬杰,黃幫明. 基于HBASE的大數據壓縮算法的研究[J]. 電腦知識與技術, 2014,10(13): 3146-3147.

[8] 張雄彪. Hibernate數據緩存技術[J]. 湖北第二師范學院學報, 2013,30(8): 69-70.

[9] 張輝,趙郁亮,徐江,等. 基于Oracle數據庫海量數據的查詢優(yōu)化研究[J]. 計算機技術與發(fā)展, 2012,22(2): 165-167.

[10] 王珊,王會舉,覃雄派,等. 架構大數據:挑戰(zhàn)、現(xiàn)狀與展望[J]. 計算機學報, 2011,34(10): 1741-1752.endprint

甘谷县| 惠东县| 铜梁县| 碌曲县| 西林县| 北宁市| 海口市| 宁化县| 黄龙县| 吕梁市| 大竹县| 拜泉县| 威海市| 惠东县| 永兴县| 合阳县| 榆中县| 健康| 乐东| 邯郸县| 嘉义市| 雷山县| 东乡县| 体育| 石首市| 衡阳市| 土默特右旗| 建德市| 长阳| 花垣县| 盘锦市| 沅陵县| 温宿县| 土默特左旗| 延长县| 武夷山市| 贡觉县| 太白县| 玉林市| 黄冈市| 阳泉市|