首页 > 解决方案 > 在 cassandra 中更新集群键中的值

问题描述

我有一个架构:

标识,目标,价值

id=主键,目标=集群键

现在,我希望根据 id 更新目标中的一些值。这可能吗?

标签: cassandraprimary-keyinsert-updatecomposite-primary-key

解决方案


虽然您没有提供太多上下文,但在 Cassandra 中,您永远无法更新主键中的列(无论是在分区端还是在集群端)。

实现等效的唯一方法是删除要更新列的行,然后使用更新的值重新插入它。然而,这实际上不应该作为标准操作来完成。(当由于用户或应用程序错误而需要在生产中更新数据时,我使用过此模式,但我从未设计应用程序来使用此模式)。然而,还有另一个问题,如果你“更新”的行是一个宽行,那么经常这样做你会开始遇到墓碑问题,更不用说开销了。

我的建议是,避免更新集群列,尝试以其他方式实现唯一性,并将可更新列移动到常规列。但是,如果您需要该列来获得过滤功能,那么事情就会变得更加困难。
干杯。


推荐阅读