hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mohammad Tariq <donta...@gmail.com>
Subject Re: Rowkey design question
Date Tue, 19 Feb 2013 16:16:05 GMT
Hello Paul,

    Try this and see if it works :
       scan.setStartRow(Bytes.toBytes(startDate.getTime() + ""));
       scan.setStopRow(Bytes.toBytes(endDate.getTime() + 1 + ""));

Also try not to use TS as the rowkey, as it may lead to RS hotspotting.
Just add a hash to your rowkeys so that data is distributed evenly on all
the RSs.

Warm Regards,
Tariq
https://mtariq.jux.com/
cloudfront.blogspot.com


On Tue, Feb 19, 2013 at 9:41 PM, Paul van Hoven <
paul.van.hoven@googlemail.com> wrote:

> Hi,
>
> I'm currently playing with hbase. The design of the rowkey seems to be
> critical.
>
> The rowkey for a certain database table of mine is:
>
> timestamp+ipaddress
>
> It looks something like this when performing a scan on the table in the
> shell:
> hbase(main):012:0> scan 'ToyDataTable'
> ROW                                         COLUMN+CELL
>  1357020000000+192.168.178.9                column=CF:SampleCol,
> timestamp=1361288601717, value=Entry_1 = 2013-01-01 07:00:00
>
> Since I got several rows for different timestamps I'd like to tell a
> scan to just a region of the table for example from 2013-01-07 to
> 2013-01-09. Previously I only had a timestamp as the rowkey and I
> could restrict the rowkey like that:
>
> SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
>                         Date startDate = formatter.parse("2013-01-07
> 07:00:00");
>                         Date endDate = formatter.parse("2013-01-10
> 07:00:00");
>
>                         HTableInterface toyDataTable =
> pool.getTable("ToyDataTable");
>                         Scan scan = new Scan( Bytes.toBytes(
> startDate.getTime() ),
> Bytes.toBytes( endDate.getTime() ) );
>
> But this no longer works with my new design.
>
> Is there a way to tell the scan object to filter the rows with respect
> to the timestamp, or do I have to use a filter object?
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message