我已经阅读了有关此主题的各种来源,并了解了围绕所需查询进行建模的想法,但想知道这对于Cassandra来说可以延伸多远。
如果我涉及传统的数据仓库,我需要存储包含度量和维度数据的处理事件。 数据的格式类似于
log_timestamp(timestamp):user_id(text):measure_1(num):measure_2(num):measure_3(num):dim_1(text):dim_2(text):... dim_n(text)
可能有10个或更多昏暗数据项。 我想建模的查询包括:
user_id按时间(分钟/小时/天/周/月/年)和度量聚合
user_id按时间单一调暗与度量聚合
使用度量聚合按时间单一调暗
某些维度字段构成了一个自然的层次结构,所以我希望上面的查询也包含多个dim字段。
在着手创建大量离散列系列以尝试覆盖排列之前,我想知道是否有人可以推荐更好的方法 例如使用单个cf作为昏暗数据,其中一列标识dim的类型,另一列用于值,以及类似的层次结构数据和成员dims和值的想法。
或者,可能是用于以相对精细的级别存储数据的良好模型,使得它可以被读回到聚合工具中,例如,蜂巢或火花(看起来非常有趣)。感谢。
答案 0 :(得分: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
在每周结束时,您将获取日期列系列中的条目,并将它们汇总到星期列系列中的条目中。然后,如果它对你不再有用,你可以每天删除它们。
这个概念允许您存储更少的数据,但您仍然可以完成很多工作。例如,如果您要查询一个月内汇总的数据,则只需访问该月的所有星期。或者,您也可以使用相同的概念汇总整个月的数据。
祝你好运。