浏览 4251 次
精华帖 (0) :: 良好帖 (6) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-10-09
最后修改:2013-12-20
https://github.com/zhang-xzhi/simplehbase/ https://github.com/zhang-xzhi/simplehbase/wiki ------------------------------------------------v0.2版本------------------------------------------------ ------------------------------------------------v0.1版本------------------------------------------------ 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); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-10-10
提两点建议吧
1.个人更喜欢约定大于配置,所以不太想用注解 2.代码建议放到github上 |
|
返回顶楼 | |
发表时间:2013-10-10
1 原本是想搞一套注解的,一套xml配置的。约定这种策略也可以考虑。
2 目前筹备中,希望能得到更多的反馈。 |
|
返回顶楼 | |
发表时间:2013-12-20
目前已经有了v0.2版本
https://github.com/zhang-xzhi/simplehbase/ https://github.com/zhang-xzhi/simplehbase/wiki simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。 数据类型映射:java类型和hbase的bytes之间的数据转换。 简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。 hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。 动态query封装:类似于myibatis,可以使用xml配置动态语句查询hbase。 |
|
返回顶楼 | |
发表时间:2013-12-20
finallygo 写道 提两点建议吧
1.个人更喜欢约定大于配置,所以不太想用注解 2.代码建议放到github上 你这个建议不错,照做了。thx。 |
|
返回顶楼 | |