Something like this would work:

CREATE TABLE foo (
    interface text,
    property text,
    bucket timestamp,
    count counter,
    PRIMARY KEY ((interface, property), bucket)
)

interface is 'NIC1' and property is 'Total' or 'Count'.

To query over a date range, you'd run a query like:

SELECT bucket, count FROM foo WHERE interface='NIC1' AND property='total'
AND bucket > '2013-11-22 10:00:00' AND bucket < '2013-11-22 12:00:00';


On Fri, Nov 22, 2013 at 4:48 PM, Bryce Godfrey <bryce.godf...@avanade.com>wrote:

>  I’m looking for some guidance on how to model some stat tracking over
> time, bucketed to some type of interval (15 min, hour, etc).
>
>
>
> As an example, let’s say I would like to track network traffic throughput
> and bucket it to 15 minute intervals.  In our old model, using thrift I
> would create a column family set to counter, and use a timestamp ticks for
> the column name for a “total” and “count” column.  And as data was sampled,
> we would increment count by one, and increment the total with the sampled
> value for that time bucket.  The column name would give us the datetime for
> the values, as well as provide me with a convenient row slice query to get
> a date range for any given statistic.
>
>
>
> Key                | 1215  | 1230 | 1245
>
> NIC1:Total   | 100    | 56      |  872
>
> NIC1:Count | 15      | 15      | 15
>
>
>
> Then given the total/count I can show an average over time.
>
>
>
> In CQL it seems like I can’t do new counter columns at runtime unless they
> are defined in the schema first or run an ALTER statement, which may not be
> the correct way to go.  So is there a better way to model this type of data
> with the new CQL world?  Nor do I know how to query that type of data,
> similar to the row slice by column name.
>
>
>
> Thanks,
>
> Bryce
>



-- 
Tyler Hobbs
DataStax <http://datastax.com/>

Reply via email to