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

?

大數(shù)據(jù)環(huán)境下NoSQL的數(shù)據(jù)存儲(chǔ)技術(shù)及應(yīng)用

2016-08-18 18:50趙衛(wèi)
電腦知識(shí)與技術(shù) 2016年19期
關(guān)鍵詞:數(shù)據(jù)模型大數(shù)據(jù)

趙衛(wèi)

摘要:近年來(lái),隨著Web2.0的興起,數(shù)據(jù)呈爆發(fā)式的增長(zhǎng)NoSQL數(shù)據(jù)庫(kù)憑借其易擴(kuò)展、高性能、高可用、數(shù)據(jù)模型靈活等特點(diǎn)得到了業(yè)界的認(rèn)可和快速的發(fā)展。該文分析了NoSQL技術(shù)的獨(dú)特之處及其顯著優(yōu)勢(shì),研究各類(lèi)NoSQL技術(shù)并進(jìn)行了比較,最后對(duì)研究前景進(jìn)行展望。

關(guān)鍵詞:大數(shù)據(jù);NoSQL;數(shù)據(jù)模型

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)19-0011-03

傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)有著穩(wěn)定的性能和強(qiáng)大的功能,久經(jīng)考驗(yàn)且使用簡(jiǎn)單,同時(shí)關(guān)系型數(shù)據(jù)庫(kù)也積累了大量的成功案例。在互聯(lián)網(wǎng)的發(fā)展時(shí)期,是曾經(jīng)的領(lǐng)導(dǎo)者,它為互聯(lián)網(wǎng)的發(fā)展做出了卓越的貢獻(xiàn)。然而近幾年,隨著動(dòng)態(tài)交互網(wǎng)站W(wǎng)eb2.0的迅速興起,訪(fǎng)問(wèn)量不斷上升,傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)對(duì)此顯得力不從心,尤其是在大數(shù)據(jù)量高并發(fā)的情況下,暴露了很多難以克服的問(wèn)題。而非關(guān)系型的數(shù)據(jù)庫(kù)NoSQL有著非常高的讀寫(xiě)性能,能夠解決海量數(shù)據(jù)集合下,對(duì)多重?cái)?shù)據(jù)種類(lèi)進(jìn)行快速存儲(chǔ)和讀取的難題。

1 大數(shù)據(jù)對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)的要求

大數(shù)據(jù)時(shí)代,隨著云服務(wù)等應(yīng)用的快速普及,對(duì)數(shù)據(jù)中心提出了革命性的需求,數(shù)據(jù)的存儲(chǔ)架構(gòu)已經(jīng)成為網(wǎng)絡(luò)服務(wù)的核心要素。另外,互聯(lián)網(wǎng)“+”等一系列應(yīng)用的推進(jìn)和發(fā)展,使各種各樣的數(shù)據(jù)成為炙手可熱的資產(chǎn)、資源。存儲(chǔ)系統(tǒng)作為數(shù)據(jù)的載體,將成為大數(shù)據(jù)基礎(chǔ)架構(gòu)中最為關(guān)鍵的核心組成之一。

基于互聯(lián)網(wǎng)大數(shù)據(jù)的應(yīng)用需求,提出了“應(yīng)用定義存儲(chǔ)”這一概念。作為核心數(shù)據(jù)基礎(chǔ)的存儲(chǔ)系統(tǒng),不再僅僅是分散的、單一的底層設(shè)備。它除了要具備高可靠性和安全性等優(yōu)異的性能之外,還要求具備并行分布、虛擬化、良好的擴(kuò)展性以及異構(gòu)資源整合等多方面的特點(diǎn),這樣才能滿(mǎn)足具備大數(shù)據(jù)特征的業(yè)務(wù)應(yīng)用需求。海量數(shù)據(jù)需要對(duì)對(duì)數(shù)據(jù)進(jìn)行高速的讀取和存儲(chǔ),同時(shí)爆發(fā)增長(zhǎng)的數(shù)據(jù)對(duì)存儲(chǔ)設(shè)備的容量提出更高的要求,我們需要充分考慮存儲(chǔ)系統(tǒng)的數(shù)據(jù)的功能集成度、安全性、穩(wěn)定性以及系統(tǒng)的易擴(kuò)展性等各方面的因素。

