You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by mete <ef...@gmail.com> on 2013/12/26 09:56:53 UTC

querying time series from hadoop

Hello  folks,

i have come up with a basic time series cql schema based on the articles
here:

http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra

so simply put its something like:

rowkey, timestamp, col3, col4 etc...

where rowkey and timestamp are compound keys.

Where i am having issues is to efficiently query this data structure.

When i use cqlsh and query it is perfectly fine:

select * from table where rowkey='row key' and date > xxx and date <= yyy

but when i am using the java driver, the driver already uses row key for
token statements and i cannot execute the query above, therefore it does a
full scan of rows.

The issue that i am having is discussed here:

http://stackoverflow.com/questions/19189649/composite-key-in-cassandra-with-pig

i have gone through the relevant jira issues 6151 and 6311. This behaviour
is supposed to be fixed in 2.0.x but so far it is not there. So now i will
try to patch my cassandra 1.2.11 installation but i just wanted to ask you
guys first, if there is any other solution that does not involve a release.

i assume that this is somewhat a common use case, the articles i referred
seems to be old enough and unless i am missing something obvious i cannot
query this schema efficiently with the current version (1.2.x or 2.0.x)

Does anyone has a similar issue? Any pointers are welcome.

Regards
Mete

Re: querying time series from hadoop

Posted by Aaron Morton <aa...@thelastpickle.com>.
> So now i will try to patch my cassandra 1.2.11 installation but i just wanted to ask you guys first, if there is any other solution that does not involve a release.
That patch in CASSANDRA-6311 is for 2.0 you cannot apply it to 1.2

> but when i am using the java driver, the driver already uses row key for token statements and i cannot execute the query above, therefore it does a full scan of rows.
The  ColumnFamilyRecordReader is designed to read lots of rows, not a single row. 

You should be able to use the java driver from a hadoop task though to read a single row. Can you provide some more info on what you are doing ? 

Cheers

-----------------
Aaron Morton
New Zealand
@aaronmorton

Co-Founder & Principal Consultant
Apache Cassandra Consulting
http://www.thelastpickle.com

On 26/12/2013, at 9:56 pm, mete <ef...@gmail.com> wrote:

> Hello  folks, 
> 
> i have come up with a basic time series cql schema based on the articles here:
> 
> http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra
> 
> so simply put its something like:
> 
> rowkey, timestamp, col3, col4 etc... 
> 
> where rowkey and timestamp are compound keys.
> 
> Where i am having issues is to efficiently query this data structure. 
> 
> When i use cqlsh and query it is perfectly fine:
> 
> select * from table where rowkey='row key' and date > xxx and date <= yyy
> 
> but when i am using the java driver, the driver already uses row key for token statements and i cannot execute the query above, therefore it does a full scan of rows.
> 
> The issue that i am having is discussed here:
> 
> http://stackoverflow.com/questions/19189649/composite-key-in-cassandra-with-pig
> 
> i have gone through the relevant jira issues 6151 and 6311. This behaviour is supposed to be fixed in 2.0.x but so far it is not there. So now i will try to patch my cassandra 1.2.11 installation but i just wanted to ask you guys first, if there is any other solution that does not involve a release.
> 
> i assume that this is somewhat a common use case, the articles i referred seems to be old enough and unless i am missing something obvious i cannot query this schema efficiently with the current version (1.2.x or 2.0.x)
> 
> Does anyone has a similar issue? Any pointers are welcome.
> 
> Regards
> Mete
> 
> 
> 
>