Hello,
Created https://issues.apache.org/jira/browse/HBASE-1975
and submitted patch.
PLMK if you have any questions.
I assume we can continue discussion within the issue.
Thanks
Jeremiah
stack wrote:
On Mon, Nov 2, 2009 at 11:02 AM, bmdevelopment <[email protected]>wrote:
Hello,
I am back to where I am going to need the functionality I have described
below - basically a SCVF that works on all versions. I was wondering if I
may go ahead and open an issue for this and begin to contribute some code.
Granted, I will have to do some digging to get my head around the filtering
at the moment. If that is fine, then I will go ahead and do so and post in
JIRA once I have something working.
Please do. Let us know if we can help out. Make sure you get latest code.
Some fixes have gone in for filters recently.
Yours,
St.Ack
Thanks
J
Bluemetrix Development wrote:
Hi, Thanks for the response.
Yes, ValueFilter does compare against all versions. Thanks for
pointing this out. I'm getting closer. :)
Basically, I am wanting to do the following:
Get all values (for all versions) of a row where a specific value (for
any version), specified by family:qualifier, matches a string.
The problems I am having now are that
1.) I can specify a string to match with ValueFilter, but now only
that value is returned with the row. I want all values in that row
returned.
2.) I cannot specify which family:qualifier to match against for a
past version. This causes problems if the value I am looking for is,
by chance, in a column other than the one I want to search, therefore
returning a row that I do not really want. SCVF solves this, but does
not work for past versions.
I've started to work around this by filtering on the client side after
the results are returned, but of course it would be nice not to return
rows that will not be used in the final data set.
Also, there are probably ways to work around this by re-structuring my
table, but that could lead to many different tables per query type.
Thanks again.
J
On Thu, Oct 1, 2009 at 2:50 PM, Jonathan Gray <[email protected]> wrote:
That is the behavior for SCVF. The other filters generally don't pay
attention to versions, but SCVF is special because it makes the decision
once it trips over the sought after column (the first/most recent version
of it).
What exactly are you trying to do? Could you use ValueFilter instead?
JG
On Thu, October 1, 2009 10:06 am, Bluemetrix Development wrote:
Hi, Thanks very much.
I applied the patch and the RowFilter seem to be initially working.
But, I have seem to come across another problem now.
Filters only compare against the most recent version's values. Is this
correct?
For example, let's say I have a row with 3 versions:
hbase(main):004:0> get 'Data', 'abc', {COLUMNS=>'x:y', VERSIONS=>3}
timestamp=124380366942072, value=xxx timestamp=124380364890514,
value=yyy
timestamp=124380364491516, value=zzz
Now, I want to be able to use a SingleColumnValueFilter on 'x:y' to
find the value 'zzz'. It seems I can only test against the latest
version
'xxx'.
Sample code:
Filter f = new SingleColumnValueFilter(Bytes.toBytes("x"),
Bytes.toBytes("y"), CompareOp.EQUAL, new SubstringComparator("zzz"));
This will not find anything.
Is this the intended behavior or am I doing something wrong?
Thanks again
J
On Wed, Sep 30, 2009 at 6:00 PM, Daniel Ploeg <[email protected]> wrote:
Looks like your running into the issue described in this jira:
https://issues.apache.org/jira/browse/HBASE-1828
On Thu, Oct 1, 2009 at 5:52 AM, Bluemetrix Development <
[email protected]> wrote:
Hello,
I am trying to use a RowFilter and continue to get the following
error:
Exception in thread "main"
org.apache.hadoop.hbase.client.RetriesExhaustedException: Trying to
contact region server 127.0.0.1:54441 for region
TableData,,1254329413425, row '', but failed after 10 attempts.
Exceptions:
java.io.IOException: Call to /127.0.0.1:54441 failed on local
exception: java.io.EOFException
java.io.IOException: Call to /127.0.0.1:54441 failed on local
exception: java.io.EOFException
java.io.IOException: Call to /127.0.0.1:54441 failed on local
exception: java.io.EOFException
...
Here is the code:
HBaseConfiguration conf = new HBaseConfiguration();
HTable table = new HTable(conf, tableName);
Scan scan = new Scan();
scan.setMaxVersions();
scan.setTimeRange(timeStart, timeEnd);
RowFilter rf = new RowFilter(CompareOp.EQUAL, new
SubstringComparator("abc"));
scan.setFilter(rf);
ResultScanner scanner = table.getScanner(scan);
I've never came across this before until I started trying to use
RowFilter. And if I comment out the setFilter function, there is no
longer a problem. Actually, I get the exact same error for any type of
Filter I attempt to use. I'm using 0.20 on a pseudo-dist setup -
standard config as in the Getting Started docs. Any ideas on this? Am
I
using the Filter correctly?
Thanks
J