1.查看所有过滤器
show filters
2. 常见过滤器
过滤器用法
scan '表名', {Filter=>"过滤器(比较运算符, '比较器表达式')"}
| 分类 | 过滤器 | 解释 |
|---|---|---|
| 行键过滤器 | RowFilter | 实现行键的过滤和比较 |
| 前缀过滤器 | PrefixFilter | 实现主键前缀过滤 |
| 列过滤器 | FamilyFilter | 列簇过滤器 |
| QualifierFilter | 列标识过滤器,只显示对应列名的数据 | |
| ColumnPrefixFilter | 列名称前缀过滤 | |
| MultipleColumnPrefixFilter | 指定多个前缀对列名称过滤 | |
| ColumnRangeFilter | 过滤列名称范围 | |
| 值过滤器 | ValueFilter | 过滤符合值条件的键值对 |
| SingleColumnValueFilter | 在指定列簇和列中进行比较的值过滤器 | |
| SingleColumnValueExclud | 排除匹配成功的值 |
3. 比较运算符
| 比较运算符 | 描述 |
|---|---|
| = | 等于 |
| 大于 | |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| != | 不等于 |
4. 比较器
| 比较器 | 描述 |
|---|---|
| BinaryComparator | 匹配完整字节数组 |
| BinaryPrefixComparator | 匹配字节数组前缀 |
| BitComparator | 匹配比特位 |
| NullComparator | 匹配空值 |
| RegexStringComparator | 匹配正则表达式 |
| SubstringComparator | 匹配子字符串 |
5. 比较器表达式
基本语法:比较器类型:比较器的值
| 比较器 | 表达式语言缩写 |
|---|---|
| BinaryComparator | binary:值 |
| BinaryPrefixComparator | binaryprefix:值 |
| BitComparator | bit:值 |
| NullComparator | null |
| RegexStringComparator | regexstring:正则表达式 |
| SubstringComparator | substring:值 |
6. 实战
6.1 使用RowFilter查询订单ID的数据(主键:订单ID)
需求:查询订单ID为:02602f66-adc7-40d4-8485、订单状态以及支付方式
op:比较运算符
rowComparator:比较器
scan 'order_info', {FILTER=>"RowFilter(=,'binary:02602f66-adc7-40d4-8485')"}
6.2 使用SingleColumnValueFilter查询状态为已付款的订单
family:列簇
qualifier:列限定符(列名)
op:比较运算符
comparator:比较器
- 需求:查询订单状态为已付款的订单(单个列)
scan 'order_info', {FILTER=>"SingleColumnValueFilter('info', 'STATUS', =, 'binary:已付款')", FORMATTER=>'toString'}
- 需求:查询支付方式为1,且金额大于3000的订单(多个列)
使用AND或者OR组合多个过滤器
scan 'order_info', {FILTER=>"SingleColumnFilter('C1', 'PAYWAY', =, 'binary:1') AND SingleColumnFilter('C1', 'PAY_MONEy', >, 'binary:3000')", FORMATTER=>'toString'}