写在前面
主要的目的是想直接通过Hbase 将上面上面的Mysql 替换成Hbase, 这样能够对我们维护的负担压力减轻更多(调研), 实际过程中遇到了非常多的问题.
- 处理多表之间的问题的时候出现了很多问题. 主要是在列式数据库中 对每一行的定义都是非结构化的, 只是对column family 进行严格的规定而已.这样一来我们就没有了我们需要的外键/相关联的, 更多的操作都是通过全表扫描.
- 对rowKey 的设计需要有非常高要求. 学习OpenTSDB 中rowKey的巧妙设计, 虽然丢弃了版本号的使用,但是能够更加快的找到timeseries data,这也是一个非常好的一种设计之一.
Hbase 实践
CRUD 操作
1.增加一条记录
public void testPut() throws IOException {
HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("people"));
HTable table = (HTable) conn.getTable(TableName.valueOf("people"));
//设置rowkey 为 rk0001
Put put = new Put(Bytes.toBytes("rk0001"));
//在info 的column family----> name:zhangsan
put.addColumn(Bytes.toBytes("info"), Byte