Cassandra 2.0 Cassandra编辑最佳实践:删除&;重新插入还是更新?

Cassandra 2.0 Cassandra编辑最佳实践:删除&;重新插入还是更新?,cassandra-2.0,jhipster,spring-data-cassandra,Cassandra 2.0,Jhipster,Spring Data Cassandra,我是卡桑德拉的新手。我在网上看到了很多例子。以下是GitHub上的JHipster Cassandra示例: 每当用户数据发生更改时,repository save(user)方法对所有非规范化的表执行读取(查找是否存在),然后删除并重新插入现有用户 这是最佳实践吗? 这仅仅是因为这个示例的数据模型是如何设计的吗? 此示例的设计是将POJO框架转换为NoSQL数据库设计的结果吗 我想什么时候在Cassandra中进行更新?它支持字段级别的更新,因此似乎这是首选。首先,删除操作应该是批处理的一

我是卡桑德拉的新手。我在网上看到了很多例子。以下是GitHub上的JHipster Cassandra示例:

每当用户数据发生更改时,repository save(user)方法对所有非规范化的表执行读取(查找是否存在),然后删除并重新插入现有用户

这是最佳实践吗? 这仅仅是因为这个示例的数据模型是如何设计的吗? 此示例的设计是将POJO框架转换为NoSQL数据库设计的结果吗


我想什么时候在Cassandra中进行更新?它支持字段级别的更新,因此似乎这是首选。

首先,删除操作应该是批处理的一部分,以便更好地处理错误。但代码似乎也存在一些并发性问题。它将根据之前读取的当前用户值更新用户。在实际执行save()时,假设这仍然是最新的值并不是save。它还将覆盖查找表中的任何键,这些键在此时可能正被其他用户使用。例如,在执行insertByLoginStmt时,另一个用户的登录名可能已经存在。

在插入新的行之前,无需删除该行。
但是,如果要替换行,并且新列与现有列不同,则需要删除所有现有列并插入新列。或者插入新的和删除旧的,不管是否成批发生

感谢您对这个在线示例中一些明显缺陷的概述。当我继续使用自己的持久层时,我会记住它们。。。也就是说。对于“编辑:删除&插入vs.更新”这一真正问题,您是否有任何意见?应尽可能避免删除,并应尝试删除。至于插入和更新,它们之间只存在差异,所以它们的工作原理基本相同。