假设我们有CF用户信息:
{
123 => { first_name => Nick, last_name => Schiff, age => 23, city = NY }
}
假设我们也不按列名搜索,我们只使用这些信息来显示数据。 列名也不经常更新个性。 (例如,更改first_name)
在这种情况下,单个编码的JSON可能是更好的主意:
{
123 => { data = [json], city = NY }
}
并离开“城市”,因为我们会经常更新它。
JSON的优点是:
我可以看到的缺点:
有人这样做吗?我在这里缺少什么吗?
答案 0 :(得分:2)
这可能是一种合理的策略,具体取决于您的使用模式。以blob格式存储数据的最大缺点是如何处理并发更新。假设您有2个进程,一个尝试更新first_name
字段,另一个尝试更新age
字段。每个进程都必须读取该行以获取当前blob,然后更新要更改的字段并将其写回Cassandra。当您的所有数据都存储在一个blob中时,第二个编写器将基本上撤消第一个的更改。
如果将它们存储为单独的列,则不存在更新冲突。
但也许你的记录是不可变的,在这种情况下,这个并发更新问题不会成为问题。