sstableloader 更新现有列

sstableloader to update existing columns

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

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

但不是只更新所需的列,而是更新整行。有什么方法可以让我们只插入所需的列,而将其余的保留为之前的状态。

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

@root545,感谢您的关注。

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

当您想覆盖现有键的任何值时,只需提供插入语句作为插入 table([=31= 中存在的键],您要覆盖的值)。

例如,如果我们有如下 table。

创建table示例( key1 文本, key2文本, 值 1 文本, 值 2 文本, 值 3 文本) 主键(key1,key2)

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

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

并将 sstablewriter 创建为

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

应该这样做