Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase >> mail # user >> Modifying SingleColumnValueFilter to not include matched KV


Copy link to this message
-
Re: Modifying SingleColumnValueFilter to not include matched KV
Ha,

I think I found it: I had multiple versions of the KV - so the last
statement should read ReturnCode.NEXT_COL.

/David

On Thu, Jan 24, 2013 at 12:47 AM, David Koch <[EMAIL PROTECTED]> wrote:

> Hello,
>
> As part of some custom filter building I took the source
> of SingleColumnValueFilter (HBase 0.92.1) [1] and wanted to tweak it to NOT
> return the matched column - thus essentially make it
> equivalent SingleColumnValueExcludeFilter. I thought it must be trivial but
> for some reason I cannot get it to work. The filter always includes the
> matched KV pair.
>
> The only change I made is in the filterKeyValue(<KeyValue>) method by
> editing the last statement (see below):
>
> public ReturnCode filterKeyValue(KeyValue keyValue) {
>     if (this.matchedColumn) {
>       // We already found and matched the single column, all keys now pass
>       return ReturnCode.INCLUDE;
>     } else if (this.latestVersionOnly && this.foundColumn) {
>       // We found but did not match the single column, skip to next row
>       return ReturnCode.NEXT_ROW;
>     }
>     if (!keyValue.matchingColumn(this.columnFamily, this.columnQualifier))
> {
>       return ReturnCode.INCLUDE;
>     }
>     foundColumn = true;
>     if (filterColumnValue(keyValue.getBuffer(),
>         keyValue.getValueOffset(), keyValue.getValueLength())) {
>       return this.latestVersionOnly? ReturnCode.NEXT_ROW:
> ReturnCode.INCLUDE;
>     }
>     this.matchedColumn = true;
>     // Commented line below to NOT include matched column
>     // return ReturnCode.INCLUDE;
>     return ReturnCode.SKIP;
>  }
>
> Is this expected behavior? What am I overlooking here? By the way - how
> can I sensibly debug filters. I tried using the Log instance but the output
> does not show up in the region server's output.
>
> Thank you,
>
> /David
>
> [1]
> http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.hbase/hbase/0.92.1/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java/?v=source
>
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB