首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

尝试简单化基于hbase的java应用开发的simplehbase介绍

2013-10-15 
尝试简化基于hbase的java应用开发的simplehbase介绍simplehbase尝试简化基于hbase的java应用开发。Simplehb

尝试简化基于hbase的java应用开发的simplehbase介绍
simplehbase尝试简化基于hbase的java应用开发。

Simplehbase主要提供以下功能:
1 POJO和hbase的映射。
2 提供client,简化hbase的数据操作。
3 提供强语义的插入和更新操作。
  Insert操作:只有原数据不存在时,才put成功。
  Update操作:只有原数据存在时,才put成功。

simplehbase的代码,测试(示例)代码,文档见附件。


看一个简单的例子:

1 通过注解标示要保存在hbase中的POJO。该POJO对应hbase的Key-Value中的Value。

@HBaseTable(defaultFamily = MyRecordConstants.ColumnFamilyName, defaultConvertor = DefaultColumnConvertor.class)public class MyRecord {    @HBaseColumn(qualifier = "id")    private int id;    @HBaseColumn(qualifier = "name")    private String name;    @HBaseColumn(qualifier = "date")    private Date date;    @HBaseVersion    @HBaseColumn(qualifier = "version")    private long version;}



2 定义RowKey,该类型对应hbase的key-value中的key。
public class MyRecordRowKey implements RowKey {    private String row;    public MyRecordRowKey(String row) {        this.row = row;    }    @Override    public byte[] toBytes() {        return Bytes.toBytes(row);    }    @Override    public String getTableName() {        return MyRecordConstants.TableName;    }}




3 使用simplehbase的client和hbase进行交互。

保存数据到hbase。

        MyRecord myRecord = new MyRecord();        myRecord.setId(0);        myRecord.setName("allen1");        myRecord.setDate(new Date());        myRecord.setVersion(0L);        MyRecordRowKey myRecordRowKey = new MyRecordRowKey("key_allen1");        simpleHbaseClient.putObject(myRecordRowKey, myRecord);



删除数据

        MyRecordRowKey myRecordRowKey = new MyRecordRowKey("key_allen1");        simpleHbaseClient.deleteObject(myRecordRowKey);




按照key查找数据

MyRecord myRecord2 =  simpleHbaseClient.findObject(myRecordRowKey,                MyRecord.class);




按照startKey和endKey查找列表
        MyRecordRowKey startRowKey = new MyRecordRowKey("key_allen1");        MyRecordRowKey endRowKey = new MyRecordRowKey("key_allen8");        List<MyRecord> list = simpleHbaseClient.findObjectList(startRowKey,                endRowKey, MyRecord.class);




热点排行