【发布时间】:2015-04-14 04:33:51
【问题描述】:
当我在 Cassandra 表中插入一个值时,我遇到了一个挑战,我有一个列名为“ID”,这个 ID 列的值会像 mysql auto_increment 列一样自动增加。我认为 Counter DataType 不适合这种场景。请任何人帮助我设计架构,我也不想使用 UUID 来替换 ID 列
【问题讨论】:
标签: cassandra-2.0 cqlsh
当我在 Cassandra 表中插入一个值时,我遇到了一个挑战,我有一个列名为“ID”,这个 ID 列的值会像 mysql auto_increment 列一样自动增加。我认为 Counter DataType 不适合这种场景。请任何人帮助我设计架构,我也不想使用 UUID 来替换 ID 列
【问题讨论】:
标签: cassandra-2.0 cqlsh
简而言之,我不相信这是可能的。 Cassandra 的本质是它不会先读再写。只有一个例外,轻量级事务,但它们所做的只是所谓的“比较和交换”,但没有办法,可以在服务器端实现自动增量。
即使使用计数器,也无法达到预期的效果,如果每次向表中添加记录时都增加计数器,因为您将不知道当前值是否(即使它完全一致) ),是您的进程或并发进程增量的结果。
唯一的办法就是在应用端实现这个机制。
【讨论】: