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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章