hbase中scan命令是我们经常使用到的,而filter的作用尤其强大。这里简要的介绍下scan下filter命令的使用.
插入scan命令需要的数据
这里模拟了部分微博评论的数据,然后使用代码插入数据到hbase,代码就不列出来了比较简单。
public class Comment {
//1-->普通文章,2--->热点文章
Integer articleType;
//文章id
String articleId;
String userId;
long timestamp;
//comment content,暂时只考虑文本
String commentContent;
}
hbase的表名称为zy_comment,列簇info下有articleType以及commentInfo两个列。commentInfo的value为上面Comment类的json字符串,插入的数据如下所示
HBase数据顺序
HBase是三维有序存储的,是指rowkey(行键),column key(column family和qualifier)和TimeStamp(时间戳)这个三个维度是依照ASCII码表排序的。(比如A排在a前面)
- 先rowkey升序排序,
- rowkey相同则column key升序排序
- rowkey、column key相同则timestamp降序排序
支持的Filter
scan命令我们经常会大量使用Filter,hbase shell提供的filter都可以在hbase client包中找到对应的类,它们都是Filter的子类,很多命令都是通过filter来进行实现的。