hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Li Li <fancye...@gmail.com>
Subject Re: how to calculate stop key for a scan?
Date Tue, 25 Mar 2014 05:17:19 GMT
my rowkey is not a string md5(k1)md5(k1) but the raw bytes
md5(k1) return the raw bytes instead of hex of this string.
the codes:
byte[] array1=DigestUtils.md5(k1);
byte[] array2=DigestUtils.md5(k2);
Put put=new Put(Bytes.add(array1, array2));
...

On Tue, Mar 25, 2014 at 12:33 PM, Esteban Gutierrez
<esteban@cloudera.com> wrote:
> Hello Li.
>
> Have you tried to do something as simple as appending ~ (ascii 7E, last
> printable ascii symbol) at the end of the start key as the stop key? It
> should work find for you:
>
>
> hbase(main):001:0> put 't1',
> '7fc56270e7a70fa81a5935b72eacbe297fc56270e7a70fa81a5935b72eacbe29', 'c1',
> 'A'
> hbase(main):002:0> put 't1',
> '9d5ed678fe57bcca610140957afab5719d5ed678fe57bcca610140957afab571', 'c1',
> 'B'
> hbase(main):003:0> put 't1',
> '7fc56270e7a70fa81a5935b72eacbe299d5ed678fe57bcca610140957afab571', 'c1',
> 'AB'
> hbase(main):004:0> scan 't1',
> {STARTROW=>'7fc56270e7a70fa81a5935b72eacbe29',
> ENDROW=>'7fc56270e7a70fa81a5935b72eacbe29~'}
> ROW                                        COLUMN+CELL
>  7fc56270e7a70fa81a5935b72eacbe297fc56270e column=c1:,
> timestamp=1395721490980, value=A
>  7a70fa81a5935b72eacbe29
>  7fc56270e7a70fa81a5935b72eacbe299d5ed678f column=c1:,
> timestamp=1395721814374, value=AB
>  e57bcca610140957afab571
> 2 row(s) in 0.0210 seconds
>
>
> esteban.
>
>
>
> --
> Cloudera, Inc.
>
>
>
> On Mon, Mar 24, 2014 at 9:17 PM, Li Li <fancyerii@gmail.com> wrote:
>
>> have you understand the question? how to get the 'next' string of a
>> given string?
>>
>> On Tue, Mar 25, 2014 at 11:49 AM, haosdent <haosdent@gmail.com> wrote:
>> > MD5(abc) = "900150983cd24fb0d6963f7d28e17f72"
>> > So you could set startkey to "900150983cd24fb0d6963f7d28e17f72" and set
>> > stopkey to "900150983cd24fb0d6963f7d28e17f73".
>> >
>> >
>> > On Tue, Mar 25, 2014 at 11:45 AM, Li Li <fancyerii@gmail.com> wrote:
>> >
>> >> sorry, I want to get all the rows startsWith k1
>> >> example:
>> >> k1    k2           rowKey
>> >> abc aaa  -> MD5(abc)MD5(aaa)
>> >> abc bbb  -> MD5(abc)MD5(bbb)
>> >> abd ddd  -> MD5(abd)MD5(ddd)
>> >>
>> >> how to use scan to get all rows startswith abc
>> >>
>> >> On Tue, Mar 25, 2014 at 11:40 AM, haosdent <haosdent@gmail.com> wrote:
>> >> >>I want to get all the rows equals k1.
>> >> >
>> >> > Use Get(MD5(k1)MD5(k1)) without set startkey and stopkey.
>> >> >
>> >> >
>> >> > On Tue, Mar 25, 2014 at 11:36 AM, Li Li <fancyerii@gmail.com>
wrote:
>> >> >
>> >> >> I have two string as primary key(k1,k2)
>> >> >> and my row key in hbase is MD5(k1)MD5(k1)
>> >> >> I want to get all the rows equals k1.I can set startRowKey easily.
>> >> >> But How can I calculate stopRowKey?
>> >> >> is following correct? what if the last byte of md5 is 127? what
about
>> >> >> overflow?
>> >> >> any tools for this?
>> >> >>
>> >> >> Scan scan=new Scan();
>> >> >> byte[] start=MD5(key1);
>> >> >> scan.setStartRow(start);
>> >> >> byte[] end=MD5(key1);
>> >> >> end[end.length-1]++
>> >> >> scan.setStopRow(end);
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Best Regards,
>> >> > Haosdent Huang
>> >>
>> >
>> >
>> >
>> > --
>> > Best Regards,
>> > Haosdent Huang
>>

Mime
View raw message