Hbase API 查询(scan)

Hbase API查询非常灵活,除了上一篇通过Get 查询。

还可以通过Scan 查询。scan 查询非常的丰富场景,下面一一介绍


  • 根据行键的前缀进行查询 
Scan scan = new Scan();
PrefixFilter filter1 = new PrefixFilter("rowkey8".getBytes());
scan.setFilter(filter1);
ResultScanner scanner =	htable.getScanner(scan);
print(scanner);

  •  根据startrow 及stopRow
Scan scan = new Scan();
scan.setStartRow("rowkey90".getBytes());
scan.setStopRow("rowkey95".getBytes());
ResultScanner scanner =	htable.getScanner(scan);
print(scanner);
  • 分页查询 
Scan scan = new Scan();
PageFilter pageFilter =new PageFilter(10);
scan.setFilter(pageFilter);
scan.setStartRow("rowkey65".getBytes());
ResultScanner scanner =	htable.getScanner(scan);
print(scanner);

  • 筛选family:qualifier对应的value
Scan scan = new Scan();
SingleColumnValueFilter filter =
	new SingleColumnValueFilter("cf".getBytes(),
		"name".getBytes(),
		CompareOp.EQUAL, "name 50".getBytes());
		
	
scan.setFilter(filter);
ResultScanner scanner =	htable.getScanner(scan);
print(scanner);

  • 对行键进行过滤的, 也可以通过它来筛选出行键中包含指定字符串的一系列行

RowFilter 提供多个比较器

Scan scan = new Scan();
RowFilter filter =
		new RowFilter(CompareFilter.CompareOp.EQUAL,
						new SubstringComparator("rowkey7"));
		// rowkey regex match
RowFilter filter2 =
		new RowFilter(CompareFilter.CompareOp.EQUAL,
				new RegexStringComparator("^ro.*8.*$"));
		
		
scan.setFilter(filter2);
ResultScanner scanner =	htable.getScanner(scan);
print(scanner);

猜你喜欢

转载自blog.csdn.net/qq_28059559/article/details/86132483