在Cassandra中按id查找不起作用

在Cassandra中按id查找不起作用,cassandra,Cassandra,我和卡桑德拉有一种奇怪的行为。每当我尝试按id查找某些行时,它都会返回null(通过cqlsh控制台或客户端),但如果我通过另一个字段查找,则该寄存器存在。 例如: 我的表架构: CREATE TABLE IF NOT EXISTS user_aggregation_new.user_aggregation_new ( userid timeuuid PRIMARY KEY, fullname text, birthdate text, password tex

我和卡桑德拉有一种奇怪的行为。每当我尝试按id查找某些行时,它都会返回null(通过cqlsh控制台或客户端),但如果我通过另一个字段查找,则该寄存器存在。 例如:

我的表架构:

CREATE TABLE IF NOT EXISTS user_aggregation_new.user_aggregation_new (
    userid timeuuid PRIMARY KEY,
    fullname text,
    birthdate text,
    password text,
    mobile text,
    address frozen <address>,
    thumbs map<text, text>,
    driverlicense frozen <driverlicense>,
    cpf text,
    facebookid text,
    membershipsince timestamp,
    rating double,
    email text,
    status text,
    facebookemail boolean,
    bankaccount list<frozen <bankaccount>>,
    dateupdated timestamp,
    version bigint
);
如果不存在则创建表用户\u聚合\u新建。用户\u聚合\u新建(
userid timeuuid主键,
全名文本,
生日文本,
密码文本,
移动文本,
地址冻结,
拇指地图,
驾驶员执照冻结,
cpf文本,
facebookid文本,
自时间戳起的会员资格,
评级加倍,
电子邮件文本,
状态文本,
facebookemail boolean,
银行账户清单,
日期更新的时间戳,
版本bigint
);
卡桑德拉版本:3.7

为什么会发生这种情况?

您有两种选择:

  • 在每个节点上运行nodetool repair,以提高数据一致性

  • 提高您的客户端一致性级别。在cqlsh中,使用值QUORUMALL运行命令CONSISTENCY


然后重试,如果仍不工作,请返回给我们。

每个DC中有多少个节点,密钥空间的RF和类名是什么?使用以下命令更改cqlsh中的默认一致性级别:cqlsh:test>consistency;(检查您的默认一致性级别)cqlsh:test>consistency ALL;(更改为ALL)然后检查是否通过相同的查询获取数据。对运行一致性是否有任何副作用??我对卡萨德拉有点陌生,所以如果能解释一下会发生什么或可能会出什么问题,我将不胜感激!感谢您的时间支持,我们推荐您。我认为它应该是cqlsh中的默认值。一致性更强,但不能容错。您应该阅读以与Cassandra一致性模型取得联系。好的,我会让QUORUM试试,我会阅读更多关于它的内容。运行nodetool修复似乎解决了这个问题。只要我100%确定,我就接受你的回答。谢谢你提供的所有信息!维修工作不正常,一些身份证仍有问题。我想我会尝试一下一致性,看看它是否有帮助。你能给我们提供更多关于节点数量和复制策略的信息吗?您是否可以运行
nodetool status