【问题标题】:Cassandra update and sort on same columnCassandra 在同一列上更新和排序
【发布时间】:2016-04-08 02:57:46
【问题描述】:

我正在寻找有关 cassandra 数据建模的一些输入,以实现时间线类型的功能。为了存储时间线的数据,我计划在 cassandra 中使用 timeuuid 并将其作为集群键。这将有助于对数据进行排序。但是同样的数据是可以更新的,我需要把更新后的timeuuid对应的数据存储起来,这样就可以在时间线上向上推了。这涉及获取前一个 data-timeuuid 行,将其删除并插入新行。但似乎表现不佳。如何处理同一列上的排序和更新(在我的情况下为 timeuuid)以实现时间线功能。

【问题讨论】:

    标签: sorting cassandra updating timeline timeuuid


    【解决方案1】:

    我向你推荐这个架构:

    CREATE TABLE timeline_idx {
        timeline_key text,
        time timeuuid,
        content_key text,
        PRIMARY KEY ((partition_key), time)
    }
    
    CREATE TABLE timeline_content {
        content_key text,
        content blob,
        PRIMARY KEY (content_key)
    }
    

    Timeline_idx 用于为您提供按时间线排序的内容键。然后您可以在名为timeline_content 的第二个表中检索内容。它没有排序,也没有聚类键。您可以在不知道 timeuuid 的情况下更新您的内容。我为timeline_key和content_key选择了文本类型,但是你可以选择任何你想要的,只要它唯一地标识时间线和内容。

    【讨论】:

    • 仍然是同样的问题,因为他希望更新时间戳以及帖子的内容。需要从timeline_idx 中删除并进行新的插入。不确定这里最好的模型是什么。
    • 或者只是做一个新的插入。客户端可以从timeline_idx 中过滤不同的content_key。
    猜你喜欢
    • 2015-10-04
    • 2018-05-03
    • 2021-10-30
    • 2021-02-28
    • 1970-01-01
    • 2012-08-10
    • 2012-02-18
    • 1970-01-01
    • 2016-08-09
    相关资源
    最近更新 更多