sstableloader更新现有列

时间:2016-04-13 18:08:02

标签: cassandra cassandra-2.0

嗨,我是cassandra的新手,正在检查sstableloader。

通过cassandra的功能,如果任何插入发生在已经存在于Cassandra表中的键上,则值将被更新。我尝试使用MAP使用sstableloader使用相同的概念。

但不是只更新所需的列,而是更新整行。有没有什么办法可以只插入所需的列,剩下的就像之前一样。

2 个答案:

答案 0 :(得分:0)

sstableLoader对所有插入使用update。当你说它更新整行时你是什么意思?你手动创建sstable并将它们推送到cassandra吗?

答案 1 :(得分:0)

@ root545,感谢您的关注。

所以基本上我做错了。 Cassandra总是根据键插入,如果y已经存在,那么它将覆盖该键的值。

如果要覆盖现有键的任何值,只需将insert语句作为insert插入表中(表中存在的键,您要覆盖的值)。

例如,如果我们有一个如下表格。

创建表格示例( key1文字, key2文字, value1文本, value2文字, value3文本) 主键(key1,key2)

然后为了单独更新value3,我们需要提供插入语句为

插入示例(key1,key2,value3)值(?,?,?)

并将sstablewriter创建为

CQLSSTableWriter cqlssTableWriter = CQLSSTableWriter.builder()。inDirectory()。forTable()。using()。withPartitioner(new Murmur3Partitioner())。build();

这应该