HBase相對(duì)于關(guān)系數(shù)據(jù)庫能解決的問題是什么?
關(guān)于HBase與關(guān)系數(shù)據(jù)的區(qū)別問題其實(shí)就是關(guān)系數(shù)據(jù)庫與HBase各自的優(yōu)缺點(diǎn)。
關(guān)系數(shù)據(jù)庫的缺憾:
1) 擴(kuò)展困難
2) 維護(hù)復(fù)雜
HBase就是解決可伸縮行的問題。通過簡(jiǎn)單增加節(jié)點(diǎn)來獲取線性擴(kuò)展性。不支持SQL。
圖解Nosql(hbase)與傳統(tǒng)數(shù)據(jù)庫的區(qū)別
對(duì)于大多數(shù)做技術(shù)的人員,都知道我們傳統(tǒng)數(shù)據(jù)庫是什么樣子的,那么如下圖所示,我們操作的對(duì)象是行。也就是增刪改查,都是以為對(duì)象
1. 傳統(tǒng)數(shù)據(jù)庫增加刪除介紹
?
下面我們以mysql為例:
?
插入數(shù)據(jù)
mysql》INSERT INTO blog_user (`user_Name`,`user_Password`,`user_emial`)VALUES (‘a(chǎn)boutyun’,‘a(chǎn)boutyun’, ‘a(chǎn)boutyun@sina.com’);
?
刪除數(shù)據(jù):
mysql》 delete from blog_user where user_name=“aboutyun”;
?
2. Nosql數(shù)據(jù)庫增加刪除介紹
?
以hbase為例:
創(chuàng)建表:
create ‘blog_user’,‘userInfo’
?
插入數(shù)據(jù)
這里是關(guān)鍵點(diǎn),也是很多人不容易理解的地方
hbase(main):012:0》 put‘blog_user’,‘www.aboutyun.com’,‘userInfo:user_Name’,‘a(chǎn)boutyun’
0 row(s) in 1.7530 seconds
?
上面我們看到了
1所示是什么,我們?cè)趥鹘y(tǒng)數(shù)據(jù)塊里面根本沒有,這是nosql所特有的,是一個(gè)rowkey,是系統(tǒng)自帶的,也是nosql中一條記錄的唯一標(biāo)識(shí)。但是這個(gè)唯一標(biāo)識(shí),有跟我們的傳統(tǒng)數(shù)據(jù)庫是有所差別的。如圖1所示,“記錄1”便是rowkey.
2所示是我們插入的列user_Name,這也是最難以理解的地方,列竟然可以插入。并且其’value‘為3即‘a(chǎn)boutyun’
我們插入了列,下面我們來查看一下效果:?
下面來解釋一下上面的含義:
我們會(huì)看到
1為rowkey,插入數(shù)據(jù)’www.aboutyun.com‘,
2為列族下面列的名字user_Name
3我們并沒有在設(shè)計(jì)的添加這個(gè)列族,所以這個(gè)是系統(tǒng)自帶的,這個(gè)是記錄的操作時(shí)間,以時(shí)間戳的形式放到hbase里面。
4是我們插入的user_Name的值
下面我們?cè)诓迦雙assword:
1. hbase(main):015:0》 put‘blog_user’,‘www.aboutyun.com’,‘userInfo:user_Password’,‘a(chǎn)boutyun’
?
再次查詢結(jié)果:
1. hbase(main):016:0》 scan ‘blog_user’
2. ROW COLUMN+CELL
3. www.aboutyun.com column=userInfo:user_Name, timestamp=1400663775901, value=aboutyun
4. www.aboutyun.com column=userInfo:user_Password, timestamp=1400665203430, value=aboutyun
5. 1 row(s) in 0.0390 seconds
?
到這里,我們看到兩行記錄,傳統(tǒng)數(shù)據(jù)塊認(rèn)為這是兩行數(shù)據(jù),對(duì)于nosql,這是一條記錄。
刪除列數(shù)據(jù)
刪除數(shù)據(jù)分為刪除列和刪除記錄
1.刪除列
這里面的刪除,沒有刪除
delete ‘blog_user’,‘www.aboutyun.com’,‘userInfo:user_Password’
?
從上面我們看出列被刪除了
2.刪除記錄:
1. deleteall ‘blog_user’,‘www.aboutyun.com’
2. 這是刪除之前顯示結(jié)果,這里已經(jīng)是
?
刪除后結(jié)果
?
結(jié)論:
對(duì)于傳統(tǒng)數(shù)據(jù)庫,增加列對(duì)于一個(gè)項(xiàng)目來講,改變是非常大的。但是對(duì)于nosql,插入列和刪除列,跟傳統(tǒng)數(shù)據(jù)庫里面的增加記錄和刪除記錄類似
HBase有哪些基本的特征?
HBase是類似于google的bigtable的開源實(shí)現(xiàn),擁有以下特征:
1)在HDFS之上
2) 基于列存儲(chǔ)的分布式數(shù)據(jù)庫
3) 用于實(shí)時(shí)地讀、寫大規(guī)模數(shù)據(jù)集
評(píng)論
查看更多