HBase 命令行客户端过滤器、

在 HBase 中,get 和 scan 命令都可以使用过滤器来设置输出的范围,类似 SQL 里的 Where 查询条件。

show_filter 命令(查看 HBase 支持的过滤器类型)
hbase(main):016:0> show_filters

### 行键 rowkey 过滤器
RowFilter #行键 rowkey 过滤器
KeyOnlyFilter # 只对单元格的键进行过滤和显示,不显示值
PrefixFilter # 行键 rowkey前缀比较器,比较行键前缀
InclusiveStopFilter # 替代 ENDROW 返回终止条件行
FirstKeyOnlyFilter # 只扫描显示相同键的第一个单元格,其键值对会显示出来(第一个版本)

### 列族与列过滤器
FamilyFilter # 列族过滤器
QualifierFilter # 列标识过滤器,只显示对应列名的数据
ColumnPrefixFilter # 对列名称的前缀进行过滤
MultipleColumnPrefixFilter # 可以指定多个前缀对列名称过滤
ColumnRangeFilter # 过滤列名称的范围

### 值过滤器
ValueFilter # 值过滤器,找到符合值条件的键值对
SingleColumnValueFilter # 在指定的列族和列中进行比较的值过滤器
SingleColumnValueExcludeFilter # 排除匹配成功的值

### 其他过滤器
DependentColumnFilter # 是一种允许用户指定一个参考列或引用列来过滤其他列的过滤器,过滤的原则是基于参考列的时间戳来进行筛选 
TimestampsFilter # 时间戳过滤,支持等值,可以设置多个时间戳
ColumnCountGetFilter # 限制每个逻辑行返回键值对的个数,在 get 方法中使用
PageFilter # 对显示结果按行进行分页显示
ColumnPaginationFilter #对一行的所有列分页,只返回 [offset,offset+limit] 范围内的列
过滤器语法

使用过滤器的语法格式:

scan '表名', { Filter => "过滤器(比较运算符, '比较器') }

在上述语法中,Filter=> 指明过滤的方法,整体可用大括号引用,也可以不用大括号。过滤的方法用双引号引用,而比较方式用小括号引用。

  • 比较运算符

比较运算符

描述

=

等于

>

大于

>=

大于等于

<

小于

<=

小于等于

!=

不等于

  • 比较器

比较器

描述

BinaryComparator

匹配完整字节数组

BinaryPrefixComparator

匹配字节数组前缀

BitComparator

匹配比特位

NullComparator

匹配空值

RegexStringComparator

匹配正则表达式

SubstringComparator

匹配子字符串