Hi Ted, Yes definitely, i can make it as Fixed country code.
The example i choose is just one of the use-case of specific ordering need. I am thinking of if we can use any user object as row-key and ordering of rows within HBase are defined explicitly by Custom KeyComparator. Regards Sanjiv Singh Mob : +091 9990-447-339 On Wed, Aug 27, 2014 at 9:20 PM, Ted Yu <[email protected]> wrote: > Sanjiv: > Is there a reason for you to choose full country name ? > Row key would be stored for every KeyValue in the same row, choosing > abbreviation would reduce storage cost. > > Cheers > > > On Wed, Aug 27, 2014 at 8:38 AM, @Sanjiv Singh <[email protected]> > wrote: > >> Hi Ted, >> >> Yes it would work for country code like IND for 'india' , AUS for >> australia. >> >> But in my use-case, It's full country name ( not just three alphabet >> country code). >> >> Regards >> Sanjiv Singh >> Mob : +091 9990-447-339 >> >> >> On Wed, Aug 27, 2014 at 8:34 PM, Ted Yu <[email protected]> wrote: >> >>> Sanjiv: >>> Is country code of fixed width ? >>> >>> If so, as long as country is the prefix, it would be sorted first. >>> >>> Cheers >>> >>> >>> On Wed, Aug 27, 2014 at 8:00 AM, @Sanjiv Singh <[email protected]> >>> wrote: >>> >>>> Hi JM, >>>> >>>> Thanks for link... I agree with you that i can be done when key is an >>>> integer. >>>> >>>> Reason why i am asking for custom KeyComparator is that Something key >>>> is >>>> not just integer or some value , it can be of composition of multiple >>>> values like <COUNTRY><CITY> where key is made up of two values, one is >>>> COUNTRY and other is CITY. >>>> >>>> The way i wanted to order first them by COUNTRY , then by CITY. >>>> >>>> How can we do the same ? >>>> >>>> >>>> Hope that I have taken correct example, emphasizes my use-case. >>>> >>>> >>>> Regards >>>> Sanjiv Singh >>>> Mob : +091 9990-447-339 >>>> >>>> >>>> On Wed, Aug 27, 2014 at 5:42 PM, Jean-Marc Spaggiari < >>>> [email protected]> wrote: >>>> >>>> > Hi Sanjiv!!!! ;) >>>> > >>>> > If you want your keys to be ordered as Integers, why do you not simply >>>> > store them as Integers and not as Strings? HBase order the rows >>>> > alphabetically, and you can not change that. Yes you can implement a >>>> key >>>> > comparator if you want but I don't think it's going to change >>>> anything to >>>> > this situation. >>>> > >>>> > You might want to take a look at this: >>>> > http://hbase.apache.org/book/rowkey.design.html >>>> > >>>> > Just put your values that way: >>>> > >>>> > int myKey = 22000; >>>> > Put put = new Put(Bytes.toBytes(myKey)); >>>> > >>>> > And that will solve your ordering problem. >>>> > >>>> > JM >>>> > >>>> > >>>> > >>>> > >>>> > 2014-08-27 6:09 GMT-04:00 @Sanjiv Singh <[email protected]>: >>>> > >>>> >> Hi All, >>>> >> >>>> >> As we know, All rows are always sorted lexicographically by their >>>> row >>>> >> key. >>>> >> In lexicographical order, each key is compared at binary level, byte >>>> by >>>> >> byte and from left to right. >>>> >> >>>> >> See the example below , where row key is some integer value and >>>> output of >>>> >> scan show lexicographical order of rows in table. >>>> >> >>>> >> hbase(main):001:0> scan 'table1' >>>> >> ROW COLUMN+CELL >>>> >> 1 column=cf1:, timestamp=1297073325971 ... >>>> >> 11 column=cf 1:, timestamp=1297073337383 ... >>>> >> 11000 column=cf1 :, timestamp=1297073340493 ... >>>> >> 2 column=cf1:, timestamp=1297073329851 ... >>>> >> 22 column=cf1:, timestamp=1297073344482 ... >>>> >> 22000 column=cf1:, timestamp=1297073333504 ... >>>> >> 23 column=cf1:, timestamp=1297073349875 ... >>>> >> >>>> >> I want to see these rows ordered as integer, not the default way. I >>>> can >>>> >> pad >>>> >> keys with '0' to get a proper sorting order(i don't like it). >>>> >> >>>> >> I wanted to see these rows sorted as integer , not just as output of >>>> scan >>>> >> OR get method , but also to store rows with consecutive integer row >>>> keys >>>> >> in >>>> >> same block. >>>> >> >>>> >> Now the question is : >>>> >> >>>> >> - Can we define our own custom KeyComparator ? >>>> >> - If Yes , can we enforce it for PUT method ? so that rows would >>>> be >>>> >> stored as new KeyComparator. >>>> >> - Can we plug this comparator duriong SCAN method to change order >>>> of >>>> >> >>>> >> result rows ? >>>> >> >>>> >> Hope, i have explained the proplem well, seeking for your valuable >>>> >> response on it. >>>> >> >>>> >> >>>> >> Regards >>>> >> Sanjiv Singh >>>> >> Mob : +091 9990-447-339 >>>> >> >>>> > >>>> > >>>> >>> >>> >> >
