【问题标题】:cassandra comments table data modelingcassandra 评论表数据建模
【发布时间】:2017-10-06 22:56:48
【问题描述】:

我想查询,select * from cmets_by_post where post_id = 'postid'; 我设计的 cmets 表如下-

CREATE TABLE comments_by_post (
    post_id text,
    posted_timestamp timestamp,
    actor_id text,
    comment_id text,
    actor_info frozen<actor>,
    actor_type text,
    comment text,
    PRIMARY KEY (post_id, posted_timestamp, actor_id, comment_id)
) WITH CLUSTERING ORDER BY (posted_timestamp DESC, actor_id ASC, comment_id ASC)

一切顺利,但问题是当演员更新他/她的信息时,我该如何更新 actor_info,因为要更新信息我需要提供 post_id、posted_timestamp 和 actor_id,这对于更新一行信息是不可行的一次。什么可能是最佳表。

【问题讨论】:

    标签: cassandra datastax cassandra-3.0


    【解决方案1】:

    冻结值将多个组件序列化为单个值。非冻结类型允许更新单个字段。 Cassandra 将冻结类型的值视为 blob。必须覆盖整个值。

    因此,当更新有关演员的信息时,您应该更新 cmets 表中该演员的整个值。

    后期编辑:由于 actor_info 不会经常更新,您可以在 actor_id 上进行选择以获得完整的主键,然后进行更新。在此之前,必须在 actor_id 上创建二级索引

    【讨论】:

    • 问题是更新actor_info,我还必须提供posted_timestamp,以及actor_id。
    • 你能提供演员的定义吗?
    猜你喜欢
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2015-12-25
    • 2015-04-09
    • 1970-01-01
    相关资源
    最近更新 更多