Cassandra数据建模:动态列

时间:2017-07-09 05:08:09

标签: cassandra data-modeling

我有一个表user_activity。

M

是否可以动态添加列?

user_activity
{
user_id text
user_name text
email_id text
password text
activity1 text}

因为活动可以是任何数量。

提前感谢:)

1 个答案:

答案 0 :(得分:1)

您可以使用Map

例如:

CREATE TABLE user_activity (
    user_id text primary key,
    emai_id text,
    password text,
    activity map<text,text>
);

插入:

INSERT INTO user_activity (user_id, emai_id, password, activity) VALUES ('1', 'a1@b.com','password1', {'activity1'  : 'test activity 1', 'activity2' : 'test acitivty 2' });

更新:

UPDATE user_activity SET activity['activity1'] = 'updated test activity 1' where user_id = '1';

删除:

DELETE activity['activity2'] FROM user_activity WHERE user_id = '1';

注意:保持集合(地图)的大小,在Cassandra中为地图最大键数:65535和值大小:65535