Summary
In this chapter, we explored strategies for aggregating observed time-series data—in this case user behavior in viewing status updates in our application. While user behavior analytics are a fantastic and common use case for Cassandra, we could also take the same approach to aggregate scientific data, economic data, or anything else where we'd like to roll up discrete observations into high-level aggregate values.
Our structure for recording time-series data used a table containing discrete observations as the raw material and acting as the data record in case we want to introduce new aggregate dimensions down the line. We also used a table that precomputed aggregate observations by day; by keeping the aggregate up-to-date at write time, we built a structure that allows us to very efficiently retrieve aggregates over a given time period, without any expensive computation at read time. We can easily imagine constructing dozens of such tables, one for each level of granularity...