1.当使用复合行键作为rowkey时,其中某个组成部分是变长部分可以使用散列处理,生成固定的长度的值,如MD5算法
2.时间戳可以乘以-1,便于返回最新数据
3.通过对用户id部分的最后字符加1来生成停止键,扫描器返回包括起始键但不包括停止键的记录
byte[] userHash = Md5Utils.md5sum(user);
byte[] startRow = Bytes.padTail(userHash, longLength);
byte[] stopRow = Bytes.padTail(userHash, longLength);
stopRow[Md5utils.MD5_Length-1]++;
4.扫描器缓存Hbase.client.scanner.caching属性可以设置,默认是1
5.过滤器是在Hbase服务器端上而不是在客户端执行判断动作,
需要实现org.apache.hadoop.hbase.filter.filter接口
可以结合RegexStringComparator使用ValueFilter
Scan s = new Scan();
s.addColumn(Bytes.toBytes("twits"),
Bytes.toBytes("twit"));
Filter f = new ValueFilter(
CompareOp.EQUAL,
new RegexStringComparator(".*TwitBase.*"));
s.setFilter(f);