You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2013/08/15 21:25:46 UTC

[jira] [Updated] (HBASE-7115) [shell] Provide a way to register custom filters with the Filter Language Parser

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

stack updated HBASE-7115:
-------------------------

    Fix Version/s:     (was: 0.95.2)
                   0.96.0
    
> [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: 0.96.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, value=world_peace
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira