卡桑德拉中的增删改查

CRUD in Cassandra

我正在使用简单的 CRUD 操作尝试 Cassandra,但不明白我应该如何对数据建模。

比方说,我们需要管理简单的用户数据:

UserId | Email | Name

我们希望能够通过 UserIdEmail 获取信息。我们还希望能够更改用户信息,即 EmailName.

这让我进退两难:要按Email查询,我应该将其添加到PRIMARY KEY。但是如果我索引它,我将无法更新它。

我应该如何更改数据模型或索引才能更新数据?

据我所知,二级索引在 Cassandra 中是邪恶的,我不应该使用它们来保持 Cassandra 的性能处于良好水平。

事实上,除非万不得已,否则不应使用二级索引。但是,如果您需要通过电子邮件进行搜索,您可以创建另一个 table,其中包含 2 列 - EmailUserId。主键将是 Email,这就是您通过 Email 搜索 UserId 的方式。将其视为传统关系数据库中的索引。由于 Email 值应该是唯一的 - 查找 table 方法应该比二级索引更有效。

一旦您通过 Email 找到了 UserId,您就可以在 table.

的查询中使用它