1

我已经阅读了有关此主题的各种资料,并了解围绕所需查询进行建模的想法,但想知道这对于 Cassandra 可以延伸多远。

如果我与传统数据仓库相关,我需要存储包含度量和维度数据的处理事件。数据的格式类似于

log_timestamp(时间戳):user_id(文本):measure_1(num):measure_2(num):measure_3(num):dim_1(文本):dim_2(文本):... dim_n(文本)

可能有 10 个或更多暗淡数据项。我想建模的查询包括:

user_id 按时间(分钟/小时/天/周/月/年)和度量聚合

user_id 按时间按单次暗淡与度量聚合

使用度量聚合按时间单调暗

一些维度字段形成了一个自然的层次结构,所以我希望上面的查询也有多个暗淡字段。

在开始创建大量离散列族以尝试覆盖排列之前,我想知道是否有人可以推荐更好的方法,例如使用单个 cf 用于 dim 数据,其中一列标识 dim 的类型和另一个对于具有层次结构类型和成员尺寸和值的层次结构数据的值和类似的想法。

或者,什么可能是在相对粒度级别存储数据的好模型,以便可以将其读回聚合工具,例如 hive 或 spark(看起来非常有趣)。

谢谢。

4

1 回答 1

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

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

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

祝你好运。

于 2013-10-24T23:47:17.977 回答