cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Jirsa <jeff.ji...@crowdstrike.com>
Subject Re: Need help with simple schema for time-series
Date Sat, 27 Aug 2016 05:20:04 GMT
To do 8-9am on Aug-1 through Aug-10, you’d likely need to do either multiple queries in parallel
(fire off async), or use some clever IN logic.

 

Or, you’d need to break your table up so the first clustering key is the hour of the day,
and then you could do this:

 

CREATE TABLE mytable (

    sensorname text,

    hour int,

    reading_time timestamp,

    data MAP<text, int>,

    PRIMARY KEY ((sensorname, hour), reading_time)

);          

 

The obvious downside here is that if you need to query for more than one hour of a given day,
you’re back to multiple queries.

 

 

From: Peter Figliozzi <pete.figliozzi@gmail.com>
Reply-To: "user@cassandra.apache.org" <user@cassandra.apache.org>
Date: Friday, August 26, 2016 at 10:02 PM
To: "user@cassandra.apache.org" <user@cassandra.apache.org>
Subject: Re: Need help with simple schema for time-series

 

I don't believe that would let me query a time of day range, over a date range, would it?
 For example, between 8am and 9am, August 1st through August 10th.

 

On Fri, Aug 26, 2016 at 11:52 PM, Jonathan Haddad <jon@jonhaddad.com> wrote:

Use a timestamp instead of 2 separate fields and you can query on the range. 

 

CREATE TABLE mytable (

    sensorname text,

    reading_time timestamp,

    data MAP<text, int>,

    PRIMARY KEY (sensorname, reading_time)

);        

 

 

 

On Fri, Aug 26, 2016 at 8:17 PM Peter Figliozzi <pete.figliozzi@gmail.com> wrote:

I have data from many sensors as time-series:
Sensor name
Date
Time
value
I want to query windows of both date and time.  For example, 8am - 9am from Aug. 1st to Aug
10th.

Here's what I did:

CREATE TABLE mykeyspace.mytable (
    sensorname text,
    date date,
    time time,
    data MAP<text, int>,
    PRIMARY KEY (sensorname, date, time)
);

 

However, when we query this, Cassandra restricts us to an "equal" relation for the date, if
we are to select a window of time.  So with that schema, I'd have to query once for each date.

 

What's the right way to do this??  ("Right" defined as extracting a window of date and of
time in one query.)

 

Thank you,

 

Pete

 


Mime
View raw message