2013-02-28 6 views
1

Я хочу создать семейство столбцов для хранения истории бесед для пары клиентов, сохранение всей истории одной пары в одной строке, для данной строки, как мы храним только столбцы, необходимые для этой строки.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

ответ

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.

+0

Большое спасибо, но я хочу сохранить все сообщение в одной строке, потому что я считаю, что горизонтальный поиск быстрее, чем вертикальный. если эта неправильная идея, как я могу вставить timestamp formate –

Смежные вопросы