我是Cassandra的新手。我没有得到如何更新Cassandra中与特定用户有关的特定列。

例如,我要更新用户列族中用户的位置。

最佳答案

cassandra中的插入/更新之间没有区别(如Pranab所说)。

现在,为您介绍一个用户示例...我假设您每个用户都有一行,并且有诸如名称,电子邮件,位置之类的列。

如果您做了两次插入

[伪代码]

insert('user-123', {'name': 'bob', 'email': 'bob@example.com'})
insert('user-123', {'location': 'nowheresville'}

[/伪代码]

您将得到一个如下所示的用户行:
row-key: 'user-123'
row-value: {'name': 'bob', 'email': 'bob@example.com',
            'location': 'nowheresville'}

那应该可以回答您的问题,但是要注意cassandra中的行/列。由于该行上没有锁,因此您应该小心将数据分开。如果两个人同时保存了“user-123”,我认为行可能是您想要的一半,而另一数据插入者想要的一半。

因此,将所有用户数据保存在单个单元格(序列化)中通常是一个更好的主意。

此数据的替代结构可以是:
row-key: 'nowheresville'
row-value: {'bob-123': serialized-bob-data}
serialized-bob-data: {'name': 'bob', 'email': 'bob@example.com'}

关于cassandra - 如何在Cassandra中更新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4275414/

10-11 17:48
查看更多