上云无忧 > 文档中心 > 天翼云云HBASE数据库-使用过滤器Filter
云HBASE数据库
天翼云云HBASE数据库-使用过滤器Filter

文档简介:
使用过滤器Filter 功能简介 HBase Filter主要在Scan和Get过程中进行数据过滤,通过设置一些过滤条件来实现,如 设置RowKey、列名或者列值的过滤条件。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

使用过滤器Filter


功能简介
HBase Filter主要在Scan和Get过程中进行数据过滤,通过设置一些过滤条件来实现,如
设置RowKey、列名或者列值的过滤条件。

代码样例
以下代码片段在cn.chinatelecom.hbase.sample包的“HBaseSample”类的
sampleScanFilter方法中。
public static List<String> sampleScanFilter(Connection conn) {
        List<String> list = new ArrayList<>();
        TableName tableName = TableName.valueOf("hbase-sample");
        Scan scan = new Scan();
        scan.addColumn(Bytes.toBytes("user"), Bytes.toBytes("name"));
        SingleColumnValueFilter filter = new SingleColumnValueFilter(
                Bytes.toBytes("user"), Bytes.toBytes("name"), CompareOperator.EQUAL,
                Bytes.toBytes("Zhang San"));
        scan.setFilter(filter);
        try (Table table = conn.getTable(tableName); ResultScanner rScanner = table.getScanner(scan)) {
            for (Result result : rScanner) {
                showData(list, result);
            }
            log.info("Scan filter data successfully");
        } catch (IOException e) {
            log.error("Scan filter data failed ", e);
        }
        return list;
}

private static void showData(List<String> list, Result result) {
        for (Cell cell : result.rawCells()) {
            String temp = Bytes.toString(CellUtil.cloneRow(cell)) + ":"
                    + Bytes.toString(CellUtil.cloneFamily(cell)) + ","
                    + Bytes.toString(CellUtil.cloneQualifier(cell)) + ","
                    + Bytes.toString(CellUtil.cloneValue(cell));
            log.info(temp);
            list.add(temp);
        }
    }
注意事项
当前二级索引不支持使用SubstringComparator类定义的对象作为Filter的比较器。
例如,如下示例中的用法当前不支持:
Scan scan = new Scan();
filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
filterList.addFilter(new SingleColumnValueFilter(Bytes
.toBytes(columnFamily), Bytes.toBytes(qualifier),
CompareOperator.EQUAL, new SubstringComparator(substring)));
scan.setFilter(filterList);

相似文档
  • 创建Phoenix表 功能简介 Phoenix依赖HBase作为其后备存储,支持标准SQL和JDBC API的强大功能,使得SQL 用户可以访问HBase集群。 代码样例:
  • 写Phoenix表 功能简介 使用Phoenix实现写数据。 示例代码 以下代码片段在 cn.chinatelecom.hbase.sample.PhoenixSample.sampleUpsertData方法中。 /** * Upsert data */
  • 读Phoenix表 功能简介 使用Phoenix实现读数据。 示例代码 以下代码片段在cn.chinatelecom.hbase.sample.PhoenixSample.sampleSelectData方法中。 /** * Select Data */
  • 创建二级索引 功能简介 使用Phoenix创建二级索引。 示例代码 以下代码片段在cn.chinatelecom.hbase.sample.PhoenixSample.sampleCreateIndex方法中。
  • 删除索引 功能简介 使用Phoenix删除二级索引。 示例代码 以下代码片段在cn.chinatelecom.hbase.sample.PhoenixSample.sampleDropIndex方法中。 /** * Drop Index */ public static boolean sampleDropIndex(Configuration conf) {
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部