1

我想设计列族来存储一对客户的聊天历史,将一对特定夫妇的所有历史存储在一行中,对于给定的行,我们如何只存储该行所需的列。

样本:

id1 | id2 | message1 | message2
5     2     "hey"      "why"
id1| id2  | message1 | message2 | message3 | message4
2     3     "dcx"       "ddfs"    "ddd"         "dd"

id1| id2  | message1 | message2 | message3 | message4
4     6     "dcx"       "ppp"    

create columnfamily chat (id1 int,id2 int primary key)
insert into chat(id1,id2) values(8103333,8104444);

我想在同一行中添加新列'message1''message2'......等等,所以我如何使用 cqlsh 2.3.0 在特定行中创建列 卡桑德拉 1.2.1 | cql空间3.0.0

4

1 回答 1

5

代替 message1、message2 等列,使用如下复合键:

CREATE TABLE chat (
   id1 int,
   id2 int,
   message_sent_at timestamp,
   message text,
   primary key ((id1, id2), message_sent_at)
)

Cassandra 现在将为您按时间顺序对属于 id1/id2 对的消息进行聚类。

请参阅http://www.datastax.com/dev/blog/schema-in-cassandra-1-1http://www.datastax.com/docs/1.2/ddl/table#cassandra-tables

于 2013-02-28T14:18:21.487 回答