宋陽
【摘要】論文介紹了幾種大數(shù)據(jù)存儲方案以及在高校信息化建設(shè)中的可行性,并討論了各自的優(yōu)缺點(diǎn)。對數(shù)據(jù)的存儲方式直接影響到數(shù)據(jù)處理的方式和難度,對決策者是一個考驗(yàn)。從文本存儲到結(jié)合索引的分布式數(shù)據(jù)庫系統(tǒng),都有各自的優(yōu)勢和局限性。在實(shí)際的高校信息化應(yīng)用中要從需求出發(fā),選擇合適的方案,為服務(wù)師生做出更好的決策支持。
【關(guān)鍵詞】大數(shù)據(jù);分布式存儲;數(shù)據(jù)庫
【中圖分類號】G718.5
【文獻(xiàn)標(biāo)志碼】A
【文章編號】1673-1069(2018)11-0082-02
1引言
大數(shù)據(jù)分析是當(dāng)今社會的一個熱門話題。隨著科技水平的不斷發(fā)展,存儲設(shè)備的制造成本不斷下降,各類業(yè)務(wù)系統(tǒng)逐漸選擇將運(yùn)行過程中產(chǎn)生的結(jié)果和中間數(shù)據(jù)進(jìn)行存儲,不再選擇舍棄。隨著數(shù)據(jù)的不斷積累,人們逐漸認(rèn)識到,充分利用所積累的數(shù)據(jù)進(jìn)行分析,可以得到具有啟發(fā)性的結(jié)果,為今后的工作決策做支撐。高等院校的信息系統(tǒng)面向全體師生,固定用戶具有一定的規(guī)模,而且多數(shù)高校的信息化工作已經(jīng)有很長的時間,在這過程中積累了大量的數(shù)據(jù)。如今,各個高校越來越重視大數(shù)據(jù)分析所能帶來的優(yōu)勢分析,為服務(wù)師生提供更好的決策支持。這就涉及高?,F(xiàn)有信息系統(tǒng)中的傳統(tǒng)數(shù)據(jù)存儲方式轉(zhuǎn)變?yōu)檫m合大數(shù)據(jù)分析的存儲方式。本文介紹了幾種適合高校大數(shù)據(jù)存儲的可行方案,并討論了各自的優(yōu)缺點(diǎn)。
2文本存儲
文本存儲是最簡單最高效的存儲方式,具有存儲成本低的優(yōu)勢。但是,以文本形式存儲的數(shù)據(jù)很難進(jìn)行數(shù)據(jù)分析。因?yàn)楦鱾€系統(tǒng)產(chǎn)生的數(shù)據(jù)格式不同,在分析文本數(shù)據(jù)前,需要耗費(fèi)大量的人力對其進(jìn)行數(shù)據(jù)預(yù)處理,甚至轉(zhuǎn)換到其他存儲形式后再進(jìn)行分析處理,這給數(shù)據(jù)的利用造成了極大的困難。
但是,由于文本存儲的實(shí)現(xiàn)方式簡單,在缺乏人力和設(shè)備資源的高校,或者在沒有可見的數(shù)據(jù)分析需求的情況下,先對數(shù)據(jù)以文本的形式存儲下來不失為一種簡單易行的辦法。但也要重視對文本文件的備份和管理,注重?cái)?shù)據(jù)的完整性,為今后的數(shù)據(jù)應(yīng)用和擴(kuò)展提供便利。
3關(guān)系型分布式數(shù)據(jù)庫
關(guān)系型分布式數(shù)據(jù)庫是數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫的典型定義是:分布式數(shù)據(jù)庫是一個數(shù)據(jù)集合,這些數(shù)據(jù)在邏輯上屬于同一個系統(tǒng),但物理上卻分散在計(jì)算機(jī)網(wǎng)絡(luò)的若干站點(diǎn)上,并且要求網(wǎng)絡(luò)的每個站點(diǎn)具有自治的處理能力,能執(zhí)行本地的應(yīng)用。
3.1關(guān)系型分布式數(shù)據(jù)庫的優(yōu)勢
分布式數(shù)據(jù)庫通過增加適當(dāng)?shù)臄?shù)據(jù)冗余,提高系統(tǒng)的可靠性。在集中式數(shù)據(jù)庫中,盡量減少冗余度是系統(tǒng)目標(biāo)之一,要求表結(jié)構(gòu)符合范式規(guī)則。其原因是,冗余數(shù)據(jù)浪費(fèi)存儲空間且容易造成不一致性。而在關(guān)系型分布式數(shù)據(jù)庫中卻希望增加冗余數(shù)據(jù),可以打破減少冗余這一要求,在不同的設(shè)備、機(jī)架、機(jī)房中存儲同一數(shù)據(jù)片段的多個副本,從而提高整個系統(tǒng)的可靠性,并且可以提高系統(tǒng)的整體性能。常見的關(guān)系型集中式數(shù)據(jù)庫MySql和SqlServer等,都提供分布式部署的擴(kuò)展功能。一旦遷移到分布式數(shù)據(jù)庫模式后,易于集成到現(xiàn)有的信息系統(tǒng),也易于擴(kuò)充數(shù)據(jù)庫規(guī)模。
3.2關(guān)系型分布式數(shù)據(jù)庫的缺點(diǎn)
關(guān)系型分布式數(shù)據(jù)庫的部署復(fù)雜度比較高,而且對數(shù)據(jù)庫管理員的技能要求較高。通信開銷較大也是關(guān)系型分布式數(shù)據(jù)庫的困難點(diǎn),當(dāng)故障發(fā)生后系統(tǒng)恢復(fù)也比較復(fù)雜。例如,在網(wǎng)絡(luò)通信傳輸速度不高時,系統(tǒng)的響應(yīng)速度慢,與通信相關(guān)的因素往往導(dǎo)致系統(tǒng)故障,同時系統(tǒng)本身的復(fù)雜性也容易導(dǎo)致較高的故障率。
分布式數(shù)據(jù)庫比較典型的應(yīng)用在銀行系統(tǒng)、大型連鎖超市、交通票務(wù)系統(tǒng)等。分布式數(shù)據(jù)庫系統(tǒng)往往需要一個專業(yè)團(tuán)隊(duì)的時刻維護(hù),人力成本較高。由于成本和人力資源上的要求,在一般規(guī)模的高校中,分布式操作系統(tǒng)并不一定適用。高校在考慮部署分布式數(shù)據(jù)庫時,需要考慮是否具有維護(hù)數(shù)據(jù)庫的必要條件。
4非結(jié)構(gòu)化數(shù)據(jù)庫
非結(jié)構(gòu)化數(shù)據(jù)庫(NoSQL)不以符合關(guān)系型范式作為表設(shè)計(jì)要求,而以一定的數(shù)據(jù)冗余方便數(shù)據(jù)的存儲和查詢。非結(jié)構(gòu)化數(shù)據(jù)庫發(fā)展迅速,而且絕大多數(shù)都提供了分布式部署的方案,十分適合存儲海量數(shù)據(jù)。
4.1非結(jié)構(gòu)化數(shù)據(jù)庫的優(yōu)勢
非結(jié)構(gòu)化數(shù)據(jù)庫最近幾年的發(fā)展迅速,開源社區(qū)十分活躍,有大量的優(yōu)質(zhì)開源項(xiàng)目和及時的維護(hù)團(tuán)體,發(fā)行版本更迭迅速。由于不用維護(hù)文檔之間的二維關(guān)系,非結(jié)構(gòu)化數(shù)據(jù)庫具有易于操作和管理的優(yōu)勢。非結(jié)構(gòu)化數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫為互補(bǔ)關(guān)系,在應(yīng)用中要發(fā)揮非結(jié)構(gòu)化數(shù)據(jù)庫長于存儲和檢索的功能,將占用空間比較大的非結(jié)構(gòu)化檔案數(shù)據(jù)及其元數(shù)據(jù)存到非結(jié)構(gòu)化數(shù)據(jù)庫中,將占用空間不大的元數(shù)據(jù)信息復(fù)制導(dǎo)入到關(guān)系數(shù)據(jù)庫中進(jìn)行管理,以保持?jǐn)?shù)據(jù)之間的聯(lián)系。
例如流行的MongoDB數(shù)據(jù)庫,提供各種語言的客戶端開發(fā)包和數(shù)據(jù)導(dǎo)人工具,并且文檔十分完善,易于上手。Mon-goDB支持在集群中部署,提高整體的數(shù)據(jù)查詢相應(yīng)速度和擴(kuò)展性,而且在海量數(shù)據(jù)集中的查詢性能十分優(yōu)秀。HBase數(shù)據(jù)庫是ApacheHadoop項(xiàng)目的一部分,是Apache的頂級項(xiàng)目。HBase建立在Hadoop的分布式文件存儲系統(tǒng)HDFS上,具有更好的可靠性和擴(kuò)展性,十分適合存儲海量數(shù)據(jù)。而且HBase與強(qiáng)大的Hadoop大數(shù)據(jù)處理模型生態(tài)圈具有先天的支持優(yōu)勢,可以無縫的進(jìn)行Map/Reduce等的數(shù)據(jù)處理計(jì)算。
4.2非結(jié)構(gòu)化數(shù)據(jù)庫的問題
非結(jié)構(gòu)化數(shù)據(jù)庫在數(shù)據(jù)搜索方面需要付出一定的代價。
MongoDB提供對二級索引的支持,創(chuàng)建索引可以極大地提高數(shù)據(jù)查詢的相應(yīng)速度,但是也會降低數(shù)據(jù)插入的速度。這一點(diǎn)與結(jié)構(gòu)化數(shù)據(jù)庫的索引所帶來的性能影響類似。
HBase不支持二級索引,僅在RowKey和ColumnFamily上有索引,所以對存儲在HBase中的數(shù)據(jù)進(jìn)行值的掃描操作是十分耗時的,而且在RowKey的設(shè)計(jì)上也要求遵循哈希分散的原則,以盡量將數(shù)據(jù)分散到各個節(jié)點(diǎn)上。HBase與Mon-goDB相比較而言,更適合數(shù)據(jù)的寫入,而不適合數(shù)據(jù)的頻繁查詢。
5索引與非結(jié)構(gòu)化數(shù)據(jù)庫的結(jié)合
在前文中提到,非結(jié)構(gòu)化數(shù)據(jù)庫雖然在海量數(shù)據(jù)存儲上具有優(yōu)勢,但是在數(shù)據(jù)查詢與篩選上要么犧牲數(shù)據(jù)錄入速度,要么犧牲響應(yīng)速度。從這一點(diǎn)出發(fā),如果索引的創(chuàng)建和數(shù)據(jù)的錄入分開,那么是否可以找到一種更優(yōu)的方案,既保障數(shù)據(jù)錄入速度,又能在數(shù)據(jù)查詢時保持快速響應(yīng)。王文賢等人提出了一種索引技術(shù)與HBase結(jié)合的數(shù)據(jù)存儲方案,并與華為的hindex方案進(jìn)行了比較。該方案在數(shù)據(jù)錄入HBase的同時,利用Solr技術(shù)創(chuàng)建數(shù)據(jù)條目的倒排索引,并且在數(shù)據(jù)查詢時先在solr中進(jìn)行搜索,再根據(jù)搜索結(jié)果在HBase中取出數(shù)據(jù),從而同時保證了較高的數(shù)據(jù)錄入速度和響應(yīng)速度。
創(chuàng)建索引與數(shù)據(jù)錄入分為了兩個操作,如何保證索引與存儲的一致性是一個挑戰(zhàn)。HBase是基于高可靠性HDFS分布式文件系統(tǒng)之上的,可以保證存儲數(shù)據(jù)的一致性和完整性,由索引所引入的額外冗余破壞了這一優(yōu)勢,此時存儲系統(tǒng)不再具有熱機(jī)故障恢復(fù)的能力。其次,對創(chuàng)建好的索引進(jìn)行修改也是一個耗費(fèi)巨大的操作,重新創(chuàng)建索引會導(dǎo)致一段停止服務(wù)時間,這在頻繁插入或修改數(shù)據(jù)的情況下十分影響用戶體驗(yàn)。這一方案中,索引與業(yè)務(wù)系統(tǒng)的對接,系統(tǒng)的擴(kuò)展性,數(shù)據(jù)冗余開銷代價等都是需要進(jìn)一步探索的話題。
6結(jié)語
本文簡要總結(jié)了幾種適合高校建設(shè)大數(shù)據(jù)存儲系統(tǒng)的幾種方案,并討論了各自的優(yōu)缺點(diǎn)和困難點(diǎn)。在考慮存儲系統(tǒng)應(yīng)有的功能的同時,也要考慮方案的實(shí)施代價和維護(hù)成本。一個好的方案既需要與實(shí)際應(yīng)用需求相結(jié)合的精細(xì)設(shè)計(jì),也需要在實(shí)踐中不斷探索。