2013-05-17 62 views
1

我已经阅读了关于这个主题的各种资源,并且理解了围绕所需查询建模的想法,但是想知道可以为Cassandra扩展多远。另一个Cassandra数据建模方法

如果我涉及传统数据仓库,则需要存储包含度量和维度数据的处理事件。 数据的格式是一样的东西

log_timestamp(时间戳):USER_ID(文本):measure_1(NUM):measure_2(NUM):measure_3(NUM):dim_1(文本):dim_2(文本):.. dim_n(text)

其中可能存在10个或更多暗淡数据项目。 我想模型查询包括:

USER_ID的时间(分钟/小时/天/周/月/年)与测量由时间测量聚集

USER_ID由单一暗淡聚集

单一的时间与测量总量朦胧

一些维度字段形成一个自然的层次结构,所以我想上面的查询与多个昏暗的领域以及。

在着手创建大量离散列族以尝试覆盖排列之前,我想知道是否有人可以推荐更好的方法 使用一个单一的比较暗淡的数据与一列标识暗淡的类型和另一个价值观和层次类型和成员变暗和值的层次结构数据类似的想法。

另外什么可能是一个很好的模型,用于存储在相对粒度级别的数据,以便它可以读回到聚合工具,例如,蜂巢或火花(看起来非常有趣)。

谢谢。

回答

0

假设您希望能够按星期查询汇总数据。你可以使用下面的数据结构。

Column Family = day 
Row Key: Date = day_identifier (e.g., time at beginning of some day this week) 
Column Name: Date = timestamp, Long = field_ordinal 
Column Value: field value 

Column Family = week 
Row Key: Date = week_identifier (e.g., time at beginning of first day of a week) 
Column Name: Date = timestamp, Long = field_ordinal 
Column Value: field value 

在每周结束时,您将采用日栏系列中的条目并将它们聚合到周栏系列中的条目中。然后,如果数据不再对您有用,则可以每天删除数据。

这个概念允许你存储更少的数据,但你仍然可以完成很多。例如,如果您想查询一个月内汇总的数据,则只需访问该月的所有星期。或者,您也可以使用相同的概念汇总整个月的数据。

好运。