2012-03-06 76 views
1

我試圖在我的HBase掃描對象上放置一個過濾器,該對象跳過沒有填寫必要列的行。我想我應該首先使用跳過過濾器,但是之後我被困住了。我在package summary中沒有看到有關列是否存在的任何內容。HBase掃描過濾器 - 跳過沒有所需列的行

我應該使用列值過濾器,並檢查問題列是否爲空或空白?爲什麼過濾器返回列(如ColumnCountGetFilter)?是否有指導或某人可以指示我去了解更多關於不僅僅是javadocs集合的過濾器?

回答

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。他們返回標誌以判斷是否應該將KeyValues返回給客戶端。

您可能需要實現自定義過濾器,HBase過濾器包包含良好的示例。你可以通過他們寫出你自己的。

+0

謝謝!我們將採用bloom過濾和單元值過濾的組合。 – whiterook6 2012-03-13 18:58:15