Hi,

I am getting started with Cassandra (coming from MySQL). I have made a
table with timeseries data (inspired on
http://planetcassandra.org/blog/post/getting-started-with-time-series-data-modeling/
).

The table looks like this:

CREATE TABLE event_message (
message_id uuid,
message_source_id uuid,
message_time timestamp,
event_type_id varchar,
event_state varchar,
filter_state varchar,
image_id uuid,
device_specific_id bigint,
device_specific_begin_id bigint,
characteristics varchar,
PRIMARY KEY (message_source_id, message_time, message_id)
);

I have now 2 requirements:
1) I need to remove rows after a certain (user settable) time (between 5
and 60 days). In MySQL, we used partitions by day to quickly delete a whole
day.
2) I need to store a big binary file along with each row and this file
should be removed when the row is removed.

I was looking into the expiring columns (with the TTL), but is this a good
fit for this use case? Is this TTL stored between restarts of Cassandra?

Would there be any advantage to use the system called "Partitioning to
limit row size – Time Series Pattern 2" in the URL and then explicitly
doing a delete of a whole day? With this system, if I query by time, do I
need to calculate what days are in the interval and explicitly add this in
my query to find the good partitions?

How can I get notifications if a row is expired when using TTL so I can
removed the associated file?

regards,

Wim

Reply via email to