官术网_书友最值得收藏!

2.2 分布式數據庫

大數據包括結構化數據、半結構化數據及非結構化數據,大數據的存儲與普通數據存儲的差別主要表現在數量級別和能否存儲索引非結構化數據上。對于聲音、圖片、視頻等非結構化數據,傳統的關系型數據庫無法滿足存儲需求,因此非關系型數據庫變得尤為重要。大數據處理系統將通過NoSQL來存儲這些非結構化數據并對這些數據進行相關的檢索。

NoSQL數據庫指的是非關系型的數據庫。NoSQL數據庫主要面向Web應用,支持分布式存儲,能夠滿足對數據庫高并發讀寫需求、海量數據的高效存儲需求、數據庫高擴展性和高可用性的需求等。NoSQL數據庫可以分為以下三類:面向高性能讀寫的數據庫、面向文檔的數據庫及面向分布式計算的數據庫(比如Cassandra數據庫)。NoSQL具有自由靈活的數據模型,典型的NoSQL數據庫是以鍵值(Key-Values)的形式存儲數據的。

NoSQL滿足CAP理論、BASE原則。CAP指的是對于以下三個特性:一致性、可用性及分區容錯性,分布式系統不能同時滿足,最多只能滿足三個特性中的兩個。BASE指的是Basically Available、Soft state、Eventually consistent。Basically Available(基本可用)指的是對于系統短時間內的不可用是可容忍的;Soft state(柔性狀態)指的是系統有異步的情況存在,即在某個時期可以不同步;Eventually consistent(最終一致性)指的是只要最終的數據滿足一致性即可,不要求時刻滿足一致性。NoSQL數據庫的設計一般針對具體的應用,遵循以上兩個原則,比較注重數據的讀寫效率、數據的容量和系統的可擴展性等。

目前普遍使用的關系型數據庫采用的是關系型數據模型,對數據存儲增加及一些需要滿足的數據范式,有時需要強行修改對象數據,以滿足關系型數據庫管理系統的需要,而NoSQL數據庫完全改變了傳統的觀念,通過改變某些數據范式的嚴格要求,獲得靈活的擴展性、靈活的數據模型、能夠有效處理大數據、降低管理和維護成本等眾多優點。表2.1對NoSQL數據庫與關系型數據庫的原理、規模、模式等進行了一個對比分析。

表2.1 NoSQL和關系型數據庫的簡單比較

隨著互聯網Web 2.0網站的興起,傳統的關系數據庫在應付Web 2.0網站,特別是超大規模和高并發的SNS類型的Web 2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,非關系型的數據庫則由于其本身的特點得到了非常迅速的發展。

在信息技術融合應用的新時代,大數據就是像黃金一樣的新型經濟資產、像石油一樣的重要戰略資源。為滿足大數據對處理和存儲能力的無限需求,現今的計算機體系結構在數據存儲方面要求具備龐大的水平擴展性(Horizontal Scalability,即要求滿足能夠連接多個軟硬件的特性,這樣可以將多個服務器從邏輯上看成一個實體),而NoSQL致力于改變這一現狀。目前Google的BigTable和Amazon的Dynamo使用的就是NoSQL數據庫。NoSQL數據庫根據數據的存儲模型和特點分為很多種類,如列存儲、文檔存儲、Key-Value存儲、圖存儲、對象存儲、xml存儲等數據庫。表2.2給出了幾種典型的NoSQL數據庫及其性能優缺點。

表2.2 典型的NoSQL數據庫分類

在過去的10年里,正如交易率發生了翻天覆地的增長一樣,需要存儲的數據量也發生了急劇的膨脹,這種現象被稱為“數據的工業革命”。為了滿足數據量增長的需要,RDBMS(關系型數據庫管理系統)的容量也在日益增加,但是對于一些企業來說,隨著交易率的增加,單一數據庫需要管理的數據約束的數量也變得越來越讓人無法忍受了。現在,大量的“大數據”可以通過NoSQL系統來處理,它們能夠處理的數據量遠遠超出了最大型的RDBMS所能處理的極限,很好地彌補了關系數據在某些方面的不足。

主站蜘蛛池模板: 奉贤区| 宁晋县| 上林县| 会宁县| 庐江县| 苍南县| 清徐县| 高安市| 都兰县| 灵武市| 白水县| 朝阳市| 松阳县| 密山市| 抚顺市| 蓝山县| 新邵县| 临清市| 分宜县| 邹城市| 延长县| 博湖县| 夏河县| 张掖市| 淄博市| 怀宁县| 宜兰市| 马关县| 洛宁县| 孟村| 宜昌市| 湖州市| 宜章县| 东光县| 保山市| 南郑县| 宁武县| 西平县| 河间市| 嘉兴市| 海原县|