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 | 匹配子字符串 |