宋惠鶯 姚思勤 章民融
1(上海復(fù)旦光華信息科技股份有限公司 上海 200433) 2(上海市計算技術(shù)研究所 上海 200040)
?
電子資源海量訪問行為的采集優(yōu)化研究
宋惠鶯1姚思勤1章民融2
1(上海復(fù)旦光華信息科技股份有限公司 上海 200433)2(上海市計算技術(shù)研究所 上海 200040)
隨著電子資源在高校圖書館中的普及,復(fù)雜多樣的電子資源數(shù)據(jù)給訪問跟蹤和數(shù)據(jù)挖掘帶來了日益嚴(yán)峻的挑戰(zhàn)。為了從海量的電子資源訪問數(shù)據(jù)中更快和更好地進(jìn)行行為分析和數(shù)據(jù)挖掘,基于復(fù)旦光華的ERU系統(tǒng)和其在復(fù)旦大學(xué)圖書館的歷年運行結(jié)果,重點闡述了在海量數(shù)據(jù)采集分析中的各個優(yōu)化步驟和手段,特別是原始數(shù)據(jù)清洗或過濾和數(shù)據(jù)庫優(yōu)化。通過介紹的優(yōu)化方案,復(fù)旦大學(xué)現(xiàn)場實現(xiàn)了高性價比的采集分析方案。該方法不但可以應(yīng)用在圖書館中電子資源,而且對其他的海量數(shù)據(jù)處理有著較好的借鑒性。
電子資源 用戶信息行為 ERU 大學(xué)圖書館
近年來隨著信息技術(shù)在圖書館中應(yīng)用規(guī)模持續(xù)擴(kuò)大,特別是電子資源訪問的爆炸性增長,校園網(wǎng)傳輸?shù)臄?shù)字資源信息呈現(xiàn)總量劇增、種類繁雜、并發(fā)加大和突發(fā)性操作頻繁等特征。面對如此大數(shù)據(jù)規(guī)模,對現(xiàn)有電子資源訪問行為追蹤系統(tǒng)提出了極高的要求。
如圖1所示,國內(nèi)各高校在2009年-2015年中,在電子資源方面的投入逐年提高。圖中數(shù)量代表各校平均采購量。國內(nèi)各高校的紙質(zhì)資源采購已出現(xiàn)逐年下降趨勢,而相應(yīng)的電子資源采購金額在2015年已經(jīng)和傳統(tǒng)紙質(zhì)采購基本持平??梢灶A(yù)計在未來的幾年中,電子資源采購必然會超過傳統(tǒng)紙質(zhì)采購。
圖1 電子資源于紙質(zhì)書本采購量
而隨著互聯(lián)網(wǎng)的普及,人民閱讀習(xí)慣的改變,對應(yīng)的電子資源的訪問量也在逐年增長。如圖2所示,某高校電子資源的訪問量呈幾何級的增長。
圖2 高校電子資源訪問量
隨著訪問量的逐年提高,原有的系統(tǒng)也需要進(jìn)行更新,以應(yīng)對更大的數(shù)據(jù)采集量后的處理,以備后期的統(tǒng)計和分析。
通過網(wǎng)絡(luò)中獲取到訪問電子資源的方式,是最為客觀和準(zhǔn)確的采集方式。但是由此帶來的問題是,每個學(xué)校每天產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)達(dá)到T級,如果要從這海量的數(shù)據(jù)中精準(zhǔn)獲取到訪問電子資源的數(shù)據(jù),并且做到不遺漏以保證統(tǒng)計分析的準(zhǔn)確性,是需要做大量的技術(shù)攻關(guān)研究的。本文采用大量的壓力測試和集成測試,模擬海量數(shù)據(jù)流的測試方式,驗證了幾種優(yōu)化手段集合使用的效果。
本文以高校圖書館為例,闡述在校園網(wǎng)內(nèi)電子資源訪問的采集優(yōu)化研究。
現(xiàn)有電子資源訪問系統(tǒng)分為兩類:旁路采集和集中代理兩種方式。無論哪種方式,依靠單一高性能計算機(jī)不是一種可行的、性價比較好的方案。所以采用分布式計算方式將是一個效用可行的方案,并且保持良好的擴(kuò)展性
ERU將數(shù)據(jù)采集處理分在兩個計算單元:采集工控機(jī)和數(shù)據(jù)分析服務(wù)器上,采集工控機(jī)主要針對數(shù)據(jù)清洗和過濾,而數(shù)據(jù)分析服務(wù)器主要處理特征匹配。將電子資源采集處理中的高CPU消耗和高內(nèi)存消耗放在了兩個不同的計算單元中,提供了較好的整體系統(tǒng)效能。
對于海量數(shù)據(jù)的處理,硬件性能是個繞不開的問題。CPU的核數(shù)、單核主頻、內(nèi)存讀寫速度、內(nèi)存大小、I/O總線背寬、磁盤讀寫速度都會成為制約大數(shù)據(jù)處理的瓶頸。但由于數(shù)據(jù)量的指數(shù)增加遠(yuǎn)遠(yuǎn)領(lǐng)先于硬件性能的更新和事實上的成本要求,所以追求較好性價比成為了唯一的選擇。
由于圖書館用戶訪問行為大多以文本方式存在,所以應(yīng)將性能提高的優(yōu)先次序定為內(nèi)存>高速I/O存儲>CPU。
內(nèi)存對于關(guān)系型數(shù)據(jù)庫的影響超過任何其他硬件因素。保持一定的內(nèi)存空余率是至關(guān)重要的,否則會進(jìn)而嚴(yán)重影響I/O性能而造成系統(tǒng)性能急劇下降。當(dāng)然要防止軟件內(nèi)存溢出、查詢方式不好等引起內(nèi)存不足問題。在文中會仔細(xì)闡述SQL查詢的優(yōu)化問題。
磁盤I/O實際上是數(shù)據(jù)處理上效率最慢的一環(huán)。所以在數(shù)據(jù)庫設(shè)計的一開始,就必須考慮海量數(shù)據(jù)存儲的結(jié)構(gòu)問題。在數(shù)據(jù)量達(dá)到一定規(guī)模后,必須使用分區(qū)分表方式將數(shù)據(jù)分成若干個物理或邏輯塊文件。用稍微提升軟件復(fù)雜度的方法,減少索引存放空間和磁盤頻繁訪問次數(shù)。
系統(tǒng)中總有一些性能敏感模塊,不能完全使用多進(jìn)程或者多線程方法進(jìn)行優(yōu)化。這時候適當(dāng)提高CPU主頻是一個簡單方法。
電子資源訪問處理過程中的最大數(shù)據(jù)量是來自于網(wǎng)絡(luò)背景,其中還有大量“臟數(shù)據(jù)”[1]。主要是無關(guān)行為分析和信息提取的無用背景。基于現(xiàn)有軟硬件條件下,不做清理直接進(jìn)行特征值提取是件不可能完成的任務(wù)。所以依據(jù)一般大數(shù)據(jù)處理流程,先進(jìn)行數(shù)據(jù)清洗或過濾,也稱之為“數(shù)據(jù)預(yù)處理”[3]。數(shù)據(jù)量級降低通常是最佳優(yōu)化的第一步。
4.1 過濾模型
為了提高數(shù)據(jù)庫cache基于電子資源的訪問特性,將數(shù)據(jù)過濾分成多級,每一級大量過濾無用信息,最后達(dá)到數(shù)量級大幅度下降。ERU實施六級過濾,然后將結(jié)果提供給后端分析具體訪問行為。
ERU六級過濾邏輯如圖3所示。
圖3 ERU的多級過濾
通過對數(shù)據(jù)包的層層過濾,一來可以降低對硬件的性能消耗,二來對不同層的數(shù)據(jù)流可以擴(kuò)展解析能力。
(1) 協(xié)議過濾
通常學(xué)校網(wǎng)絡(luò)背景都還有多種協(xié)議,例如TCP、UDP、ARP、ICMP等基礎(chǔ)協(xié)議。而電子資源訪問基本上都是基于HTTP或HTTPS協(xié)議,所以一般只需分析TCP即可。從實際情況來說,UDP通信包占整個背景相當(dāng)大比例,所以去除UDP等其他協(xié)議是優(yōu)化的第一步。
(2) IP過濾
經(jīng)過協(xié)議過濾后,背景中雖然只含有TCP包,但確包含了訪問所有各類網(wǎng)站的背景和某些應(yīng)用內(nèi)部通信包。去除這些無用內(nèi)容的最簡單的方法是進(jìn)行IP篩選。先獲取一份需要跟蹤的電子資源網(wǎng)站歸屬的IP列表,然后根據(jù)這張列表篩選出有意義的內(nèi)容背景。這里需要注意的是有些網(wǎng)站采用多鏡像存放,根據(jù)客戶端的路由情況動態(tài)分配鏡像。這種情況需要獲取IP列表時遍歷所有的鏡像IP地址。
(3) 端口過濾
電子資源紛繁復(fù)雜,有國際有名的大平臺,也有只服務(wù)于特殊領(lǐng)域的小網(wǎng)站。這些電子資源的提供商所采用的網(wǎng)站技術(shù)千奇百怪,有些網(wǎng)站會采用特殊端口,或者不同端口代表不同的網(wǎng)站內(nèi)容,所以非電子資源相關(guān)的數(shù)據(jù)端口背景是無用的,因此必須在IP過濾后加入端口過濾。
同時進(jìn)行端口過濾也是排除某些網(wǎng)站TCP內(nèi)部通信包,而這些內(nèi)部通信包有可能占整個網(wǎng)站流量的大多數(shù)。
(4) 域名過濾
現(xiàn)在大多數(shù)電子資源平臺,除了一些自己構(gòu)建網(wǎng)站資源存儲,大多都是托管在IDC(Internet Data Center 互聯(lián)網(wǎng)數(shù)據(jù)中心)上?,F(xiàn)今為了加速跨地域訪問速度的問題,許多IDC提供了CDN服務(wù)。 CDN全稱為Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。通過代理緩沖大大減輕服務(wù)器的壓力。但同時大型IDC使用同一個IP池來服務(wù)不同內(nèi)容商成為常態(tài)。舉個例子:IDC有一個IP,周一代表是ACS資源網(wǎng)站,周三變成微軟補丁地址,而下周又變成蘋果廣告內(nèi)容。為了應(yīng)對上述情況,ERU在IP和端口過濾后,特別加入了域名,來屏蔽這類問題。主要是偵測HTTP包頭中HOST來判斷內(nèi)容的歸屬。
(5) 類型過濾
一般網(wǎng)站背景是有HTML、XML、JS、GIF/JPG/PNG、JSON等類型數(shù)據(jù)構(gòu)成,其中電子資源下載還牽涉了一些特殊的內(nèi)容類型。從行為分析的角度出發(fā),并不是所有內(nèi)容類型都是必要的。
一般意義上,圖片文件(包括JPG、GIF、PNG)都是與行為無關(guān)。當(dāng)然不排除有些多媒體資源網(wǎng)站以圖片作為行為依據(jù)。當(dāng)然還有些網(wǎng)站會自動生成文獻(xiàn)首頁圖片做預(yù)覽,給行為分析帶來難度。
進(jìn)行類型過濾的另外一個原因是關(guān)于下載行為。下載行為在所有行為總數(shù)內(nèi)并不占多數(shù),但其占據(jù)的流量有時卻占大多數(shù)。下載本身的內(nèi)容體對行為判定無意義,而且全部內(nèi)容體又有隱含的版權(quán)問題。因此對于這類背景只需分析整個會話開始部分即可。而且這樣還可以節(jié)省原始數(shù)據(jù)儲存大小。
(6) 特征值預(yù)過濾
最后經(jīng)過以上步驟過濾后的背景還是包含了和行為判斷無關(guān)的內(nèi)容,例如首頁。ERU有一套較為完善的特征值模板庫,利用該庫進(jìn)行再次過濾,結(jié)果背景就基本和行為直接相關(guān)。
4.2 多級過濾的實驗結(jié)果
ERU采用以上多級過濾后,其數(shù)據(jù)量急劇下降2個數(shù)量等級,如圖4所示。某大學(xué)超過5 TB的日背景數(shù)據(jù)縮減到1.2 GB(壓縮后)有效行為相關(guān)背景。
圖4 多級過濾數(shù)據(jù)量對比
再對六級過濾進(jìn)行優(yōu)化率比較,發(fā)現(xiàn)六級過濾中以IP過濾、類型過濾和特征值過濾最為有效。其主要原因是:① 學(xué)校背景不管是否經(jīng)過分流器過濾,但是由于網(wǎng)絡(luò)設(shè)備的過濾局限,結(jié)果中還是含有大量的無關(guān)IP數(shù)據(jù);② 一般HTTP訪問都是圖形化和交互化的,所以背景中有大量的圖片、腳本;③ 圖書館主要關(guān)注訪問各電子資源平臺的行為,其下載行為中主要以PDF或其他文本存儲格式為主。而行為分析中一般不分析PDF內(nèi)部內(nèi)容,所以只需提取一部分文件頭信息即可。由于各級數(shù)據(jù)的多樣性,造成每級過濾效率不同,見圖5效率對比。
圖5 多級過濾效率對比
當(dāng)然以上分析并不代表TCP過濾、端口過濾、域名過濾不重要,實際上過濾的每一步都是依賴上一步過濾的結(jié)果,多級過濾的最終目標(biāo)一直是減少無效數(shù)據(jù)的數(shù)據(jù)處理量。
5.1 調(diào)整數(shù)據(jù)庫內(nèi)存配置
為了提高數(shù)據(jù)庫cache中的命中率,配置適當(dāng)?shù)膬?nèi)存是數(shù)據(jù)庫優(yōu)化的首要條件。關(guān)系型數(shù)據(jù)庫在服務(wù)器內(nèi)存分配占首要地位,應(yīng)于優(yōu)先滿足。否則數(shù)據(jù)庫查詢重復(fù)命中率較低,從而造成I/O瓶頸,進(jìn)而導(dǎo)致操作系統(tǒng)頁交換頻繁,最后系統(tǒng)進(jìn)入類似假死狀態(tài)。
5.2 調(diào)整數(shù)據(jù)設(shè)計
首先我們應(yīng)該了解一下存儲的特性,一般意義上的存儲是指掉電不丟失數(shù)據(jù)的電子設(shè)備。長久以來計算機(jī)主要采用磁介質(zhì)作為存儲,但現(xiàn)今的采用FLASH芯片或DRAM芯片的固態(tài)硬盤或U盤都已不采用磁介質(zhì),但本文以磁盤為上述固定存儲的統(tǒng)稱。
磁盤分為機(jī)械磁盤、固態(tài)硬盤和磁盤陣列。一般機(jī)械磁盤速度為50~200 Mbit/s,固態(tài)硬盤可達(dá)到768 Mbit/s(背帶6 Gbit/s)。而磁盤陣列則依靠陣列卡同時讀寫多個磁盤,從而達(dá)到背帶10~20 Gbit/s或以上。
磁盤讀寫的速度是不一樣的,一般上面提到的理論速度都是指讀取速度,而寫入速度通常只有讀取速度的一半甚至四分之一。
另外磁盤速度分順序讀寫和隨機(jī)讀寫,以上的讀寫速度都是建立在順序讀寫上。如果是隨機(jī)讀寫,速度有可能下降到原有的十分之一。
雖然內(nèi)存具有讀寫速度快(是磁盤的30~50倍)、讀和寫速度差距小和隨機(jī)讀寫速度快的特點,但內(nèi)存是掉電丟失數(shù)據(jù)的介質(zhì),而且成本相比磁盤過高,不可能無限制采用內(nèi)存。
(1) 避免高頻磁盤讀寫
磁盤I/O是整個處理過程中的速度瓶頸,就算是采用磁盤陣列在應(yīng)付大數(shù)據(jù)時依然如此。由于現(xiàn)有數(shù)據(jù)存儲硬件上一般使用磁盤控制卡(陣列卡)控制,而實際系統(tǒng)實施上一般軟件并不直接控制訪問某個磁盤或磁盤陣列,所以本文不將調(diào)整I/O硬件訪問[5]作為重點。從軟件上說,避免對磁盤的高頻讀寫則成為優(yōu)化的重點方向。由于現(xiàn)有磁盤速度遠(yuǎn)落后于內(nèi)存,同時存在著讀寫速度差距大的缺點,在必須采用高速數(shù)據(jù)緩沖的地方,應(yīng)盡量避免使用磁盤,而改用內(nèi)存作為緩沖。
(2) 數(shù)據(jù)盡量壓縮存放
在圖書館電子資源訪問的原始背景避不開海量的大數(shù)據(jù)塊存放。如果按原樣存放,不但需要非常大的存儲磁盤,而且讀寫需要的時間較長。ERU采用壓縮存放,從而避免不必要的大量磁盤讀寫。當(dāng)然這種方案對CPU有一定要求,但在如此海量的數(shù)據(jù)中,這點代價完全可以接受。
以ERU在復(fù)旦大學(xué)實施結(jié)果來看,2015年開始采用數(shù)據(jù)壓縮存放,相比2014的非壓縮存放,節(jié)省了近百分之六十的空間。如果再算上復(fù)旦大學(xué)2015年新增的14個電子資源平臺的話,數(shù)據(jù)存儲的節(jié)省更加明顯。見圖6,在優(yōu)化前后的存儲量對比。
圖6 優(yōu)化前后存儲量比較
同時數(shù)據(jù)壓縮后容量變小,也可以從另一方面加速數(shù)據(jù)的讀取速度,從而幫助總體行為分析的效率。
(3) 正確使用索引
索引是加快數(shù)據(jù)庫查詢的好方法,但是同時如果數(shù)據(jù)過多索引本身也會成為瓶頸。不應(yīng)過多地建立索引,特別應(yīng)謹(jǐn)慎考慮單字段索引和復(fù)合索引的組合,力求精簡有效。
(4) 分區(qū)分表
圖書館電子資源訪問的數(shù)據(jù)大多是行式數(shù)據(jù),如果不加處理入表,一方面大大增加索引的負(fù)荷,而且將來索引的讀取也會成為數(shù)據(jù)讀取的一個限制;另一方面造成操作系統(tǒng)中文件系統(tǒng)處理過大、過多文件的困擾。
對于一般的關(guān)系型數(shù)據(jù)庫,海量行數(shù)的存放應(yīng)采用分區(qū)分表,使之存放到不同有限的物理文件中。一方面使讀寫效率不受文件系統(tǒng)的制約;同時另一方面可以優(yōu)化索引,不至于由于數(shù)據(jù)過多時索引拖累效率的問題。
以復(fù)旦大學(xué)現(xiàn)場五千萬條數(shù)據(jù)查詢?yōu)槔?,簡單查詢速度從分鐘級降到了秒級。見圖7,優(yōu)化前后,訪問速度發(fā)生了顯著的提高,大幅度改善了用戶的使用感受。
圖7 優(yōu)化前后的查詢速度對比
5.3 優(yōu)化SQL語句
(1) 謹(jǐn)慎使用嵌套查詢
嵌套查詢牽涉了多個查詢。但如果主查詢和子查詢有相關(guān)聯(lián)的字段,例如主查詢的字段值變化會引起子查詢重新執(zhí)行,這樣就不是一個好的查詢語句。應(yīng)盡量避免這種情況。
(2) 盡量避免通配符匹配
通配符查詢不能直接使用索引進(jìn)行查詢。以SQL Server為例,只能采用Full-Text Filter Daemon Launcher進(jìn)行全文搜索優(yōu)化,其效率遠(yuǎn)遠(yuǎn)不及索引的效率。
(3) 減少全表查詢
一般全表查詢或者鎖表操作都會降低系統(tǒng)效率,有時需要數(shù)十分鐘才能完成。例如不帶條件的直接查詢實際上如無必要,盡量慎用。
(4) 合理使用臨時表
有時使用臨時表,可以加快多表復(fù)雜查詢,特別是那些類似查詢的相同中間數(shù)據(jù)。
(5) 合理使用視圖
在單表查詢中,可以考慮使用視圖。利用數(shù)據(jù)庫后臺事務(wù)并行完成查詢。
5.4 優(yōu)化數(shù)據(jù)錄入
通常的數(shù)據(jù)入庫SQL命令(INSERT)在海量數(shù)據(jù)入庫中基本力不從心。一般的方法是將命令變成存儲過程,以事務(wù)方式執(zhí)行,可以獲得十幾倍提升的效率。當(dāng)然在某些特殊情況下可能有更好的辦法。例如微軟提供CSharp處理SQL Servers的入庫上的特別函數(shù)可以到達(dá)數(shù)十倍到上百倍的提升。
優(yōu)化電子資源數(shù)據(jù)處理是一個系統(tǒng)工程,牽涉到軟硬件、數(shù)據(jù)設(shè)計、應(yīng)用編寫、流程改進(jìn)等方面。本質(zhì)上電子資源處理是一種大規(guī)模文本數(shù)據(jù)處理,過濾和壓縮是優(yōu)化處理的核心。當(dāng)然其中有些優(yōu)化方向都是互相制約的,整個優(yōu)化過程中只能在平衡原則上達(dá)到折中,獲取整個系統(tǒng)的高效率。
本研究,從計算機(jī)硬件、計算機(jī)軟件、數(shù)據(jù)庫三方面同時進(jìn)行性能調(diào)優(yōu),日處理量可達(dá)10 TB,基本滿足全國所有高校的吞吐量,而該應(yīng)用也在清華大學(xué)、北京大學(xué)、復(fù)旦大學(xué)、上海交通大學(xué)、南京大學(xué)、東南大學(xué)、四川大學(xué)等高校部署使用。
[1] Hernández M A,Stolfo S J.Real-world data is dirty:data cleaning and the merge/purge problem[J].Data Mining and Knowledge Discovery,1998,2(1):9-37.
[2] 陳世敏.大數(shù)據(jù)分析與高速數(shù)據(jù)更新[J].計算機(jī)研究與發(fā)展,2015(2):333-342.
[3] 米允龍,米春橋,劉文奇.海量數(shù)據(jù)挖掘過程相關(guān)技術(shù)研究進(jìn)展[J].計算機(jī)科學(xué)與探索,2015(6):641-659.
[4] 程學(xué)旗,靳小龍,王元卓,等.大數(shù)據(jù)系統(tǒng)和分析技術(shù)綜述[J].軟件學(xué)報,2014(9):1889-1908.
[5] 李動周.大型關(guān)系型數(shù)據(jù)庫優(yōu)化探討[J].辦公自動化,2007(2):32-34.
[6] 岑巍.數(shù)據(jù)庫優(yōu)化在海量數(shù)據(jù)下的研究與應(yīng)用[J].計算機(jī)時代,2015(2):33-35.
[7] 李振國,鄭惠中.網(wǎng)絡(luò)流量采集方法研究綜述[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2014(1):70-75.
[8] 袁梅宇.高效率多線程網(wǎng)絡(luò)流量采集算法研究及實踐[J].昆明理工大學(xué)學(xué)報(理工版),2006(1):32-36.
[9] 王冬梅,張素青,王碩.IP城域網(wǎng)網(wǎng)絡(luò)安全分析及流量過濾技術(shù)[J].信息通信,2014(10):253-254.
[10] 竇衍旭.高速網(wǎng)絡(luò)流量內(nèi)容還原系統(tǒng)的設(shè)計與實現(xiàn)[D].蘭州大學(xué),2014:1-65.
OPTIMIZATIONONTHEUSERBEHAVIORSINFORMATIONACQUISITIONOFMASSELECTRONICRESOURCES
Song Huiying1Yao Siqin1Zhang Minrong2
1(FudanGrandHorizonInformationTechnologyCo.,Ltd.,Shanghai200433,China)2(ShanghaiInstituteofComputingTechology,Shanghai200040,China)
During electric resources become more popular in university libraries, the behavior of accessing electric resources is too complex and diversified for analysis and data mining, facing increasingly severe challenges. In order to optimize the access to mass electronic resources, we present the optimization solutions at all steps of collecting the electric resource behaviors in library, based on ERU system and Fudan university library, especially cleaning up raw data and optimize current database. As a result of deploying ERU at Fudan university library, those huge raw data are processing very well at a good cost performance. This resolution could not only apply to electric resource at the school library, but also apply to deal with other areas huge data.
E-resources User information behaviour ERU Library of university
2017-03-06。宋惠鶯,工程師,主研領(lǐng)域:計算機(jī)軟件,信息安全,數(shù)據(jù)庫,大數(shù)據(jù)分析挖掘。姚思勤,本科。章民融,教授級高工。
TP3
A
10.3969/j.issn.1000-386x.2017.08.058