汪 洋,崔 煒
(1.烽火通信科技股份有限公司 南京研發(fā)部,江蘇 南京 210019;2.武漢郵電科學(xué)研究院 湖北 武漢 430000)
基于Solr的混合介質(zhì)存儲在淘寶系統(tǒng)中的研究與應(yīng)用
汪 洋1,崔 煒2
(1.烽火通信科技股份有限公司 南京研發(fā)部,江蘇 南京 210019;2.武漢郵電科學(xué)研究院 湖北 武漢 430000)
DT時代已經(jīng)來臨,開源搜索引擎已經(jīng)成為各大公司檢索海量數(shù)據(jù)的主流,其中Solr以其支持多種格式索引,高效性,高靈活性,高可擴展性,深受廣大愛好者以及各大公司青睞,本文基于提高Solr檢索速度和對數(shù)據(jù)管理便捷性,提出了混合介質(zhì)存儲分盤管理查詢并且設(shè)置優(yōu)先級異步并發(fā)的改進方案,通過在淘寶用戶評論檢索中的研究與應(yīng)用,證實了方案能夠極大優(yōu)化了性能并且提高檢索速度。
Lucene;Solr;混合介質(zhì)存儲存儲;數(shù)據(jù)的冷熱;淘寶用戶評論檢索系統(tǒng)
信息的爆炸式增長和互聯(lián)網(wǎng)技術(shù)的與日俱新催生了數(shù)據(jù)時代(DT時代)的來臨,結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)存儲檢索已經(jīng)成為了各大公司的關(guān)注熱點。Solr作為Apache Lucene項目的開源的全文檢索框架,其主要功能有全文檢索、命中標示、分面搜索、動態(tài)聚類、數(shù)據(jù)庫集成、以及富文本的處理(例如Word、PDF),以其強大功能和開源性廣受使用者追捧,但是Solr在存儲數(shù)據(jù)時會沒有利用好存儲媒介,現(xiàn)在廣泛是將Solr的數(shù)據(jù)存儲在SATA盤中,因為SATA盤廉價適合海量存儲成本低,但是這樣存儲檢索的性能會隨之降低,本文基于此提出SATA,SAS,SSD盤混合存儲,根據(jù)業(yè)務(wù)需求,將數(shù)據(jù)分為“熱數(shù)據(jù)”,“溫數(shù)據(jù)”和“冷數(shù)據(jù)”,根據(jù)查詢頻率選擇合適的盤進行存儲,在解析并發(fā)查詢后設(shè)置相對應(yīng)的優(yōu)先級加入緩存隊列以此來提升并發(fā)查詢效率。最后在淘寶用戶檢索系統(tǒng)這個實例中驗證此方案的正確性和性能優(yōu)越性。
1.1 Lucene介紹
Lucene最初是由Doug Cutting編寫的,是一款高性能,可擴展的信息檢索工具庫。它由JAVA實現(xiàn),能夠讓你的應(yīng)用程序不用了解復(fù)雜的索引和搜索實現(xiàn)的情況下,通過調(diào)用其簡單的API實現(xiàn)從文本中解析出來的數(shù)據(jù)進行索引和搜素。并且Lucene不需要關(guān)心數(shù)據(jù)來源格式甚至不關(guān)心數(shù)據(jù)語種,只要把它轉(zhuǎn)換為文本格式即可,同時Lucene可以用來索引存儲在數(shù)據(jù)庫中的數(shù)據(jù)。
1.2 Solr介紹
Solr是基于 Lucene的開源的全文檢索框架,同樣由Java實現(xiàn),用戶可以通過HTTP請求,向搜索引擎服務(wù)器提交XML文件,然后生成索引。也可以通過Http Get操作提出查詢請求,并且得到XML格式的返回結(jié)果。
Solr是Lucene的擴展,并且提供了比Lucene更為豐富的查詢語句,對異步并發(fā)查詢進行優(yōu)化。
1.3 SATA,SAS,SSD 盤的選擇
SATA盤,SAS盤,SSD盤都是常用的磁盤,SATA盤價格便宜,是使用最廣泛的磁盤,如今SOLR底層數(shù)據(jù)存儲都依賴SATA盤接口,一塊SATA盤1T到2T之間,價格每G才0.7元,價格極其低廉,非常適合存儲海量數(shù)據(jù),但是其并發(fā)查詢性能差,高并發(fā)查詢很能滿足需求的響應(yīng)速度。所以STAT盤用來存儲“冷數(shù)據(jù)”比較合適,“冷數(shù)據(jù)”即為查詢期間比較難用到的數(shù)據(jù)。
SAS盤是SATA盤的升級版,采用了串行技術(shù)以獲取更高的傳輸速度,并且改善了存儲性能,可用性和擴充性,同時完全兼容SATA盤。現(xiàn)階段,SAS盤是機械硬盤中速度最快的了,比起傳統(tǒng)機械硬盤速度顯著提升,但是它同時有自身的不足,SAS盤同樣一塊是1T到2T大小,海量存儲數(shù)據(jù)非常方便,但是它的價格比較貴,比SATA盤貴了一倍還多,但是鑒于它優(yōu)秀的性能,存儲數(shù)據(jù),比較支持高并發(fā)的能力,SAS盤適合存儲“溫數(shù)據(jù)”,“溫數(shù)據(jù)”即為查詢頻率比較頻繁的數(shù)據(jù)。
SSD盤又名“固態(tài)硬盤”,它摒棄了傳統(tǒng)的磁介質(zhì),采用了電子存儲介質(zhì)進行數(shù)據(jù)存儲和讀取,突破了傳統(tǒng)的機械硬盤的瓶頸。擁有驚人的500MB/S的讀寫速度,I/0性能是SATA盤和SAS盤的40到60倍,同時具有低功率無噪音,工作溫度范圍大等優(yōu)點,但是SSD盤成本非常高昂,是SAS盤的10倍以上,并且每塊盤的存儲容量很小,一般才100G到200 G左右,所以SSD盤自身優(yōu)秀性能支持高并發(fā)查詢,擁有極快的響應(yīng)速度,但是它不適合用來存儲海量數(shù)據(jù),因此SSD盤用來存放“熱數(shù)據(jù)”,“熱數(shù)據(jù)”即為查詢中頻繁用到的數(shù)據(jù)。
1.4 區(qū)分冷數(shù)據(jù),溫數(shù)據(jù),熱數(shù)據(jù),并且進行數(shù)據(jù)標記
區(qū)分“冷數(shù)據(jù)”,“溫數(shù)據(jù)”,“熱數(shù)據(jù)”的具體方式是通過查詢頻率區(qū)分的,查詢頻繁的即為熱數(shù)據(jù),查詢比較頻繁即為溫數(shù)據(jù),查詢頻率小的即為冷數(shù)據(jù),當然可以根據(jù)業(yè)務(wù)具體情況實際情況來區(qū)分3種數(shù)據(jù),比如數(shù)據(jù)的重要性來區(qū)分3種數(shù)據(jù),或者數(shù)據(jù)的新舊來區(qū)分3種數(shù)據(jù),區(qū)分完數(shù)據(jù)后對3種數(shù)據(jù)打標,以便后面的數(shù)據(jù)遷移,數(shù)據(jù)遷移能妥善管理數(shù)據(jù)。
2.1 改進方案設(shè)計圖
改進后的整體設(shè)計框架如圖1所示。
圖1 改進后整體設(shè)計框架圖
2.2 改進后查詢流程圖
改進后的查詢請求流程如圖2所示。
圖2 改進后查詢請求流程圖
2.3 查詢解析模塊說明
將客戶端發(fā)出的查詢請求解析為對SATA盤查詢指令,對SAS盤查詢指令和對SSD盤查詢指令,需要特別要說明的,查詢指令如果不可分割,必須同時涉及到不同盤間混合查詢即為混合盤查詢指令。
2.4 數(shù)據(jù)遷移模塊工具說明
隨著業(yè)務(wù)需求或者客戶查詢需求的改變,“熱數(shù)據(jù)”,“溫數(shù)據(jù)”,“冷數(shù)據(jù)”3種數(shù)據(jù)也在動態(tài)變化。數(shù)據(jù)遷移模塊很好的完成了3種數(shù)據(jù)的遷移轉(zhuǎn)換。
2.5 改進方案總體流程說明
系統(tǒng)從各種關(guān)系型數(shù)據(jù)庫(Mysql,ORACLE等)和非關(guān)系型數(shù)據(jù)庫(Hbase,Mongodb 等),HDFS 文件系統(tǒng),各種流式數(shù)據(jù),本地磁盤上數(shù)據(jù)等途徑導(dǎo)入數(shù)據(jù)。通過數(shù)據(jù)查詢頻率(或者業(yè)務(wù)需求)分為“冷數(shù)據(jù)”,“溫數(shù)據(jù)”和 “熱數(shù)據(jù)”并且依次存儲在SATA盤,SAS盤和SSD盤。數(shù)據(jù)遷移模塊能妥善的管理3種數(shù)據(jù),數(shù)據(jù)遷移之前,對要遷移數(shù)據(jù)標記轉(zhuǎn)換成遷移去的盤的統(tǒng)一標記,根據(jù)查詢業(yè)務(wù)需求和數(shù)據(jù)現(xiàn)階段冷熱程度完成數(shù)據(jù)遷移轉(zhuǎn)換。
客戶端發(fā)出異步并發(fā)查詢請求,查詢解析模塊將查詢指令解析為對SATA盤查詢,對SAS盤查詢,對SSD盤查詢和指令無法分割對多個盤混合查詢4種模式。分別賦予優(yōu)先級1,2,3,0。然后依次加入緩存隊列,根據(jù)優(yōu)先級大小先后執(zhí)行查詢請求并將結(jié)果返回給客戶端。
3.1 數(shù)據(jù)來源
數(shù)據(jù)來源于淘寶提供的資源數(shù)據(jù)。選取家電,化妝品,電子產(chǎn)品等資源數(shù)據(jù)約500萬份。確保一條數(shù)據(jù)既有結(jié)構(gòu)化數(shù)據(jù)又有非結(jié)構(gòu)化數(shù)據(jù),買家信息和商品信息構(gòu)成結(jié)構(gòu)化數(shù)據(jù),買家評論和商品描述構(gòu)成非結(jié)構(gòu)化數(shù)據(jù)。檢索詞是電風扇,美白保濕,內(nèi)存10G。分別在傳統(tǒng)的全用SATA盤存儲的Solr集群和改善后的Solr系統(tǒng)中測試。
3.2 實驗應(yīng)用步驟
STEP1:把500萬份數(shù)據(jù)隨機分為約300萬份數(shù)據(jù),180萬份數(shù)據(jù),20萬份數(shù)據(jù),然后通過查詢頻率分為“熱數(shù)據(jù)”,“溫數(shù)據(jù)”和“冷數(shù)據(jù)”(這里為了實驗方便,根據(jù)數(shù)據(jù)時間,近期新數(shù)據(jù)為“熱數(shù)據(jù)”,中等新的數(shù)據(jù)為“溫數(shù)據(jù)”,老的數(shù)據(jù)為“冷數(shù)據(jù)”。具體分數(shù)據(jù)時候,也可以根據(jù)業(yè)務(wù)需求區(qū)分數(shù)據(jù))。將3種數(shù)據(jù)分別存儲到SSD盤,SAS盤,SATA盤中。選擇3臺配置相同的電腦作為集群(操作系統(tǒng):64位Windows8;CPU:INTEL 酷睿 17-3537U,2.0 GHz;內(nèi)存:4 GB)。
STEP2:每條原始數(shù)據(jù)包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)買家評論和商品描述在Solr中進行分詞,然后建立統(tǒng)一的倒排索引,索引列選取商品型號,種類和價格和結(jié)構(gòu)化數(shù)據(jù)一起索引到Solr中。
STEP3:在改進后的Solr存儲系統(tǒng)中輸入檢索詞電風扇,美白護膚,內(nèi)存10G。得到測試結(jié)果。
STEP4:在原始的Solr系統(tǒng)和HBASE數(shù)據(jù)庫中導(dǎo)入同樣的數(shù)據(jù)和輸入同樣的檢索詞進而得到測試結(jié)果。
3.3 實驗結(jié)果比較
根據(jù)表1,2,3可以得到實驗結(jié)果:
改進后的Solr混合存儲系統(tǒng)查詢速度對比沒改進的Solr和傳統(tǒng)查詢海量數(shù)據(jù)HBASE數(shù)據(jù)庫查詢速度優(yōu)勢明顯。
表1 3034279份數(shù)據(jù)
表2 1809108份數(shù)據(jù)
表3 213672份數(shù)據(jù)
數(shù)據(jù)量越大,這種優(yōu)勢表現(xiàn)的會越來越大。數(shù)據(jù)量10倍增加,改進后的Solr查詢系統(tǒng)查詢時間增加幅度較小,而傳統(tǒng)的Solr和HBASE數(shù)據(jù)庫查詢時間增加幅度較大。
文中提出了對Solr底層數(shù)據(jù)分盤存儲的改善思路,并且設(shè)計并且優(yōu)化了新的Solr底層存儲方案。并在淘寶用戶評論檢索系統(tǒng)中對比傳統(tǒng)的Solr查詢和HBASE查詢。驗證了方案的可行性和查詢性能的優(yōu)越性。
[1]Rafal Kuc.Marek Rogozinski.Mastering Elastic Search[M].北京:機械工業(yè)出版社.
[2]趙凱,王敏.基于Solr企業(yè)級搜索引擎的設(shè)計[J].電子世界,2014(11):10-11.
[3]MichaelMcCandless,ErikHatcher,OtisGospodnetic.lucene實戰(zhàn)[M].北京:人民郵電出版社.
[4]李戴維,李寧.基于Solr的分布式全文檢索系統(tǒng)的研究和實現(xiàn).[J].計算機與現(xiàn)代化,2014(9):6-9,14.
[5]莊新妍.計算機中文粉刺技術(shù)的研究現(xiàn)場與困難[J].呼倫貝爾學(xué)報,2013(3):4-9,24.
[6]陳波.基于全文檢索系統(tǒng)Solr的OPAC分面瀏覽[J].現(xiàn)代圖書情報技術(shù),2013(11):72-75.
[7]張建飛,黃艷飛.基于ElasticSearch的數(shù)字圖書館檢索系統(tǒng)[D].長沙:中南大學(xué),2015.
[8]鄒敏昊.基于Lucene的HBase全文檢索功能的設(shè)計和實現(xiàn)[D].南京:南京大學(xué),2013.
[9]韓云輝.基于Lucene的數(shù)字版權(quán)資源庫的構(gòu)建和應(yīng)用研究[D].北京:北方工業(yè)大學(xué),2013.4
[10]王小森.基于Solr的搜索引擎的設(shè)計和實現(xiàn)[D].北京:北京郵電大學(xué),2014.
[11]姚曉娜,祝忠明.基于分面搜索引擎的Solr的機構(gòu)知識庫訪問統(tǒng)計[J].現(xiàn)代圖書情報技術(shù),2016(Z1):37-40.
[12]劉春江,劉丹軍,文奕.基于Solr的專利在線分析系統(tǒng)的設(shè)計和實現(xiàn) [J].現(xiàn)代圖書情報技術(shù),2013(2):89-92.
[13]張震,甘克勤.基于Solr的大規(guī)模標準文獻可視化分析系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2016(3):67-71.
[14]馮祥,邱志超.基于Solr的海量日志信息查詢性能優(yōu)化的研究[J].硅谷,2014(3):37-39.
[15]羅惠峰.基于Lucene的站內(nèi)檢索系統(tǒng)的設(shè)計與優(yōu)化[D].杭州:浙江工業(yè)大學(xué),2015.
Based on stored in Taobao Solr mixed media system in the research of application
WANG Yang1,CUI Wei2
(1.Ltd.Nanjing R&D,F(xiàn)iberHome Communications Science&Technology Development Co.,Nanjing 210019,China;2.Wuhan Research Institute of Posts and Telecommunications, Wuhan 430000,China)
DT times has come,open source search engine has become the mainstream of the major companies to retrieve massive data.Among them Solr to support a variety of formats index,high efficiency,high flexibility,high saclability,bythe majority of fans and the favor of major companies.In this paper,base on the improved Solr retrieval speed and convenience data management ,put forward the mixed media storage,query points disk management and setting priorities asynchronous concurrent impovements.Through research and application in taobao users comments retrieval system,confirmed the scheme to optimize performance and improve the retrieval speed.
Lucene; Solr; mixed media storage; hot and cold data; Taobao user review system
TN02
:A
:1674-6236(2017)15-0022-04
2016-06-20稿件編號:201606139
江蘇省科技支撐計劃(2015BAK20B01)
汪 洋(1978—),男,江蘇南京人,碩士,高級工程師。研究方向:大數(shù)據(jù),計算機網(wǎng)絡(luò)。