【问题标题】:Another Cassandra Data Modelling Approach另一种 Cassandra 数据建模方法
【发布时间】:2013-05-17 15:47:31
【问题描述】:

我已阅读有关此主题的各种资料,并了解围绕所需查询建模的想法,但想知道这对于 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 和值的层次结构数据使用类似的想法。

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

谢谢。

【问题讨论】:

    标签: cassandra data-analysis


    【解决方案1】:

    假设您希望能够按周查询聚合数据。您可以使用以下数据结构。

    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
    

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

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

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-11
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 2019-09-22
      相关资源
      最近更新 更多