很早就知道 hbase 了,但是一直没有仔细去了解 hbase 是怎么回事。今天了解了下他的表结构。



这篇文章 http://www.searchtb.com/2011/01/understanding-hbase.html 其实写的挺清楚,下面这个是个例子



hbase(main):007:0> scan 'test'                         
ROW                                 COLUMN+CELL                                                                                            
 row1                               column=cf:a, timestamp=1312258784360, value=value3                                                     
 row1                               column=cf:b, timestamp=1312258795425, value=value3                                                     
 row2                               column=cf:b, timestamp=1312257616099, value=value2                                                     
 row3                               column=cf:c, timestamp=1312257621344, value=value3



在 hbase 里面访问数据都是通过 row key + column,其实也就是哪行哪列,不过不是通过数字定位。



在 hbase 里面看不到传统数据库的表格形式的数据列表,可以看到上面这种。传统数据库里面,每行的列数是一样的,如果那列没值,那也得填一个 null 之类。



hbase 就不一定了,可以看到上面的 row1 行,有两列 cf:a, cf:b,而 row2,row3 就只有一列。



所以 hbase 作为 key-value 系统的时候,row key + column 就是所谓的 key。