1

いくつかのクライアントのチャット履歴を保存する列ファミリーを設計し、特定の 1 つのカップルのすべての履歴を 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);

cqlsh 2.3.0を使用して特定の行に列を作成する方法を教えてください'message1''message2'カサンドラ 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-1およびhttp://www.datastax.com/docs/1.2/ddl/table#cassandra-tablesを参照してください。

于 2013-02-28T14:18:21.487 に答える