2 NoSQL數(shù)據(jù)庫(kù)

2.1 NoSQL數(shù)據(jù)庫(kù)的特點(diǎn)

1)易擴(kuò)展性

NoSQL數(shù)據(jù)庫(kù)雖然種類(lèi)繁多,但是它們共同的特點(diǎn)就是數(shù)據(jù)之間無(wú)關(guān)。這就使得數(shù)據(jù)庫(kù)擴(kuò)展性獲得突破性進(jìn)展,完全區(qū)別與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)。同時(shí)在架構(gòu)的層面上,硬件設(shè)備可擴(kuò)展的能力也得到極大的增強(qiáng)。

2)大數(shù)據(jù)量,高性能

NoSQL數(shù)據(jù)庫(kù)都具有非常高的并發(fā)讀寫(xiě)性能,這一點(diǎn)在海量數(shù)據(jù)的處理上表現(xiàn)的尤其明顯。這一特點(diǎn)得益于NoSQL數(shù)據(jù)庫(kù)的無(wú)關(guān)系性,它的結(jié)構(gòu)簡(jiǎn)單。我們知道,關(guān)系型數(shù)據(jù)庫(kù)使用 Query Cache,每更新一次表Cache就會(huì)失效,在web2.0時(shí)代,短時(shí)間內(nèi)會(huì)有大量數(shù)據(jù)交互頻繁的應(yīng)用,這樣一來(lái),Cache性能和效率就不高。而NoSQL的 Cache是記錄級(jí)的,是一種細(xì)粒度的Cache,所以相比較關(guān)系型數(shù)據(jù)庫(kù)而言性能就要高的多了。

3)靈活的數(shù)據(jù)模型

NoSQL不需要事先為存儲(chǔ)數(shù)據(jù)建立相應(yīng)的字段,用戶(hù)可以隨時(shí)存儲(chǔ)自定義的各種數(shù)據(jù)格式。在關(guān)系數(shù)據(jù)庫(kù)里,要給數(shù)據(jù)表里增加或者刪除字段是非常麻煩的,尤其是在大數(shù)據(jù)量的表里,增加和刪除某一字段簡(jiǎn)直就是一個(gè)噩夢(mèng)。

4)高可用

NoSQL在不太影響性能的情況下,就可以方便地實(shí)現(xiàn)高可用的架構(gòu)。比如Cassandra,HBase模型,我們甚至可以通過(guò)復(fù)制模型來(lái)實(shí)現(xiàn)NoSQL的高可用。

2.2 NoSQL數(shù)據(jù)庫(kù)分類(lèi)

1)鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù)

鍵值存儲(chǔ)型數(shù)據(jù)庫(kù)會(huì)用到Hash表,在每一個(gè)Hash表中,有一個(gè)特定的鍵和一個(gè)指針會(huì)指向特定的數(shù)據(jù)。對(duì)于應(yīng)用系統(tǒng)來(lái)說(shuō)鍵值模型的優(yōu)勢(shì)是簡(jiǎn)單、容易部署。但是假如數(shù)據(jù)庫(kù)管理員只需要對(duì)其中一部分值進(jìn)行查詢(xún)或更新操作的時(shí)候,鍵值存儲(chǔ)數(shù)據(jù)庫(kù)就顯得效率低下了。舉例如:Redis, Voldemort, .

2)列存儲(chǔ)數(shù)據(jù)庫(kù)

為了應(yīng)對(duì)分布式存儲(chǔ)的海量數(shù)據(jù),通常會(huì)用到列存儲(chǔ)數(shù)據(jù)庫(kù)。雖然在數(shù)據(jù)庫(kù)中仍然存在鍵,但不同的是它們是指向多個(gè)列,而這些列則是由列家族來(lái)安排的。舉例如:Cassandra, HBase, Riak。

