• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    NoSQL非關(guān)系型數(shù)據(jù)庫的發(fā)展和應(yīng)用研究

    2014-04-29 00:00:00高源

    摘 要:隨著web2.0技術(shù)的興起,NoSQL數(shù)據(jù)庫得到了廣泛的發(fā)展和應(yīng)用。本文從初學(xué)者的角度出發(fā),針對傳統(tǒng)數(shù)據(jù)庫的瓶頸,從讀寫速度、擴(kuò)展性、運營成本、數(shù)據(jù)容量等方面對NoSQL數(shù)據(jù)庫進(jìn)行了分析,并對常見的幾種NoSQL數(shù)據(jù)庫進(jìn)行了研究。

    關(guān)鍵詞:NoSQL;web2.0;Cassandra;MongoDB

    中圖分類號:TP311.13

    1 NoSQL的起源和發(fā)展

    當(dāng)今的互聯(lián)網(wǎng)時代是一個數(shù)據(jù)大爆炸的時代,電子商務(wù)、掃描文件、微博、音視頻產(chǎn)生的數(shù)據(jù)文件每天都在快速增多。淘寶網(wǎng)每天被瀏覽的店鋪和商品記錄超過30億條,每天的成交記錄和客戶評價有上千萬條。優(yōu)酷網(wǎng)每天收到的運營數(shù)據(jù)總量已達(dá)T級,目前的歷史運營數(shù)據(jù)已達(dá)數(shù)百TB。據(jù)研究公司IDC預(yù)測,2020年全球的電子數(shù)據(jù)總量將達(dá)到35ZB,比當(dāng)前的電子數(shù)據(jù)增加44倍。電子數(shù)據(jù)格式的多元化發(fā)展和規(guī)模的飛速增長,使傳統(tǒng)數(shù)據(jù)庫的技術(shù)面臨著新的挑戰(zhàn),主要體現(xiàn)在以下幾個方面:

    1.1 讀寫慢。web2.0網(wǎng)站要實時處理用戶的動態(tài)信息,在數(shù)據(jù)量達(dá)到一定規(guī)模時,關(guān)系型數(shù)據(jù)庫由于并發(fā)的負(fù)載過高而容易發(fā)生死鎖問題,此時系統(tǒng)的讀寫速度將會嚴(yán)重下滑。

    1.2 數(shù)據(jù)庫的擴(kuò)展性不足。web2.0結(jié)構(gòu)的數(shù)據(jù)庫不方便直接擴(kuò)展,對傳統(tǒng)數(shù)據(jù)庫的硬件升級,必須要做停機(jī)維護(hù),這對web2.0網(wǎng)站來講是不允許的。

    1.3 建設(shè)和運營成本高。傳統(tǒng)的企業(yè)級數(shù)據(jù)庫價格驚人,在實際的項目中其價格隨著系統(tǒng)規(guī)模的擴(kuò)大而不斷上升,所以在服務(wù)器集群中,高昂的建設(shè)和運營成本成為其發(fā)展的瓶頸。

    1.4 有限的支撐容量。很多web2.0網(wǎng)站每天的信息量達(dá)上千萬條,查詢大的數(shù)據(jù)表格可以通過分表、分庫等方法解決,但是由此也加重了數(shù)據(jù)備份和擴(kuò)容的復(fù)雜性。

    NoSQL是在新形勢下出現(xiàn)的一種非關(guān)系型數(shù)據(jù)庫的總稱,它用全新的存儲方式,簡化了數(shù)據(jù)交互,減少編寫、調(diào)試的代碼量,對海量數(shù)據(jù)實現(xiàn)高效存儲和高效訪問,同時它的開源免費也降低了企業(yè)的運營成本,Google、Facebook、Twitter和Amazon等知名公司都開發(fā)和使用NoSQL系統(tǒng)來解決海量數(shù)據(jù)存儲問題。

    2 NoSQL數(shù)據(jù)庫的優(yōu)勢

    現(xiàn)在主流的NoSQL數(shù)據(jù)庫有Cassandra、BigTable、Dynamo、SimpleDB、CouchDB、MongoDB和Redis等。Google公司使用的就是BigTable數(shù)據(jù)庫,Amazon公司使用的是Dynamo數(shù)據(jù)庫。NoSQL數(shù)據(jù)庫對比傳統(tǒng)關(guān)系數(shù)據(jù)庫,其優(yōu)勢主要體現(xiàn)在以下幾個方面:

    2.1 數(shù)據(jù)庫的開發(fā)效率高。在設(shè)計上NoSQL數(shù)據(jù)庫和傳統(tǒng)的數(shù)據(jù)庫有很大的不同。傳統(tǒng)應(yīng)用程序的開發(fā)中,需要在內(nèi)存數(shù)據(jù)結(jié)構(gòu)和關(guān)系數(shù)據(jù)庫的映射上花費大量的精力和時間。NoSQL數(shù)據(jù)庫更符合應(yīng)用程序的需求,部分NoSQL數(shù)據(jù)庫可以在硬盤上直接操作,簡化了數(shù)據(jù)的交互,減少了編寫、調(diào)試程序的工作量。

    2.2 數(shù)據(jù)庫的擴(kuò)展能力強(qiáng)?,F(xiàn)在企業(yè)通常使用更小、更便宜的計算機(jī)組成集群來構(gòu)建數(shù)據(jù)庫,NoSQL數(shù)據(jù)庫的設(shè)計正是針對服務(wù)器集群,所以更適合大規(guī)模數(shù)據(jù)的處理。

    2.3 數(shù)據(jù)庫的開發(fā)成本低廉。因為NoSQL數(shù)據(jù)庫主要都是開源軟件,所以沒有昂貴的開發(fā)成本。在項目開發(fā)中很多企業(yè)為了節(jié)省成本而選擇NoSQL數(shù)據(jù)庫。

    2.4 數(shù)據(jù)模型靈活。在關(guān)系數(shù)據(jù)庫里,數(shù)據(jù)有固定的結(jié)構(gòu),通過各種操作互相關(guān)聯(lián),對大型的表格增刪字段非常麻煩。NoSQL的存儲只有一對鍵值或數(shù)組,無需事先建立字段,任何時候都可以存儲自定義的數(shù)據(jù)格式。

    3 NoSQL數(shù)據(jù)庫的主要產(chǎn)品

    3.1 Cassandra。Cassandra是由Facebook公司開發(fā)的開源式數(shù)據(jù)庫,具有模式靈活、擴(kuò)展性強(qiáng)、多數(shù)據(jù)中心識別、支持分布式讀寫等特點。Cassandra被Digg、Twitter等多家互聯(lián)網(wǎng)知名公司使用,是目前非常流行的一種NoSQL數(shù)據(jù)庫系統(tǒng)。用Cassandra存儲數(shù)據(jù),不必提前確定字段,在系統(tǒng)運行時可以隨意增加和刪除字段。用Cassandra擴(kuò)展系統(tǒng)容量,可以為服務(wù)器集群直接指向新的成員,不需要重新啟動,或者遷移數(shù)據(jù)。用Cassandra布置多數(shù)據(jù)中心識別,每條記錄都會在備用的數(shù)據(jù)中心復(fù)制備份。用Cassandra的分布式讀寫功能,可以隨時隨地集中讀寫數(shù)據(jù),不會有單點失敗。

    3.2 MongoDB。MongoDB是一種面向文檔存儲的優(yōu)秀數(shù)據(jù)庫系統(tǒng),用c++語言編寫。MongoDB的查詢語法功能強(qiáng)大。使用類似JSON的BSON作為數(shù)據(jù)存儲和傳輸?shù)母袷健SON支持嵌套對象和數(shù)組。對復(fù)雜查詢要求不高的情況下,MongoDB可以作為MySQL的替代品。它具有分布式的特點,支持海量數(shù)據(jù)的存儲,并且對海量數(shù)據(jù)具有良好的讀寫性能。據(jù)測試,當(dāng)數(shù)據(jù)量達(dá)到50GB以上的時候,在訪問速度方面MongoDB是MySQL的10倍以上,在并發(fā)讀寫方面,每秒可以處理讀寫請求0.5萬-1.5萬次。MongoDB無法管理內(nèi)存,它把內(nèi)存大小交給操作系統(tǒng)來管理,在系統(tǒng)運行時必須在操作系統(tǒng)中監(jiān)控內(nèi)存的使用情況。

    3.3 Redis。Redis是用c語言編寫的面向key-value存儲的數(shù)據(jù)庫系統(tǒng),具有持久存儲、高性能、高并發(fā)性等優(yōu)勢。Redis系統(tǒng)在內(nèi)存中進(jìn)行操作,通過異步操作定期把數(shù)據(jù)庫輸出到硬盤上保存,它能提供每秒超過10萬次的讀寫頻率,是目前性能最快的Key-Value數(shù)據(jù)庫。Redis支持多種數(shù)據(jù)類型的操作,包括Strings,Lists,Hashes,Sets及Ordered Sets。單個value值的最大限制是1GB,Redis能實現(xiàn)多種功能,比如要實現(xiàn)一個輕量級的高性能消息隊列服務(wù),可以用List來做FIFO雙向鏈表,它還能完成排序等高級功能。Redis數(shù)據(jù)庫不能用作海量數(shù)據(jù)的高性能讀寫,因為Redis數(shù)據(jù)庫的容量受到物理內(nèi)存的限制,所以它通常局限于較小數(shù)據(jù)量的高性能操作和運算上。

    4 結(jié)束語

    NoSQL雖然發(fā)展迅速,但是和Oracle、SQL等傳統(tǒng)數(shù)據(jù)庫相比,還存在一些不足。比如:NoSQL產(chǎn)品大多都是開源軟件,提供的功能有限,維護(hù)工作只能由企業(yè)自身來完成。NoSQL項目中數(shù)據(jù)的完整性很難實現(xiàn)。NoSQL提供的分布式設(shè)計對中小企業(yè)來講暫時還用不到。

    傳統(tǒng)的數(shù)據(jù)庫和NoSQL可以在不同的項目中使用,形成互補(bǔ)。對于結(jié)構(gòu)穩(wěn)定,結(jié)構(gòu)化程度高的數(shù)據(jù),可以采用關(guān)系型數(shù)據(jù)庫管理;對于結(jié)構(gòu)化程度不高,可以通過水平、垂直關(guān)系關(guān)聯(lián)信息內(nèi)容的數(shù)據(jù),可以采用層次化數(shù)據(jù)模型管理;對于數(shù)據(jù)量超大的文件,數(shù)據(jù)之間的依賴關(guān)系較少,可以采用NoSQL數(shù)據(jù)庫管理。

    總之,NoSQL在web2.0網(wǎng)站中的強(qiáng)勁表現(xiàn),對數(shù)據(jù)庫產(chǎn)業(yè)的發(fā)展,既是機(jī)遇,也是挑戰(zhàn)。在互聯(lián)網(wǎng)發(fā)展的推動下,NoSQL數(shù)據(jù)庫的前景值得期待。

    參考文獻(xiàn):

    [1]陸嘉恒.大數(shù)據(jù)挑戰(zhàn)與NoSQL數(shù)據(jù)庫技術(shù)/大數(shù)據(jù)叢書[M].北京:電子工業(yè)出版社,2013.

    [2](?。┑偻呃?深入NoSQL[M].北京:人民郵電出版社,2012.

    [3](美)塞得拉吉,福勒.NoSQL精粹[M].北京:機(jī)械工業(yè)出版社,2013.

    作者簡介:高源(1980-),男,湖北武漢人,講師,研究方向:計算機(jī)網(wǎng)絡(luò)工程與智能樓宇技術(shù)、數(shù)據(jù)存儲與數(shù)據(jù)挖掘技術(shù)。

    作者單位:武漢職業(yè)技術(shù)學(xué)院 計算機(jī)學(xué)院,武漢 430074

    天长市| 大连市| 县级市| 阳信县| 九台市| 宜兰县| 衡南县| 即墨市| 乌拉特中旗| 耒阳市| 陈巴尔虎旗| 若羌县| 邵阳市| 屯昌县| 曲松县| 和顺县| 长汀县| 渭源县| 电白县| 越西县| 丹凤县| 绿春县| 南丹县| 寿光市| 永平县| 临高县| 宁晋县| 巧家县| 博罗县| 萝北县| 宁强县| 即墨市| 九寨沟县| 枞阳县| 伊吾县| 永春县| 耿马| 博野县| 雅安市| 汪清县| 巴中市|