hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-7115) [shell] Provide a way to register custom filters with the Filter Language Parser
Date Wed, 03 Dec 2014 04:02:13 GMT

     [ https://issues.apache.org/jira/browse/HBASE-7115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Enis Soztutar updated HBASE-7115:
    Fix Version/s:     (was: 0.99.2)

> [shell] Provide a way to register custom filters with the Filter Language Parser
> --------------------------------------------------------------------------------
>                 Key: HBASE-7115
>                 URL: https://issues.apache.org/jira/browse/HBASE-7115
>             Project: HBase
>          Issue Type: Improvement
>          Components: Filters, shell
>    Affects Versions: 0.95.2
>            Reporter: Aditya Kishore
>            Assignee: Aditya Kishore
>             Fix For: 1.0.0, 2.0.0
>         Attachments: HBASE-7115_trunk.patch, HBASE-7115_trunk.patch, HBASE-7115_trunk_v2.patch
> HBASE-5428 added this capability to thrift interface but the configuration parameter
name is "thrift" specific.
> This patch introduces a more generic parameter "hbase.user.filters" using which the user
defined custom filters can be specified in the configuration and loaded in any client that
needs to use the filter language parser.
> The patch then uses this new parameter to register any user specified filters while invoking
the HBase shell.
> Example usage: Let's say I have written a couple of custom filters with class names *{{org.apache.hadoop.hbase.filter.custom.SuperDuperFilter}}*
and *{{org.apache.hadoop.hbase.filter.custom.SilverBulletFilter}}* and I want to use them
from HBase shell using the filter language.
> To do that, I would add the following configuration to {{hbase-site.xml}}
> {panel}{{<property>}}
> {{  <name>hbase.user.filters</name>}}
> {{  <value>}}*{{SuperDuperFilter}}*{{:org.apache.hadoop.hbase.filter.custom.SuperDuperFilter,}}*{{SilverBulletFilter}}*{{:org.apache.hadoop.hbase.filter.custom.SilverBulletFilter</value>}}
> {{</property>}}{panel}
> Once this is configured, I can launch HBase shell and use these filters in my {{get}}
or {{scan}} just the way I would use a built-in filter.
> {code}
> hbase(main):001:0> scan 't', {FILTER => "SuperDuperFilter(true) AND SilverBulletFilter(42)"}
> ROW                                                          COLUMN+CELL
>  status                                                      column=cf:a, timestamp=304385520000,
> 1 row(s) in 0.0000 seconds
> {code}
> To use this feature in any client, the client needs to make the following function call
as part of its initialization.
> {code}
> ParseFilter.registerUserFilters(configuration);
> {code}

This message was sent by Atlassian JIRA

View raw message