Hbase葱岭探秘--过滤器Api.docVIP

  • 1
  • 0
  • 约1.02万字
  • 约 9页
  • 2018-01-02 发布于河南
  • 举报
Hbase葱岭探秘--过滤器Api

Hbase葱岭探秘--过滤器Api Hbase中提供了许多的过滤器接口,以此来对数据进行过滤,使得查询出想要的数据。 行过滤器 针对行信息进行过滤,参数中可以采用前缀匹配、按位与、或、异或以及子串匹配等匹配的方式。同时可以控制EQUAL、NOT_EQUAL选项进行控制筛选数据的条件。 /** * 行过滤器 BinaryComparator NullComparator:是不是空值 * BitComparator:通过BitwiseOp类提供的按位与、或、异或操作进行位级别比较 RegexStringComparator:正则匹配 * SubStringComparator:子串是不是包含进行匹配 */ private static void testRowFilter() { try { HTable table = new HTable(config, testtable); Scan scan = new Scan(); scan.addColumn(col1.getBytes(), name.getBytes()); // 行过滤器 Filter filter = new RowFilter(CompareOp.EQUAL, new BinaryComparator(row2.getBytes())); scan.setFilter(filter); ResultScanner result = table.getScanner(scan); for (Result res : result) { (行过滤器 + res); } // 正则的行过滤器 Filter filter2 = new RowFilter(CompareOp.EQUAL, new RegexStringComparator(.*.2)); scan.setFilter(filter2); ResultScanner resultRegx = table.getScanner(scan); for (Result res : resultRegx) { (正则 + res); } Filter filterSubString = new RowFilter(CompareOp.EQUAL, new SubstringComparator(w2)); scan.setFilter(filterSubString); ResultScanner resultSubString = table.getScanner(scan); for (Result res : resultSubString) { (子串 + res); } table.close(); } catch (IOException e) { log.error(e); } 列族过滤器 根据列族的数据进行筛选,形式和上面的行过滤器类似,通过控制相应的参数中的筛选的条件进行相应的筛选。 /** * 列族过滤器 */ private static void testFamlyFilter() { try { HTable table = new HTable(config, testtable); Filter filter = new FamilyFilter(CompareOp.EQUAL, new BinaryComparator(col1.getBytes())); Scan scan = new Scan(row2.getBytes(), filter); Resu

文档评论(0)

1亿VIP精品文档

相关文档