Más contenido relacionado La actualidad más candente (20) Similar a 架構設計-資料存取的選擇 (20) 架構設計-資料存取的選擇21. CAP理論
• 在CAP理論中,強調不會出
現
• 在出現網路實體分裂的狀
態下,資料仍能保持一致性
且系統仍具可用性
• CAP理論大多描述三者取
二,這是因為當網路實體分
裂的時候,必需要從A或C中
犧牲其中一個。
• 但….網路實體分裂又不是
每天都會,有必要考慮這個
而放棄C和A其中之一嗎?
一致性
每個用戶
總是
看到同樣的資料
A
C P 分區容忍
縱使實體網路
遭到分割系統
依然能夠運作
可用性
每個用戶
總是
隨時可讀可寫
AP
Dynamo
Vodemort
Tokyo Cabinet
KAI
Cassandra
SimpleDB
CouchDB
Riak
CP
BigTable
Hypertable
HBase
MongoDb
Terrastore
Scalaris
Berkerley DB
MemcacheDB
Redis
CA
RDBMS
(SQL Server,
MySQL..)
Aster Data
Greenplum
Vertica
26. NoSQL的分類
儲存類型 NoSQL產品 特性
Document MongoDb Document儲存一般會使
用類似於Json格式,如此
就可以針對某些欄位建
立索引
欄(Column) Hbase,Cassandra,Hyperta
ble
依欄位儲存,方便將儲存
的內容結構化(壓縮)
圖形 Neo4J,FlockDB 用於社群系統的實體之
間的關係處理
鍵值組 Redis,Tokyo Cabinet 透過鍵,快速檢索到值;值
沒有特定格式
27. 聚合導向
• 定義: 一組相關的物件,被視為一個整體來操作。
• NoSQL中的鍵值對/Document/欄儲存 這三種都是屬於聚合導向的
NoSQL資料庫。
• 採用聚合的好處,就是當處在分散式的環境中,可以依資料特性放
置到同一台機器上,藉此減少通訊成本。(不需要考慮資料表之間
的關聯)
• NoSQL中聚合導向類型的資料庫,雖然不允許跨聚合結構進行交易
控制,但可以從應用程式開發的角度去思考,如何以聚合結構來處
理交易問題。
42. Cassandra的內部結構
• 由相似的業務或結構所組成的集合稱之為-欄族(Column Family)。
• 標準欄族 – 欄族內部的名值對都只有一層。
• 超欄族- 欄族內部的名值對呈現巢狀。
名稱1: 值1
列1
名稱2: 值2
列2列鍵
2
名稱1: 值1
列1
名稱2: 值2
列2列鍵
1
列
列
列族
{
“pramod-sadalage” : {
firstnName : “Pramod”,
lastName : “Sadalage”,
lastVisit: “2012/12/12”
},
“martin-sadalage” : {
firstnName : “Martin”,
lastName : “Forler”,
lastVisit: “2012/12/12”
}
}
54. ColumnStore Index
• 開發專案名稱: Apollo
• 讓超大量資料能夠有效率的執行彙總操作(Sum,Average…)。
• 在SQL Server 2012的ColumnStore Index中,必需設定資料表為唯讀
才能使用,但是SQL Server 2014之後若將ColumnStoreIndex建在叢集
索引上,則可以對資料進行異動。
• 以Column為導向的儲存,因為是相同的資料型別,所以可以進行高
壓縮,這讓資料的容量和存取的效率可以大幅的提升。
57. In-Memory Table
• 模組名稱: Hekaton
• 其用意在於提升資料表存取的速度;放棄傳統採用悲觀鎖定的方式
而改用樂觀版本鎖藉此提高效能。
• 在使用上建議搭配Native式的預存程序;這種預存程序經過特殊優
化,可讓硬體指令碼數量減少藉此提高CPU使用率。
• Hekaton的Durability是可選的,若採用Durability則因其需要進行Log
而會降低效能。
• 由於是In-Memory,因此,當記憶體不足的時候並不會Crash而是進入
唯讀狀態。