Search code examples
cassandratime-seriescql3

Duplicate timestamps in timeseries - Cassandra


I am going to use cassandra to store activity logs. I have something like this

CREATE TABLE general_actionlog (
   date text,
   time text,
   date_added timestamp,
   action text,
   PRIMARY KEY ((date,time),date_added)
);

I want to store all the activity in an hour in a single row (=a time serie. "time" is only the hour of the day in the format H:00:00, ignoring minutes and seconds, so I have a row for each Y-m-d H:00:00)

The problem appears when two actions happen in the same timestamp (ex. two page views in the same second), so the second one overwrites the first one.

How can I solve this in a way that I still can query using slices?

Thanks

marc


Solution

  • You want to use timeuuid instead of timestamp for the date_added column. A timeuuid is a v1 UUID. It has a timestamp component (and is sorted by the timestamp), so it effectively provides a conflict-free timestamp.