大数据技术原理与应用学习笔记(五)
生活随笔
收集整理的這篇文章主要介紹了
大数据技术原理与应用学习笔记(五)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
大數據技術原理與應用學習筆記(五)
- 本系列歷史文章
- NoSQL數據庫
- NoSQL概述(Not Only SQL)
- NoSQL特點
- MySQL集群方式的缺陷
- 傳統關系型數據庫缺陷
- NoSQL興起的原因
- NoSQL與關系型數據庫的比較
- NoSQL的四大類型
- 鍵值數據庫——鍵值對
- 列族數據庫——列族
- 文檔數據庫——文檔
- 圖數據庫——圖
- NoSQL的理論基石
- CAP理論
- 從NoSQL到NewSQL數據庫
- MongoDB——(C++、分布式、開源)
- 補充
本系列歷史文章
大數據技術原理與應用學習筆記(一)
大數據技術原理與應用學習筆記(二)
大數據技術原理與應用學習筆記(三)
大數據技術原理與應用學習筆記(四)
NoSQL數據庫
NoSQL概述(Not Only SQL)
NoSQL特點
- 靈活的擴展性
- 靈活的數據模型
- 和云計算緊密結合
MySQL集群方式的缺陷
- 復雜性
- 延遲性
- 擴容問題
傳統關系型數據庫缺陷
- 無法滿足海量數據的管理要求
- 無法滿足數據高并發需求
- 無法滿足高擴展性和高可用性要求
NoSQL興起的原因
- 關系型數據庫無法滿足Web 2.0需求
- 數據模型的局限性
- Web 2.0關系型數據庫中許多特性沒有發揮
NoSQL與關系型數據庫的比較
- 數據庫原理方面,關系數據庫有完備的關系代數理論作為基礎,而NoSQL缺乏統一的理論基礎;
- 數據規模方面,關系型數據庫很難實現橫向擴展,縱向擴展非常有限,而NoSQL具有非常好的水平可擴展性;
- 數據庫模式方面,關系型數據庫定義了嚴格的數據庫模式,而且要嚴格遵守,而NoSQL的數據模型非常靈活;
- 在查詢效率方面,關系型數據庫適當量級查詢效率較高,當量級較大時,效率會下降,而NoSQL在未構建面向復雜查詢的索引查詢性能差;
- 在事務一致性方面,關系型數據庫遵循ACID事務模型可以保證事務強一致性;
- 在數據完整性方面,關系型數據庫具有保證完整性的完備機制,而NoSQL不能實現完整性約束;
- 在可用性方面,關系型數據庫保證了嚴格的一致性,所以其可用性就削弱,而NoSQL具有非常好的可用性,響應快;
- 在標準化方面,關系型數據庫遵循SQL標準,而NoSQL暫未形成通用的行業標準;
- 在技術支持方面,關系型數據庫已有商業版關系數據庫,擁有強大的技術支持,而NoSQL仍處于初期階段,大多為開源產品;
- 在可維護性方面,關系型數據庫需要管理員維護,而NoSQL還沒有成熟的基礎,且實踐維護較為復雜。
NoSQL的四大類型
NoSQL典型數據庫通常包括鍵值數據庫、列族數據庫、文檔數據庫和圖數據庫。
鍵值數據庫——鍵值對
列族數據庫——列族
文檔數據庫——文檔
圖數據庫——圖
NoSQL的理論基石
CAP理論
C: 一致性(任意讀操作總能讀到之前寫操作的結果)
A: 可用性(快速獲取數據,在確定時間內返回結果)
P: 分區容忍性(當出現網絡分區(一部分節點無法與其他節點通信時)也能正常運行)
(注:3個條件實現時最多實現2個。)
如:
CA(放棄P): 把所有與事務相關的放到同一臺機上。(如:MySQL)
CP(放棄A): 受影響服務器需等待數據一致。(如:Neo4j,HBase)
AP(放棄C): 允許系統返回不一致的數據。(如:CouchDB,Cassandra)
BASE與ACID
BASE的意義:
- Basically Available:基本可用(允許分區失敗)
- Soft-State: 軟狀態(可有一段時間不同步(滯后性))
- Eventual consistency:最終一致性(可有不一致,但最終一定一致)
與BASE對應的ACID
ACID的意義: - Atomicity:原子性(事物必須是原子工作單元)
- Consistency: 一致性(所有數據保持一致)
- Isolation:隔離性(并發事務間修改隔離)
- Durability:持久性(事務完成后,對系統的影響是永久性的)
設數據冗余份數為N,更新數據時需保證寫完成的節點數W,讀取時要讀的節點數R,
滿足強一致性的要求:W + R > N;
滿足弱一致性的要求:W + R ≤ N;
從NoSQL到NewSQL數據庫
最主要的是了解應用場景:
分析型應用:NewSQL
事務型應用:OldSQL
互聯網應用:NoSQL
MongoDB——(C++、分布式、開源)
這部分請參考廈大數據庫博客:Ubuntu下MongoDB安裝與使用教程
補充
關系型數據庫與NoSQL數據庫都起著不同的作用,彼此不可互相取代
| 關系型數據庫 | 以完善的關系代數理論作為基礎,有嚴格標準,支持事務ACID四性,借助索引機制可實現高效查詢,技術成熟,有專業公司的技術支持。 | 可擴展性交差,無法較好支持海量數據存儲,數據模型過于死板,事務機制影響了系統性能等。 |
| NoSQL數據庫 | 支持超大規模數據存儲,數據模型靈活,強大的橫向擴展能力 | 缺乏數學理論基礎,復雜查詢性能不高,大都不能實現事務一致性,很難實現數據完整性,技術尚不成熟,缺缺乏專業團隊技術支持,維護較困難等。 |
總結
以上是生活随笔為你收集整理的大数据技术原理与应用学习笔记(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 透视校正
- 下一篇: 对象的释放Dispose和Close对比