hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Esteban Gutierrez <este...@cloudera.com>
Subject Re: how to calculate stop key for a scan?
Date Tue, 25 Mar 2014 05:36:27 GMT
Hello Li,

Same concept applies, try using 0xFF if using bytes for the key.

esteban.





--
Cloudera, Inc.



On Mon, Mar 24, 2014 at 10:17 PM, Li Li <fancyerii@gmail.com> wrote:

> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message