한땀한땀 정성들인 코딩
[HBase]기본필터기능 본문
hbase를 내일 반납해야한다. ㅜㅜ
꼭 필요한 기능을 좀 메모해놔야 겠다.
읽기메소드인 get,scan은 정밀한 탐새기능을 제공하지 않아
필터 인터페이스를 이용한다.
물론 클라이언트에서 필터기능을 구현해도 되지만 모든 data를 리전서버에서 가져와 적절하지 않다.
CompareFIlter계열 필터에 사용되는 비교 연산자
LESS 작은값
LESS_OR_EQUAL
EQUAL
NOT_EQUAL 일치하지 않는값
GREATER_OR_EQUAL
GREATER 큰값
NO_OP 모든값을 배제
비교자
BinaryComparator 현재값과 비교
BinaryPrefixComparator
NullComparator
BitComparator 비트단위 비교
RegexStringComparator 정규식 비교
SubstringComparator String인스턴스로 취급하여 contains검사 수행(포함하는지 여부)
null,bit,sub equal,not_equal 연산만 지원
로우필터
Filter filter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL,new BinaryComparator(Bytes.toBytes("row-22")));
scan.setFilter(filter);
ResultScanner scanner = table.getScanner(scan);
ResultScanner scanner = table.getScanner(scan);
for(Result res: scanner){
System.out.println(res);
FamilyFilter - 컬럼패밀리 필터
QualifierFilter - 퀄리파이어
ValueFilter - 값::
의존컬럼 필터 - 필터인자값을 유동적으로 받아서 처리할수가 있다.
public static void filter(boolean drop, CompareFilter.CompareOp operator,WritableByteArrayComparable comparator) throws IOException{
Filter filter;
if(comparator != null){
filter = new DependentColumnFilter(Bytes.toBytes("colfam1"),Bytes.toBytes("col-5"),drop,operator,comparator);
}else{
filter = new DependentColumnFilter(Bytes.toBytes("colfam1"),Bytes.toBytes("col-5"),drop);
}
}
filter(true,CompareFilter.CopareOp.NO_OP,null);
filter(true,CompareFilter.CopareOp.EQUAL,new BinaryPrefixComparator(Bytes.toBytes("val-5")));
'빅데이터' 카테고리의 다른 글
[HBase]그외 필터들, 필터리스트 (0) | 2017.01.17 |
---|---|
[HBase]단일컬럼값 필터 (0) | 2017.01.17 |
[빅데이터]원천데이터 (0) | 2017.01.17 |
[spark]스파크 코어 (0) | 2017.01.17 |
[spark]스파크 생태계 (0) | 2017.01.16 |