Cassandra 查询结果各不相同

标签 cassandra centos

我有 4 节点 2-dc cassandra 集群,在那里我遇到了无法解释的行为。

dc1 - 节点 1、节点 2、节点 3。

dc2 - 节点 4。

在我的数据库中,我的 columnFamily1 具有复制因子 dc1:2 dc2:1。列族包含 28 列,其中 11 列是主键。我从 dc2 查询 node4,它包含 100% 的数据。所以,问题是:

'Select * from columnFamily' 返回 5103 条记录。

'Select (any column from primaryKey) from columnFamily' 返回 733 条记录。

如果我将 columnFamily 导出到 CSV,然后导入到截断表,问题就会消失。谁能解释一下,怎么会这样?有没有不截断 columnFamily 的解决方案?

最佳答案

因此,从您的上述陈述看来,抛开您的评论(关于“具有 100% 数据的节点”的部分),您一定有一些一致性问题。当您使用一致性一时,您将查询一个节点以获取详细信息。哪个节点可以是其中任何一个。您执行“*”或“主键中的任何列”这一事实并不重要,但每次运行查询时,您都可以获得不同的结果节点。如果您使用的是 CQLSH,您可以尝试一次登录每个节点,将一致性设置为 LOCAL_ONE 并运行“select”或“select count()”,然后查看您得到的结果。我猜它会有所不同。当您截断表并重新加载它时,这可以清除一致性问题。您可以做的另一种方法是在列族上运行修复,然后重新尝试您的实验。你做了什么来导出数据?您是否使用了 CQLSH COPY 命令?如果是这样,那将查询所有节点的数据。您是否计算了 CSV 中的行数?如果是这样,它是否与查询本身的任何计数相匹配?

关于Cassandra 查询结果各不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58525332/

相关文章:

linux - Forbidden 您无权访问此服务器上的/phpmyadmin

php - undefined offset : 0 in mail_queue. php | CentOS 网页面板

ruby-on-rails-3 - Rails 应用程序不工作,开发模式,apache,在外部查看

collections - Cassandra - CqlEngine - 使用集合

mysql - OpenStack Nova 切换到 Cassandra —— 优点和缺点?

mongodb - 适用于高读取率的数据库解决方案

php - 在 Drupal 8 站点中找不到类 "DOMDocument"

centos - 迁移 VMWare 镜像到 KVM

cassandra - 如何在gremlin titan图数据库和java中的valueMap()中获取边和顶点属性

Cassandra 身份验证问题