云計算背后的秘密(6)-NoSQL數(shù)據庫綜述(3) |
發(fā)布時間: 2012/9/15 18:17:25 |
數(shù)據模型 傳統(tǒng)的數(shù)據庫在數(shù)據模型方面,主要是關系型,它的特色是對Join類操作和ACID事務的支持。在NoSQL領域,主要有三種主流的數(shù)據模型: Column-oriented(列式) 列式也主要使用Table這樣的模型,但是它并不支持類似Join這樣多表的操作,它的主要特點是在存儲數(shù)據時,主要圍繞著“列(Column)”,而不是像傳統(tǒng)的關系型數(shù)據庫那樣根據“行(Row)”進行存儲,也就是說,屬于同一列的數(shù)據會盡可能地存儲在硬盤同一個頁(Page)中,而不是將屬于同一個行的數(shù)據存放在一起,這樣做的好處是,對于很多類似數(shù)據倉庫(Data Warehouse)的應用,雖然每次查詢都會處理很多數(shù)據,但是每次所涉及的列并沒有很多,這樣如果使用列式數(shù)據庫的話,將會節(jié)省大量I/O,并且大多數(shù)列式數(shù)據庫都支持Column Family這個特性,通過這個特性能將多個Column并為一個小組,這樣做好處是能將相似Column放在一起存儲,這樣能提高這些Column的存儲和查詢效率?傮w而言,這種數(shù)據模型的優(yōu)點是比較適合匯總(Aggregation)和數(shù)據倉庫這類應用。. Key-value 雖然Key-value這種模型和傳統(tǒng)的關系型相比較簡單,有點類似常見的HashTable,一個Key對應一個Value,但是其能提供非?斓牟樵兯俣、大的數(shù)據存放量和高并發(fā)操作,并非常適合通過主鍵對數(shù)據進行查詢和修改等操作,雖然不支持復雜的操作,但是可以通過上層的開發(fā)來彌補這個缺陷。 Document(文檔) 在結構上,Document和Key-value是非常相似的,也是一個Key對應一個Value,但是這個Value主要以JSON或者XML等格式的文檔來進行存儲,是有語義的,并且Document DB一般可以對Value來創(chuàng)建Secondary Index來方便上層的應用,而這點是普通Key-Value DB所無法支持的。 本文出自:億恩科技【www.allwellnessguide.com】 |