1、什么是NoSQL
-
NoSQL(NoSQL = Not Only SQL ),意即"不僅僅是SQL",
-
NoSQL主要指非關系型、分布式、不提供ACID的資料庫設計模式,
-
在現代的計算系統上每天網路上都會產生龐大的資料量,
-
這些資料有很大一部分是由關系資料庫管理系統(RDBMS)來處理, 1970年 E.F.Codd's提出的關系模型的論文 "A relational model of data for large shared data banks",這使得資料建模和應用程式編程更加簡單,
-
通過應用實踐證明,關系模型是非常適合于客戶服務器編程,遠遠超出預期的利益,今天它是結構化資料存盤在網路和商務應用的主導技術,
-
NoSQL 是一項全新的資料庫革命性運動,早期就有人提出,發展至2009年趨勢越發高漲,NoSQL的擁護者們提倡運用非關系型的資料存盤,相對于鋪天蓋地的關系型資料庫運用,這一概念無疑是一種全新的思維的注入,
-
NoSQL用于超大規模資料的存盤,(例如谷歌或Facebook每天為他們的用戶收集萬億位元的資料),這些型別的資料存盤不需要固定的模式,無需多余操作就可以橫向擴展,
2、什么是分布式系統
-
分布式系統(distributed system)由多臺計算機和通信的軟體組件通過計算機網路連接(本地網路或廣域網)組成,
-
分布式系統是建立在網路之上的軟體系統,正是因為軟體的特性,所以分布式系統具有高度的內聚性和透明性,
-
因此,網路和分布式系統之間的區別更多的在于高層軟體(特別是作業系統),而不是硬體,
-
分布式系統可以應用在不同的平臺上如:Pc、作業站、局域網和廣域網上等,
3、分布式計算的優劣
1、優點
- 可靠性(容錯) :
分布式計算系統中的一個重要的優點是可靠性,一臺服務器的系統崩潰并不影響到其余的服務器,
- 可擴展性:
在分布式計算系統可以根據需要增加更多的機器,
- 資源共享:
共享資料是必不可少的應用,如銀行,預訂系統,
- 靈活性:
由于該系統是非常靈活的,它很容易安裝,實施和除錯新的服務,
- 更快的速度:
分布式計算系統可以有多臺計算機的計算能力,使得它比其他系統有更快的處理速度,
- 開放系統:
由于它是開放的系統,本地或者遠程都可以訪問到該服務,
- 更高的性能:
相較于集中式計算機網路集群可以提供更高的性能(及更好的性價比),
2、缺點
- 故障排除:
故障排除和診斷問題,
- 軟體:
更少的軟體支持是分布式計算系統的主要缺點,
- 網路:
網路基礎設施的問題,包括:傳輸問題,高負載,資訊丟失等,
- 安全性:
開放系統的特性讓分布式計算系統存在著資料的安全性和共享的風險等問題,
4、為什么要使用NoSQL
- 今天我們可以通過第三方平臺(如:Google,Facebook等)可以很容易的訪問和抓取資料,用戶的個人資訊,社交網路,地理位置,用戶生成的資料和用戶操作日志已經成倍的增加,我們如果要對這些用戶資料進行挖掘,那SQL資料庫已經不適合這些應用了, NoSQL 資料庫的發展卻能很好的處理這些大的資料,
1、RDBMS vs NoSQL
-
RDBMS
- 高度組織化結構化資料
- 結構化查詢語言(SQL) (SQL)
- 資料和關系都存盤在單獨的表中,
- 資料操縱語言,資料定義語言
- 嚴格的一致性
- 基礎事務
-
NoSQL
- 代表著不僅僅是SQL
- 沒有宣告性查詢語言
- 沒有預定義的模式
- 鍵值對存盤,列存盤,檔案存盤,圖形資料庫
- 最終一致性,而非ACID屬性
- 非結構化和不可預知的資料
- CAP定理
- 高性能,高可用性和可伸縮性
2、CAP定理(CAP theorem)
-
在計算機科學中, CAP定理(CAP theorem), 又被稱作 布魯爾定理(Brewer's theorem), 它指出對于一個分布式計算系統來說,不可能同時滿足以下三點:
-
一致性(Consistency) (所有節點在同一時間具有相同的資料)
-
可用性(Availability) (保證每個請求不管成功或者失敗都有回應)
-
磁區容錯性(Partition tolerance) (系統中任意資訊的丟失或失敗不會影響系統的繼續運作)
-
-
CAP理論的核心是:一個分布式系統不可能同時很好的滿足一致性,可用性和磁區容錯性這三個需求,最多只能同時較好的滿足兩個,
-
因此,根據 CAP 原理將 NoSQL 資料庫分成了滿足 CA 原則、滿足 CP 原則和滿足 AP 原則三 大類:
-
CA - 單點集群,滿足一致性,可用性的系統,通常在可擴展性上不太強大,
-
CP - 滿足一致性,磁區容忍性的系統,通常性能不是特別高,
-
AP - 滿足可用性,磁區容忍性的系統,通常可能對一致性要求低一些,
-

5、NoSQL的優缺點
-
優點:
-
高可擴展性
-
分布式計算
-
低成本
-
架構的靈活性,半結構化資料
-
沒有復雜的關系
-
-
缺點:
-
沒有標準化
-
有限的查詢功能(到目前為止)
-
最終一致是不直觀的程式
-
6、ACID vs BASE

7、NoSQL資料庫分類

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/556171.html
標籤:大數據
上一篇:SeaTunnel畢業!首個國人主導的資料集成專案成為Apache頂級專案
下一篇:返回列表
