You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2014/09/09 08:19:29 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 ]
Enis Soztutar updated HBASE-7115:
---------------------------------
Fix Version/s: (was: 0.99.0)
0.99.1
> [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.99.1
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)