Hei*_*erg 4 cql insert-update cassandra nosql datastax-java-driver
我在Cassandra中使用了宽行模式.我的表定义如下:
CREATE TABLE usertopics (
key text,
topic text,
score counter,
PRIMARY KEY (key, topic)
)
Run Code Online (Sandbox Code Playgroud)
我正在插入条目使用:
UPDATE usertopics SET score = score + ? WHERE key=? AND topic=?
Run Code Online (Sandbox Code Playgroud)
这样如果密钥不存在,它将插入,如果它存在,它将更新.
我正在删除使用的条目:
Delete form usertopics where key in ?
Run Code Online (Sandbox Code Playgroud)
但删除后,当我再次尝试更新时,它没有更新.它没有给出任何错误,但它也没有反映在db中.
当我截断表格时,它再次完美插入.我正在使用Datastax java驱动程序访问Cassandra.有什么建议?
小智 5
来自cassandra文档 -
反移除本质上是有限的.例如,如果您非常快速地发出序列"递增,删除,递增",则删除可能会丢失(如果由于某种原因,删除恰好是最后收到的消息).因此,提供计数器的移除仅用于最终删除,即删除的计数器之后不增加.这也适用于行删除:如果删除一行计数器,则递增该行中的任何计数器(在删除之前存在)将导致未确定的行为.请注意,如果您需要重置计数器,一个选项(遗憾的是并非安全)可能是读取其值并添加-value.
删除后,不能/不应使用具有相同密钥的计数器.请使用以下链接获取更多信息 -
https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_counter_t.html https://wiki.apache.org/cassandra/Counters
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |