很早就知道 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。