[ https://issues.apache.org/jira/browse/HBASE-7115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13534460#comment-13534460 ]
Aditya Kishore commented on HBASE-7115: --------------------------------------- Hi [~stack], could you please pull this patch in? > [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.96.0 > Reporter: Aditya Kishore > Assignee: Aditya Kishore > Fix For: 0.96.0 > > Attachments: HBASE-7115_trunk.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