嗨,我是cassandra的新手,正在检查sstableloader。
通过cassandra的功能,如果任何插入发生在已经存在于Cassandra表中的键上,则值将被更新。我尝试使用MAP使用sstableloader使用相同的概念。
但不是只更新所需的列,而是更新整行。有没有什么办法可以只插入所需的列,剩下的就像之前一样。
答案 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();
这应该