張睿
摘要:云存儲是分布式計算、網(wǎng)格以及并行等許多技術(shù)的衍生與發(fā)展,其保證了存儲完全虛擬化目標的實現(xiàn),在共享與存儲的功能方面,較之于以往也更加強大,非結(jié)構(gòu)化的數(shù)據(jù)主要包含電子表格、文本、PDF以及視頻音頻等等,通常情況下,我們對于分級結(jié)構(gòu)化數(shù)據(jù)進行存儲有兩種方法,其中一種是通過以文件的方式通過文件系統(tǒng)對其進行存儲,在關(guān)系型數(shù)據(jù)庫表之中對文件的相關(guān)鏈接與路徑進行存儲,另一種方法則是在數(shù)據(jù)庫表的大對象字段之中對此類數(shù)據(jù)進行存儲。本文中主要結(jié)合MongoDB的數(shù)據(jù)存儲特性、非結(jié)構(gòu)化數(shù)據(jù)的實際特點以及云存儲應(yīng)用的優(yōu)勢對非結(jié)構(gòu)化數(shù)據(jù)的存儲方法進行研究,并指出云存儲對于非結(jié)構(gòu)化數(shù)據(jù)的必要性。
關(guān)鍵詞:云存儲;非結(jié)構(gòu)化數(shù)據(jù)存儲;數(shù)據(jù)庫表
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)01-0052-03
隨著我國社會信息化發(fā)展程度的不斷加深,網(wǎng)絡(luò)在人們的生活中也得到了極為廣泛的應(yīng)用,數(shù)據(jù)量也隨之而變得十分龐大,對于當前的發(fā)展情況來說,以往的數(shù)據(jù)處理方式已無法滿足人們的要求,這也就使得云存儲與云計算技術(shù)出現(xiàn)在了人們的面前。該技術(shù)的出現(xiàn),使得對大規(guī)模數(shù)據(jù)進行處理的速度得到了十分明顯的加快,并且也使得大規(guī)模數(shù)據(jù)的存儲量得到了增加。然而,在現(xiàn)階段之中,數(shù)據(jù)的結(jié)構(gòu)化十分受到人工處理的限制,在增長的速度這一方面,結(jié)構(gòu)化數(shù)據(jù)同非結(jié)構(gòu)化數(shù)據(jù)進行比較也有著十分明顯的優(yōu)勢,可以說,有效的對非結(jié)構(gòu)化的數(shù)據(jù)進行存儲具有必要性,也是值得研究的。
1 分布式存儲技術(shù)
20世紀70年代的終端/主機計算模式使得數(shù)據(jù)的存儲技術(shù)和存儲管理產(chǎn)生,20世紀80年代以后,隨著客戶機/服務(wù)器模式的逐步普及,使得數(shù)據(jù)存儲具有分散性,也就是除文件服務(wù)器和數(shù)據(jù)服務(wù)器是核心的數(shù)據(jù)存放區(qū)以外,客戶機也會存放一定數(shù)量的數(shù)據(jù)。這使得數(shù)據(jù)存儲技術(shù)向著分布式數(shù)據(jù)存儲發(fā)展。隨著信息技術(shù)的發(fā)展,分布式存儲技術(shù)也有了迅速的發(fā)展。
1.1 定義
該系統(tǒng)是通過Internet互聯(lián)作為存儲方式,普通的PC服務(wù)器作為存儲的介質(zhì),對對外存儲這一服務(wù)進行實現(xiàn)。
常用的分布式存儲技術(shù)主要有集群存儲技術(shù)、分布式共享儲存技術(shù)、面向Internet的海量存儲技術(shù)等等[6]。群集存儲技術(shù)通過連接大量的普通計算機作為存儲節(jié)點來提供高性能、可擴展的分布式網(wǎng)絡(luò)存儲服務(wù)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,以文件共享為目的的分布式存儲技術(shù)出現(xiàn),使人們可以方便地交換數(shù)據(jù)和協(xié)同工作。Internet的發(fā)展使數(shù)據(jù)存儲平臺各有不同,而且數(shù)據(jù)分布非常廣闊,面向Internet的海量存儲技術(shù)可以管理不同平臺上的數(shù)據(jù)和分布廣泛的數(shù)據(jù)。
分布式存儲技術(shù)的發(fā)展趨勢和主要的研究熱點包括高性能、高可靠性、高擴展性、透明性和自治性[6]。
1.2 數(shù)據(jù)的分布
數(shù)據(jù)的分布問題是其亟待解決的一大問題,如何能夠保證使得數(shù)據(jù)能夠在多各層次服務(wù)器節(jié)點之中得到均勻分布,且需要保證數(shù)據(jù)在完成分布后具有可用性與可靠性,這就需要在多個副本之中對數(shù)據(jù)進行復制,這就需要保證多個副本之間復制的數(shù)據(jù)具有一致性,較為常用的操作方式主要包括同步復制副本以及異步復制副本。
1)強同步復制副本
應(yīng)用相關(guān)的客戶端對需要發(fā)送至主副本的相關(guān)請求進行設(shè)計,以主副本作為媒介對寫請求進行復制,完成這一操作之后,可由操作人員將其發(fā)送到備份的副本之中,并完成中和的操作。在實際操作之中,主要是保證在對日志進行操作時具有同步性。首先,操作人員應(yīng)用主副本對日志進行同步,保證主副本之中所具有的資料與信息能夠在第一時間傳送到備份副本之中;而后將完成的消息傳遞到主副本之中,若是消息未能準時傳回,則需要對相關(guān)問題進行檢查,應(yīng)用主副本來修改服務(wù)器,在保證這一操作能夠理想完成后,向客戶端發(fā)出成功的消息。該操作需要保證主副本與備份副本之間具有同步性,只有完成同步才能夠完成操作的協(xié)議才可以稱之為強同步協(xié)議。
在對以上操作進行完成后,在主副本之中,具有對日志進行相應(yīng)操作的能力,此時,應(yīng)將其發(fā)給所有的備份副本,之后則不用再進行操作,而是等待備份副本的主動回復,盡可能地保證對所有副本均能夠傳送成功。并且,只要能夠保證一個副本傳送的成功,使其地返回便能夠向客戶端回復操作成功的提示。應(yīng)用這一方式,具有許多的優(yōu)點能夠?qū)p失進行減少,主要有:當主副本在運行這種操作出現(xiàn)故障后,可以在第一時間啟用備份副本,保證不會導致數(shù)據(jù)的丟失,并且能夠自動地將備份副本中的完整數(shù)據(jù)切換為主副本,能夠最大程度地保證公司的運營不受影響。
2)異步復制副本
在一部分公司與一定的環(huán)境之下,需要應(yīng)用異步復制副本進行運行操作,該操作方式并不要求主副本與備份副本之間具有同步性,一旦完成了修改的相關(guān)操作,系統(tǒng)便會自動地向客戶端提示操作成功。該操作方式主要具有以下的優(yōu)點:系統(tǒng)在進行應(yīng)用時其可用性十分理想,運行時不需要考慮太多問題,也不需要經(jīng)歷過多的步驟;然而,由于其不具有一致性,當系統(tǒng)出現(xiàn)故障時,很容易導致主副本的相關(guān)數(shù)據(jù)丟失,并且丟失的數(shù)據(jù)將會不可恢復,雖然當前的許多的軟件都具備著恢復數(shù)據(jù)的功能。但是,這一功能都是定時的,例如十分鐘一保存,這邊會導致最后所進行更新與操作的一部分數(shù)據(jù)出現(xiàn)丟失的情況,造成不可避免的損失。
2 非結(jié)構(gòu)化數(shù)據(jù)存儲方式
2.1 文件系統(tǒng)的存儲方式
對于文件系統(tǒng)來說,在進行存儲時,主要是在文件的服務(wù)器之中直接將數(shù)據(jù)保存在文件系統(tǒng)之中,每一臺計算機都可以設(shè)置特定的目錄,對于需要的文件可以在目錄之中以文件的形式對數(shù)據(jù)資源進行存放,僅僅以人工的方式對文件進行較為簡單的分類。因此,通常情況下對數(shù)據(jù)的存儲都是較為無序的,需要對數(shù)據(jù)進行訪問時,則可以對存儲了文件的路徑進行搜索,完成搜索后將路徑打開并對其中的文件進行讀取。在這一技術(shù)應(yīng)用的最早階段,數(shù)據(jù)在計算機系統(tǒng)之中的存取要求十分簡單,想要對數(shù)據(jù)進行較為理想的管理僅僅通過文件系統(tǒng)便能夠較為理想的完成。
2.2 數(shù)據(jù)存儲的方式
自從關(guān)系數(shù)據(jù)庫出現(xiàn)并得到廣泛應(yīng)用以來,其實際的應(yīng)用功能不斷地朝著多樣化發(fā)展著。當前在絕大多數(shù)的應(yīng)用系統(tǒng)之中,都是以二進制的格式在關(guān)系型數(shù)據(jù)庫的BLOB字段之中對非結(jié)構(gòu)化數(shù)據(jù)進行存儲。然而,在BLOB字段中對數(shù)據(jù)進行存儲存在著一定的缺點,第一,對于非結(jié)構(gòu)化的數(shù)據(jù)文件來說,其本身便具有極大的容量,并且,隨著運行時間的增加,數(shù)據(jù)量也會隨之增多,關(guān)系型數(shù)據(jù)庫很可能在極端的時間內(nèi)顯著地膨脹,若是不加以干預(yù),時間一長,對于數(shù)據(jù)庫本身的性能必然會導致許多不良的影響出現(xiàn),甚至會使得整個應(yīng)用系統(tǒng)的性能受到極大的影響;第二,對于應(yīng)用系統(tǒng)來說,不同的應(yīng)用系統(tǒng)之間是封閉與獨立的,對于相關(guān)的文檔資料,其他的應(yīng)用無法與其共享。
針對于結(jié)構(gòu)化數(shù)據(jù)的處理,關(guān)系型數(shù)據(jù)庫產(chǎn)生了。然而,對于當前網(wǎng)絡(luò)環(huán)境下對非結(jié)構(gòu)化數(shù)據(jù)所進行處理要求并不能較為理想的滿足。舉例來說,對于數(shù)據(jù)進行全文檢索則顯得存在著一定的問題。
多媒體數(shù)據(jù)本身包含著許多種的信息類型,由于其數(shù)據(jù)的格式較為特殊,因此而導致了數(shù)據(jù)的存取處理與存儲結(jié)構(gòu)之間存在著一定的差別,為滿足當前應(yīng)用的需求,多媒體數(shù)據(jù)庫也隨之而產(chǎn)生,該數(shù)據(jù)庫主要是將多媒體技術(shù)與數(shù)據(jù)庫技術(shù)二者間進行了結(jié)合,并對傳統(tǒng)關(guān)系型數(shù)據(jù)庫中存在的優(yōu)點進行了繼承,使得其能夠成為一種同以往不同的數(shù)據(jù)系統(tǒng),較為理想的對多媒體數(shù)據(jù)之中所具有的檢索與存儲功能進行實現(xiàn),提高運行的效率。
對于非結(jié)構(gòu)化數(shù)據(jù)庫來說,其本身便屬于由于網(wǎng)絡(luò)的發(fā)展而衍生出的一種復合當前發(fā)展的新型的數(shù)據(jù)庫。從本質(zhì)上來說,其本身的數(shù)據(jù)也是對結(jié)構(gòu)化數(shù)據(jù)庫進行補充的一種形式,非結(jié)構(gòu)化數(shù)據(jù)庫屬于一種基于網(wǎng)絡(luò)應(yīng)用而產(chǎn)生的新型數(shù)據(jù)庫,其本身數(shù)據(jù)對結(jié)構(gòu)化數(shù)據(jù)庫的一種補充,能夠?qū)^為復雜的嵌套進行表達,也能夠?qū)?shù)量更多的數(shù)據(jù)類型進行支持。傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)用中對數(shù)據(jù)的長度存在著一定的限制,且在對其進行改寫時存在著一定的不便,并且,對于非結(jié)構(gòu)化數(shù)據(jù)庫來說,其能夠支持重復字段,并且,沒有一個字段還能夠通過一定的可重復的自字段進行組合而形成。概括來說,該數(shù)據(jù)庫是一種能夠?qū)ψ侄蔚拈L度與數(shù)量進行改變的數(shù)據(jù)庫,在對非結(jié)構(gòu)化信息進行處理時,較之于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫具有十分明顯的優(yōu)勢。
2.3 數(shù)據(jù)庫同文件系統(tǒng)相結(jié)合的存儲方式
該存儲方式主要是以文件的形式將非結(jié)構(gòu)化數(shù)據(jù)放置在計算機之中,在數(shù)據(jù)庫之中將數(shù)據(jù)文件的存儲路徑進行放置。在這一方式之下,在文件系統(tǒng)中放置非結(jié)構(gòu)化數(shù)據(jù)的源文件能夠便于對數(shù)據(jù)的更改、瀏覽以及傳遞等。并且,應(yīng)用數(shù)據(jù)庫之中的數(shù)據(jù)比數(shù)據(jù)表字段對非結(jié)構(gòu)化數(shù)據(jù)文件的屬性進行表示,這能夠便于對數(shù)據(jù)的查找、檢索以及分類等,保證了數(shù)據(jù)文件存儲的有序性。
數(shù)據(jù)庫同文件系統(tǒng)二者相結(jié)合的模式,對內(nèi)容管理系統(tǒng)的應(yīng)用是其中最為典型的一個表現(xiàn)形式。從數(shù)據(jù)的角度來說,內(nèi)容本身的含義則顯得更加廣泛,內(nèi)容主要是對對象進行強調(diào)。這種強調(diào)主要是指數(shù)據(jù)的類型,任何一種都可以,其不僅包括了非結(jié)構(gòu)化的信息以及結(jié)構(gòu)化的數(shù)據(jù)等,還對知識有著一定的設(shè)計。可以認為,比之于文檔、信息與數(shù)據(jù)來說,內(nèi)容更加具有全面性,并且,也可以認為其屬于對結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)、所有的信息所進行的聚合,內(nèi)容管理主要著重于對非結(jié)構(gòu)化以及半結(jié)構(gòu)化數(shù)據(jù)的管理,在對數(shù)據(jù)存儲方式進行研究的基礎(chǔ)之上,對于對象處理的過程這一方面,內(nèi)容管理也十分重視,例如對數(shù)據(jù)的收集、對數(shù)據(jù)的傳遞、對數(shù)據(jù)的檢索、對數(shù)據(jù)的存儲等等,這能夠保證將需要傳遞的內(nèi)容以最短的時間對目標地點與用于進行傳遞,從數(shù)據(jù)管理發(fā)展的角度來說,內(nèi)容管理可以作為新的方向。
3 MongoDB
目前,相對于關(guān)系型數(shù)據(jù)庫而言,非關(guān)系型數(shù)據(jù)庫NoSQL(Not Only SQL)已經(jīng)成為數(shù)據(jù)庫種類上的一個重要補充,它具有高效性和動態(tài)可伸縮性。非關(guān)系型數(shù)據(jù)庫拋棄了傳統(tǒng)關(guān)系型數(shù)據(jù)庫的關(guān)系模式,可以說不僅是數(shù)據(jù)庫類型的更新,而且是數(shù)據(jù)管理理念上的更新。
NoSQL數(shù)據(jù)庫采用key-value格式存儲數(shù)據(jù),拋棄了傳統(tǒng)關(guān)系型數(shù)據(jù)庫的事物一致性和范式約束。目前,NoSQL數(shù)據(jù)庫有很多,有滿足較高讀寫性能需求的
MongoDB是面向文檔的NoSQL數(shù)據(jù)庫,對于海量的非結(jié)構(gòu)化數(shù)據(jù)儲存有很大優(yōu)勢。與傳統(tǒng)關(guān)系型數(shù)據(jù)庫中行、表和數(shù)據(jù)庫對應(yīng),MongoDB中有文檔、集合和數(shù)據(jù)庫。文檔是MongoDB的核心,多個鍵值對構(gòu)成文檔,相當于傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的行;一組文檔構(gòu)成集合,相當于傳統(tǒng)關(guān)系型數(shù)據(jù)庫中的表;多個集合組成數(shù)據(jù)庫。
3.1 MongoDB數(shù)據(jù)模型
MongoDB文檔主要應(yīng)用BSON的二進制結(jié)構(gòu),BSON 是JSON 的二進制表示形式,即使應(yīng)用效果并不是十分理想,其存儲的效率也要優(yōu)于JSON存儲效率最好的時候,另外,BSON還對數(shù)組、鍵值對這些較為復雜的數(shù)據(jù)結(jié)構(gòu)提供支持,這也使得MongoDB文檔能夠?qū)?shù)組或子文檔進行嵌套,這樣,MongoDB僅僅需要對一個集合進行設(shè)計,這能夠十分明顯的對數(shù)據(jù)庫的性能進行提高。典型的BSON對象如下:
{
Name:”Tom”,
Address:{city:”ShenYang”,state:”China”},
Likes:[‘Football,Music],
Grade:[{lesson:”English”,score:80},{lesson:”math”,score:90}]
}
3.2 MongoDB特性分析
1)數(shù)據(jù)類十分豐富:MongoDB作為一種數(shù)據(jù)庫,其具有面向文檔的特點,想要對橫向擴展性與靈活性進行獲取,其需要對關(guān)系存儲這一模型進行設(shè)計,不再對其進行應(yīng)用。不需要實現(xiàn)對文檔之中的字段進行定義,也不是永不改變的,在文檔之中通過應(yīng)用層能夠很容易地執(zhí)行添加字段的操作,對數(shù)據(jù)模型進行更改。
2)擴展較為容易:在最開始設(shè)計的時候,MongoDB便對數(shù)據(jù)庫擴展的相應(yīng)問題進行過分析與探討,保證數(shù)據(jù)類型不存在特定的模式,這就能夠?qū)Ω鱾€服務(wù)器間自動分割這一功能進行實現(xiàn),對于MongoDB來說,其具有自動分片的功能,這就使得在集群數(shù)據(jù)之中對均衡負載這一動態(tài)進行實現(xiàn)。
3)性能十分卓越:在MongoDB之中,,對于文檔記錄來說,具有動態(tài)擴充的功能,因此,可以預(yù)先對數(shù)據(jù)文件進行相應(yīng)的分派,通過空間來對穩(wěn)定的性能進行獲取,并且,可以保證對存儲引擎中對內(nèi)存映射文件進行配置這一操作進行默認,通過操作系統(tǒng)對管理內(nèi)存的工作進行處理。
4)在管理方面,其也具有較為理想的簡便性。
4 結(jié)論
本文主要介紹了分布式存儲技術(shù)相應(yīng)的內(nèi)容,并且,對強同步復制副本進行了重點的介紹,主要是其具有較為理想的穩(wěn)定性,對非結(jié)構(gòu)化數(shù)據(jù)當前實際中應(yīng)用的三種存儲方式進行了比較,通過實際的研究結(jié)果可以發(fā)現(xiàn),在對非結(jié)構(gòu)化數(shù)據(jù)進行存儲時,應(yīng)用數(shù)據(jù)庫與文件系統(tǒng)二者進行結(jié)合的存儲方式能夠獲得更加理想的應(yīng)用效果。此外,還對MongoDB的數(shù)據(jù)模型等進行了一定的研究,對于該數(shù)據(jù)模型的優(yōu)點等進行分析。本次研究獲得了較為理想的研究成果,但仍然存在著一定的缺陷,未對MongoDB的分布式存儲架構(gòu)以及工作原理等進行研究與分析,需要在日后的研究中予以應(yīng)有的注意。
參考文獻:
[1] 謝華成,陳向東.面向云存儲的非結(jié)構(gòu)化數(shù)據(jù)存取[J].計算機應(yīng)用,2012,32(7):1924-1928.
[2] 謝華成,張昆朋,范黎林,等.基于文件分割的二進制人對象存取算法[J].計算機應(yīng)用,2011,31(10):2612-2616.
[3] 林予松,陳安領(lǐng),工宗敏.人規(guī)模流媒體直播系統(tǒng)擾動性研究[J].計算機應(yīng)用研究,2010,27(1):181-183.
[4] 張民悅,陳艷麗.不同類型三部件串并聯(lián)系統(tǒng)的可靠性分析[J].蘭州理工大學學報,2011,37(21):127-130.
[5] 李浩,蔣文斌,劉超,等.一種面向虛擬實驗的非結(jié)構(gòu)化數(shù)據(jù)存儲方法[J].實驗室研究與探索,2010,10:263-265+273.
[6] 魏青松.大規(guī)模分布式存儲技術(shù)研究[D].成都:電子科技大學,2004.
[7] Padron E J,Amor M,B6o M,et al. High performance global illumination on multi-core architectures[C]. Parallel ' Distributed and Network-based Processing , 2009 17thEuromicro International Conference on. IEEE,2009: 93-100.