sql - cassandra:单行可变列数

标签 sql database cassandra

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

示例:

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 | Cassandra 1.2.1 | cql 空间 3.0.0

最佳答案

代替 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 .

关于sql - cassandra:单行可变列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137616/

相关文章:

database - CQL 相当于 : select SYSTIMESTAMP from dual;?

树莓派 3 上的 Cassandra

sql - PostgreSQL,在SQL中为记录字段添加前缀

java - 太多的 SQL 变量和 NOT IN 子句

sql - 使用 Node.js 和 sqlite3 添加具有多列的行

ruby-on-rails - 何时应嵌入或引用 Mongodb 关联

mysql - 如何拆分单个字段中的字符串并创建另一个字段

docker - 带有 --net=host 的 Cassandra 容器立即退出

cassandra - 当节点宕机时,Cassandra 如何重新平衡?

mysql - 更新和插入,重复键