Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HBase, mail # user - Paging On HBASE like solr


Copy link to this message
-
Re: Paging On HBASE like solr
Harsh J 2012-11-22, 14:50
Ryan,

Not sure I understood what you meant. As I see it, there are two
things when you have a start key and need a limited scan:

- Stop at 100th consecutive row, even if there are holes in the actual
consecutive key range.
-- This is possible with a start key plus boundary stop key that is
100 + start key, correct? You may get < 100 but only cause you have
defined the scanner to behave that way.

- Stop at 100th consecutive available-data row.
-- This is possible with a naive counter as you loop over a scanner
result object with just a start key, correct? You may get < 100 in a
whole count iteration, only if there is no further data to fetch in
the table.

A result scanner object does iterate over the specified range (or the
lack thereof, which evaluates to table's limits) in sequential manner.
The result scanner object's general iterative next() doesn't return a
whole list of rows in one call.

Would this not work for you?

On Thu, Nov 22, 2012 at 5:50 PM, Ryan Smith <[EMAIL PROTECTED]> wrote:
> But then the range might not be respected.      I think another way to ask
> is, is it possible to iterate over the rowkeys in an hbase table
> sequentially?
>
> On Thu, Nov 22, 2012 at 7:17 AM, Doug Meil <[EMAIL PROTECTED]>wrote:
>
>>
>> Hi there-
>>
>> Then don't use an end-row and break out of the loop when you hit 100 rows.
>>
>>
>>
>>
>>
>> On 11/22/12 5:16 AM, "Vajrakumar" <[EMAIL PROTECTED]> wrote:
>>
>> >Hello Doug,
>> >First of all thanks for taking time to reply.
>> >
>> >As per my knowledge goes  below two lines take the rowkey as a parameter
>> >for
>> >representing start and end.
>> >
>> >scan.setStartRow( Bytes.toBytes("row"));                   // start key is
>> >inclusive
>> >scan.setStopRow( Bytes.toBytes("row" +  (char)0));  // stop key is
>> >exclusive
>> >
>> >
>> >But,
>> >In my case irrespective of rowkey I need 100 rows always. If I go with
>> >this
>> >concept if 5 rows are deleted in between 1 to 100 then it will give me 95
>> >but not 100.
>> >But for me always I need 100 (I mean rowCount whatever I pass) rows.
>> >
>> >
>> >And as after usage there may be deletions of rows or adding and all on
>> >DB, I
>> >can't keep track of rows for this paging..
>> >Paging needs a fixed number of rows in each page always.
>> >
>> >
>> >
>> >
>> >-----Original Message-----
>> >From: Doug Meil [mailto:[EMAIL PROTECTED]]
>> >Sent: 22 November 2012 00:21
>> >To: [EMAIL PROTECTED]
>> >Subject: Re: Paging On HBASE like solr
>> >
>> >
>> >Hi there,
>> >
>> >Pretty similar approach with Hbase.  See the Scan class.
>> >
>> >http://hbase.apache.org/book.html#data_model_operations
>> >
>> >
>> >
>> >
>> >
>> >
>> >On 11/21/12 1:04 PM, "Vajrakumar" <[EMAIL PROTECTED]> wrote:
>> >
>> >>Hello all,
>> >>As we do paging in solr using start and rowCount I need to implement
>> >>same through hbase.
>> >>
>> >>In Detail:
>> >>I have 1000 rows data which I need to display in 10 pages each page
>> >>containing 100 rows.
>> >>So on click of next page we will send current rowStart
>> >>(1,101,201,301,401,501...) and rowCount (100 for all the pages) to a
>> >>method which will query hbase and return me the result.
>> >>
>> >>One solution is to always query more than rowCount starting from th
>> >>rowkey of last passed row, and in a for loop count depending on row key
>> >>and return when it becomes 100 (i.e., rowCount) . But its poor solution
>> >>i know.
>> >>
>> >>Thanks in advance.
>> >>
>> >>Sent from Samsung Mobile
>> >
>> >
>> >
>> >
>>
>>
>>

--
Harsh J