使用可编辑字段在 Cassandra 中排序

Sorting in Cassandra with editable fields

我了解到 Cassandra 具有使用聚类键的排序功能。

我有一个 'username' 字段,我将其配置为 'Clustering key' 并根据需要按升序排序。

但是我需要编辑用户名,这是不可能的。

1) 能否请您告诉我任何替代方法,以便我可以在 Cassandra 中对用户名进行排序。

2)另外,二级索引对排序有帮助吗?

事实上,您不能更改集群键(或事实上的任何键)的值。此外,服务器端排序只能通过集群键进行。二级索引对排序没有帮助。

我看到的唯一解决方法是删除旧记录并创建新记录:

DELETE FROM users WHERE key = 'key' AND username = 'oldusername';
INSERT INTO users (key, username, ...) VALUES ('key', 'newusername', ...);

您可以在 BATCH 中执行这两个操作,使它们成为原子操作:

BEGIN BATCH
  DELETE FROM users WHERE key = 'key' AND username = 'oldusername';
  INSERT INTO users (key, username, ...) VALUES ('key', 'newusername', ...);
APPLY BATCH