3)文檔型數(shù)據(jù)庫(kù)

文檔型數(shù)據(jù)數(shù)據(jù)庫(kù)最大的特點(diǎn)在于數(shù)據(jù)模型是文檔,它們以特定的格式存儲(chǔ)在數(shù)據(jù)庫(kù)中,比如JSON。與鍵值數(shù)據(jù)庫(kù)相比較而言,文檔型數(shù)據(jù)庫(kù)的查詢(xún)效率更高一些,它被認(rèn)為是鍵值存儲(chǔ)數(shù)據(jù)庫(kù)的升級(jí)版,允許數(shù)據(jù)庫(kù)之間嵌套鍵值。舉例如:CouchDB, MongoDB。

4)圖形(Graph)數(shù)據(jù)庫(kù)

圖形數(shù)據(jù)庫(kù)同關(guān)系型數(shù)據(jù)庫(kù)最大的不同就在于,它使用了靈活多變的圖形模型,并且能夠?qū)⒃撃P蛿U(kuò)展到多個(gè)服務(wù)器上。NoSQL數(shù)據(jù)庫(kù)沒(méi)有標(biāo)準(zhǔn)的查詢(xún)語(yǔ)言(SQL),因此進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)時(shí)需要制定相應(yīng)的數(shù)據(jù)模型,這就使得數(shù)據(jù)庫(kù)的可擴(kuò)展性受到一定的限制。圖1給出了目前正在使用的主要NoSQL數(shù)據(jù)庫(kù)類(lèi)型及其各自的占比。

3 與傳統(tǒng)數(shù)據(jù)庫(kù)的比較

3.1 NoSQL與關(guān)系型數(shù)據(jù)庫(kù)的比較

與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,它們之間最主要的差異就是數(shù)據(jù)存儲(chǔ)的方式不同。SQL存儲(chǔ)一些格式化的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)是表格式的,數(shù)據(jù)表之間可以彼此關(guān)聯(lián)相互協(xié)作存儲(chǔ)。這樣的結(jié)構(gòu)使得對(duì)數(shù)據(jù)的提取操作相對(duì)方便很多,這也是關(guān)系型數(shù)據(jù)庫(kù)無(wú)法突破的一個(gè)性能瓶頸。

NoSQL數(shù)據(jù)庫(kù)是大塊組合在一起的非結(jié)構(gòu)化數(shù)據(jù),因此不適合存儲(chǔ)在固定的數(shù)據(jù)表中,數(shù)據(jù)大多是以鍵值對(duì)存儲(chǔ),由于它不局限于固定的結(jié)構(gòu),因此可以減少一些時(shí)間和空間的開(kāi)銷(xiāo),從而符合大數(shù)據(jù)環(huán)境下對(duì)海量數(shù)據(jù)的快速提取和存儲(chǔ)的要求。表1比較了SQL和典型的NoSQL數(shù)據(jù)庫(kù)MongoDB之間的差異。

隨著數(shù)據(jù)的海量增長(zhǎng),數(shù)據(jù)庫(kù)需要隨著擴(kuò)展。SQL數(shù)據(jù)庫(kù)是縱向擴(kuò)展的,要提高數(shù)據(jù)庫(kù)的處理能力,就需要使用速度更快的硬件,因而最終會(huì)達(dá)到擴(kuò)展的上限。NoSQL數(shù)據(jù)庫(kù)采用橫向擴(kuò)展,分布式存儲(chǔ)數(shù)據(jù),因此可以通過(guò)增加更多的節(jié)點(diǎn)來(lái)分擔(dān)負(fù)載,這使得數(shù)據(jù)庫(kù)的擴(kuò)展成本降低,并且能夠快速有效的實(shí)現(xiàn)擴(kuò)展。

