You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by y_...@tsmc.com on 2010/06/01 03:16:53 UTC

Re: how to get the row before this one?

Hi,
I am very curious about what kind of project you are going on.

Fleming Chiu(邱宏明)
707-2260
y_823910@tsmc.com
週一無肉日吃素救地球(Meat Free Monday Taiwan)




|---------+------------------------------->
|         |           Oliver Meyn         |
|         |           <oliver.meyn@zerofoo|
|         |           tprint.net>         |
|         |                               |
|         |           2010/05/31 09:28 PM |
|         |           Please respond to   |
|         |           user                |
|         |                               |
|---------+------------------------------->
  >-------------------------------------------------------------------------------------------------------------|
  |                                                                                                             |
  |       To:      user@hbase.apache.org                                                                        |
  |       cc:      (bcc: Y_823910/TSMC)                                                                         |
  |       Subject: Re: how to get the row before this one?                                                      |
  >-------------------------------------------------------------------------------------------------------------|




Nice!  I thought of this approach but couldn't figure out how to get
Hbase to sort in reverse, and so gave up.  But I was clearly too much
"inside the box" :)

Thanks,
Oliver

On 30-May-10, at 5:49 PM, Igor Ranitovic wrote:

> One thing that I can think of is to sort measurements from the
> newest to oldest:
>
> DevA,12pm,150W
> DevA,9am,100W
>
> Now instead of scanning from-to date, start with the to date and
> keep scanning until you find a row with a date that is older than
> the from date.
> To use your example, start the scan from 1pm and stop when you hit
> 9am.
>
> To sort row from newest to oldest use MAXINT - timestamp, where
> timestamp is seconds since epoch.
>
> Hope this helps.
> i.
>
> Oliver Meyn wrote:
>> Hi all,
>> I have a table "device_power" which has as its row key
>> "device_id.timestamp", and a single column, "power".  A new row is
>> written whenever the power consumption of a device changes, which
>> could be every second, or could be as much as days.
>> When I do a query like "what was the average power of device X
>> between Date 1 and Date 2" I can get all keys where device_id
>> matches X (using PrefixFilter) and timestamp > Date1 and < Date2
>> (using either RowFilter or setTimeRange).  But I also need the last
>> row before my time range to know what state the device was in at
>> the start of my query period.  Maybe an example will help make it
>> more obvious (my timestamps are long integers, but this is easier
>> to read):
>> DevA.9am, 100W
>> DevB.10am, 200W
>> DevB.11am, 150W
>> DevA.12pm, 150W
>> And now the query "What was the average power of DevA btw 10am and
>> 1pm".  Is there a clever way to "get the first row before 10am that
>> matches PrefixFilter("DevA") ?
>> Thanks,
>> Oliver
>

--
Oliver Meyn
Software Architect
Zerofootprint Software, Inc.
oliver.meyn@zerofootprint.net
(416) 365-7557 x144









 --------------------------------------------------------------------------- 
                                                         TSMC PROPERTY       
 This email communication (and any attachments) is proprietary information   
 for the sole use of its                                                     
 intended recipient. Any unauthorized review, use or distribution by anyone  
 other than the intended                                                     
 recipient is strictly prohibited.  If you are not the intended recipient,   
 please notify the sender by                                                 
 replying to this email, and then delete this email and any copies of it     
 immediately. Thank you.                                                     
 ---------------------------------------------------------------------------