Cassandra在同一列上更新和排序

时间:2016-01-04 13:19:54

标签: sorting cassandra updating timeline timeuuid

我正在寻找关于cassandra数据建模的一些输入,用于时间轴类型的功能。为了存储时间线的数据,我打算在cassandra中使用timeuuid并将其作为聚类键。这将有助于对数据进行排序。但是可以更新相同的数据,我需要存储与数据相对应的更新的timeuuid,以便可以在时间线中向上推送。这涉及获取先前的data-timeuuid行,删除它并插入新的行。但似乎没有表现。如何处理同一列的排序和更新(在我的情况下为timeuuid)以实现时间轴功能。

1 个答案:

答案 0 :(得分:0)

我建议您使用此架构:

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选择了文本类型,但只要它能够唯一地标识时间轴和内容,你就可以选择你想要的任何内容。