SQL數(shù)據(jù)庫(kù)提供可靠地存儲(chǔ)和處理數(shù)據(jù),但是對(duì)海量數(shù)據(jù)的高并發(fā)提取和寫(xiě)入能力顯然不夠,而NoSQL最大的優(yōu)勢(shì)是在應(yīng)對(duì)大數(shù)據(jù)方面,它用無(wú)模式方式做數(shù)據(jù)管理,所以其橫向擴(kuò)展?jié)摿κ遣皇芟薜摹?/p>

3.2 NoSQL技術(shù)特點(diǎn)

1)索引支持

關(guān)系型數(shù)據(jù)庫(kù)在設(shè)計(jì)最初主要考慮的是如何使得用戶(hù)的工作更加簡(jiǎn)單,設(shè)計(jì)者們沒(méi)有預(yù)料到今天的互聯(lián)網(wǎng)應(yīng)用竟然會(huì)對(duì)可擴(kuò)展性提出如此高的要求。不可否認(rèn),SQL語(yǔ)言的產(chǎn)生促進(jìn)了數(shù)據(jù)庫(kù)接口標(biāo)準(zhǔn)化的形成,從而產(chǎn)生了Oracle這樣的數(shù)據(jù)庫(kù)公司的,它的發(fā)展也同時(shí)帶動(dòng)了互聯(lián)網(wǎng)相關(guān)產(chǎn)業(yè)鏈的發(fā)展。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)由于其在單機(jī)存儲(chǔ)引擎上支持索引,因而大大降低了系統(tǒng)的可擴(kuò)展性。而NoSQL系統(tǒng)由于是在系統(tǒng)層面提供對(duì)索引的支持,這就使得單機(jī)存儲(chǔ)引擎更為簡(jiǎn)單和純粹,從而擊碎系統(tǒng)可擴(kuò)展的瓶頸。

2)并發(fā)事物處理

關(guān)系型數(shù)據(jù)庫(kù)有一套規(guī)范的關(guān)于事務(wù)并發(fā)處理的理論,比如說(shuō)鎖的粒度,事務(wù)的隔離級(jí)別,回滾,死鎖等等。我們發(fā)現(xiàn),互聯(lián)網(wǎng)中的大多數(shù)應(yīng)用,都是讀取多而寫(xiě)入少,并且大部分事務(wù)需求都是簡(jiǎn)單的。因此,一般采用copy-on-write技術(shù),即:?jiǎn)尉€(xiàn)程寫(xiě),多線(xiàn)程讀,并且寫(xiě)入和讀取相互不被影響。這樣的假設(shè)提高了NoSQL系統(tǒng)的性能,并使得系統(tǒng)的設(shè)計(jì)更為簡(jiǎn)單。

3)數(shù)據(jù)結(jié)構(gòu)

關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)引擎是一顆動(dòng)態(tài)的磁盤(pán)B+樹(shù),為了提高性能,可能需要有insert buffer聚合寫(xiě),query cache緩存讀,因而常常需要緩存管理機(jī)制,數(shù)據(jù)庫(kù)里數(shù)據(jù)的讀取和寫(xiě)入是互相影響的,因而系統(tǒng)的性能不高。然而,在NoSQL系統(tǒng)中,數(shù)據(jù)首先被寫(xiě)入到內(nèi)存,當(dāng)數(shù)據(jù)量達(dá)到一定的程度時(shí)才會(huì)dump到磁盤(pán)而生成SSTable文件。相對(duì)于關(guān)系型數(shù)據(jù)庫(kù)的動(dòng)態(tài)的B+樹(shù), SSTable就是一個(gè)排列有序的有序數(shù)組。顯而易見(jiàn),實(shí)現(xiàn)一個(gè)有序數(shù)組要比實(shí)現(xiàn)一個(gè)動(dòng)態(tài)B+樹(shù)簡(jiǎn)單且高效的多。

4)Join操作

