记得老师课上讲过,结构化的数据的最大优点是可以将其看成一张二维表,而我们现在一般所接触到的用来处理结构化数据的数据库,都是由一张张二维表组成的。
RDBMS: 二维表
public String getValue(int id, Sring column);
hbase:四维表(其本质上可以看做二维表的每个value值里又存储了一个二维表,类型与多维数组类似,也可百度搜索,小白鼠和毒药的题便于理解)
public String getValue(String rowkey, String columnFamily, String column, long timestamp);
假设,我们现在,把这一张普通二维表的行值和列值当做Key值,将其对应的每个坐标点的值当做value值,那么整个张表是不是可以抽象成一个个的键值对的形式。
Mysql:
Key: id+ column
Value:value
hbase:
Key:rowkey+cf+column+ts
Value:value
其实所有的数据库,都可以看做是Key-value的形式,查找数据,就是根据Key值找value值。
在此基础上,我们把Key值和Value值封装成一个对象
HashMap:
String Key
Object Value
BigTable:
Object key
针对二维表:key = Object(id, column)
针对四维表:key = Object(id, cf, column, ts)
Obejct value
所以对于高维表也可以看成key-value的形式。