2

I'm storing some data in Cassandra, then after analyzing it puts in several table, I have its aggregation as daily, weekly, monthly, yearly basis. But after some time if some user reads the content I'm changing it in to read and unread status based on user activity.

But as per my current design either I need to update in all tables at-a-time (more than 5 tables and it may increase) or need create a single table for read unread but want to join the tables, Which is not recommending with nosql concept.

Any existing good architecture for it? I checked with lambda architecture but didn't get a good solution.

gnat
20.5k29 gold badges117 silver badges308 bronze badges
asked Jan 4, 2016 at 9:49

1 Answer 1

3

Aggregated or analytical data is often immutable, that is, it represents a finalized view of data over a certain time period, or w/r/t to some transformational processing.

So perhaps some of your problem stems from post hoc alteration of this data. Denormalized data is common in Cassandra, but maybe it would make sense to maintain the individual items (with the user read/unread status) in one table, and then re-run the aggregation as often as needed, storing the results separately.

The aggregate data itself can be stored in a single table by adding a clustering key to your table, allowing queries to be executable against a single temporal chunk (day, month, year, etc.)

Cassandra Timeseries Data Modeling

answered Jan 4, 2016 at 10:35

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.