關(guān)系型數(shù)據(jù)庫(kù)需要在存儲(chǔ)引擎層面支持Join,而NoSQL系統(tǒng)一般會(huì)根據(jù)具體的應(yīng)用實(shí)例來(lái)決定Join實(shí)現(xiàn)的方式。NoSQL基本上不進(jìn)行復(fù)雜處理,它只應(yīng)用在特定領(lǐng)域,這一點(diǎn)恰好彌補(bǔ)了關(guān)系型數(shù)據(jù)庫(kù)的不足。

4 結(jié)束語(yǔ)

在大數(shù)據(jù)信息時(shí)代,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)不能適應(yīng)大規(guī)模數(shù)據(jù)高并發(fā)的操作,無(wú)法滿(mǎn)足用戶(hù)日益增長(zhǎng)的需求。而NoSQL數(shù)據(jù)庫(kù)的出現(xiàn),極大的彌補(bǔ)了關(guān)系型數(shù)據(jù)庫(kù)的不足,它靈活的數(shù)據(jù)模型,易于擴(kuò)展以及高可用的特性,能夠最大程度的節(jié)省開(kāi)發(fā)和維護(hù)成本,這使得NoSQL數(shù)據(jù)庫(kù)正在成為數(shù)據(jù)庫(kù)領(lǐng)域的重要力量。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)有著標(biāo)準(zhǔn)規(guī)范的語(yǔ)言以及對(duì)復(fù)雜事務(wù)的出色處理等優(yōu)點(diǎn),如果能將兩者緊密結(jié)合起來(lái),那么將會(huì)給web2.0的數(shù)據(jù)庫(kù)發(fā)展帶來(lái)一個(gè)新的思路,讓數(shù)據(jù)庫(kù)的發(fā)展朝著更加穩(wěn)定、安全、高效的方向前進(jìn),這也是我們接下來(lái)主要的研究方向。

參考文獻(xiàn):

[1] COULTER T. Costing: non traditional data stores versus traditional DBMS technologies[C] //Technology Management in the Energy Smart World(PICMET).2011 IEEE Proceedingt.

[2] 郭鵬.Cassandra 實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2011.

[3] 馬帥,李建欣,胡春明.大數(shù)據(jù)科學(xué)與工程的挑戰(zhàn)與思考[J].中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊,2012,8(9).

[4] 程學(xué)旗,靳小龍,王元卓,等.大數(shù)據(jù)系統(tǒng)和分析技術(shù)綜述[J].軟件學(xué)報(bào),2014,25(9).

猜你喜歡
數(shù)據(jù)模型大數(shù)據(jù)
面板數(shù)據(jù)模型截面相關(guān)檢驗(yàn)方法綜述
加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
大數(shù)據(jù)環(huán)境下基于移動(dòng)客戶(hù)端的傳統(tǒng)媒體轉(zhuǎn)型思路
財(cái)政支出效率與產(chǎn)業(yè)結(jié)構(gòu):要素積累與流動(dòng)——基于DEA 和省級(jí)面板數(shù)據(jù)模型的實(shí)證研究
基于分位數(shù)回歸的電力負(fù)荷特性預(yù)測(cè)面板數(shù)據(jù)模型
面向集成管理的出版原圖數(shù)據(jù)模型
一種顧及級(jí)聯(lián)時(shí)空變化描述的土地利用變更數(shù)據(jù)模型
石河子市| 沙田区| 游戏| 靖远县| 邵东县| 四子王旗| 辽源市| 台江县| 客服| 海安县| 新晃| 瑞昌市| 巢湖市| 梓潼县| 香港| 岑巩县| 晋州市| 浑源县| 佛学| 浪卡子县| 定兴县| 二手房| 广安市| 冕宁县| 江陵县| 西乌珠穆沁旗| 松江区| 巩留县| 苍梧县| 多伦县| 平昌县| 宝清县| 郴州市| 太白县| 鸡东县| 林芝县| 云林县| 肃南| 开远市| 永川市| 崇阳县|