卡桑德拉超时(COUNT个查询)

时间:2019-05-10 09:33:52

标签: macos cassandra homebrew

  

注意:我有15967908条记录。我是新手   卡桑德拉。参考:Is there a way to effectively count rows of a very huge partition in Cassandra?

     

Coordinator node timed out waiting for replica nodes in Cassandra Datastax while insert data

嗨,朋友们,我在寻找其他答案,但对我来说并不成功。他们提到我们需要增加 cassandra.yaml 文件中的超时时间,但是问题是我没有该文件。

我已经用HomeBrew安装了Cassandra。以下是我当前在MacBook上运行的版本

cqlsh:cassandra_training> show version;
[cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]

当我这样做

cqlsh:cassandra_training> select count(*) from access_point_logs;

然后出现以下错误

ReadTimeout: Error from server: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 1 responses." info={'received_responses': 1, 'required_responses': 1, 'consistency': 'ONE'}

我需要增加哪个文件的超时时间。由于我没有得到 cassandra.yaml 文件。

我的Cassandra安装路径如下

/usr/local/Cellar/cassandra/3.11.4

有什么方法可以计算记录数。

2 个答案:

答案 0 :(得分:1)

简而言之,答案是否定的。您应该在未指定任何键的情况下运行查询,因为这不是Cassandra的设计方式。

如果您只需要一个一次性电话号码,则可以使用nodetool tablestats

Button

在输出中查找“键数(估计)”。

上面的命令将为您提供表中分区键的估计数量,因此这可能是您想要的,也可能不是。

如果您需要定期获取此编号,我通常会创建另一个计数器表,并在您从另一个表中添加/删除记录时对其进行管理。

答案 1 :(得分:0)

我解决了这个问题。创建表时,我没有正确地将主键集群键添加在一起,因为它显示了这种错误。

我以前是通过以下方式创建表结构的

create table access_point_logs (
    id bigint primary key,
    wd_number varchar,
    ip_address varchar,
    mac_address varchar,
    created_at timestamp,
    updated_at timestamp,
    access_point_id bigint
);

现在将其更改为以下内容

create table access_point_logs(
    id bigint,
    wd_number varchar,
    ip_address varchar,
    mac_address varchar,
    created_at timestamp,
    updated_at timestamp,
    access_point_id bigint,
    primary key ((wd_number), created_at, mac_address)
) with clustering order by (created_at desc);

以防万一像我这样的新手,我想添加以下定义和示例以了解什么是分区密钥和什么集群密钥

仔细观察以下变化

primary key ((wd_number), created_at, mac_address);


Partition Key - wd_number

Cluster Key - created_at, mac_address
  

分区键-在哪个特定节点上存储数据   集群。

     

集群键-主要用于对数据进行排序以及如何显示   提取数据时的默认顺序。

     

主键-可能是分区键+集群键的组合,或者   只是一个分区键

希望它可以对某人有所帮助。如果有人有疑问,请随时解雇。我会尽力回答这些问题。