2012-03-06 2 views
1

필요한 열이 채워지지 않은 행을 건너 뛰는 필터를 HBase 스캔 개체에 넣으려고합니다. 먼저 스킵 필터를 사용해야하지만 나는 엉망이된다. package summary에 열이 있는지 여부에 대한 정보가 없습니다.HBase 스캔 필터 - 필수 열이없는 행 건너 뛰기

열 값 필터를 사용해야하며 해당 열이 null 또는 공백인지 확인해야합니까? 그리고 필터가 ColumnCountGetFilter와 같은 열을 반환하는 이유는 무엇입니까? javadoc 컬렉션이 아닌 필터에 대해 더 많은 것을 배우기 위해 누군가가 나를 가리킬 수있는 가이드 또는 무언가가 있습니까?

답변

2

필터 패키지의 소스 코드를 볼 수 있습니다.

다음 코드를 보면 ColumnCountGetFilter의 소스 코드는

@Override 
public boolean filterAllRemaining() { 
    return this.count > this.limit; 
} 

@Override 
public ReturnCode filterKeyValue(KeyValue v) { 
    this.count++; 
    return filterAllRemaining() ? ReturnCode.SKIP: ReturnCode.INCLUDE; 
} 

당신은 필터 구현 ReturnCode.SKIP 또는 ReturnCode.INCLUDE 반환 이해해야합니다, 그들은 직접 colmns을 반환 does't, 매우 짧습니다. KeyValues를 클라이언트 측에 반환해야하는지 여부를 알기 위해 플래그를 반환합니다.

사용자 정의 필터를 구현해야 할 수도 있지만 HBase 필터 패키지에는 좋은 샘플이 포함되어 있습니다. 당신은 그들을 통해 가서 자신을 쓸 수 있습니다.

+0

감사! 블룸 필터링과 셀 값 필터링을 함께 사용합니다. – whiterook6