查询时cassandra操作超时

cassandra operation timeout when querying

我有一个非常简单的时间数据集

CREATE TABLE incoming (
    id uuid,
    otime timeuuid,
    data map<text, text>,
    type int,
    PRIMARY KEY (id)
)

我在尝试进行基于时间的查询时注意到一个错误,我正在按照 datastax 中的示例进行操作,但发现我是否进行了这样的查询

SELECT data FROM incoming WHERE otime >= minTimeuuid('2015-09-08 01:00:00') AND otime < maxTimeuuid('2015-09-08 02:00:00') AND type=1 LIMIT 500;

我收到错误 OperationTimedOut:错误={}

如果我把句点改成这个

SELECT data FROM posts WHERE otime >= minTimeuuid('2015-09-08 00:00:00') AND otime < maxTimeuuid('2015-09-08 10:00:00') AND type=1 LIMIT 500;

我收到了没有任何错误的结果。

我已经确认那里有数据,因为我可以在 otime 列报告 2015-09-08 中看到条目 01:10:06+0000

我试过在查询中包含时区,但我似乎能够检索数据的唯一方法是增加周期或查看较旧的时间范围。

我有 运行 nodetool repair 并将 cassandra 和 opscenter 升级到最新版本,我认为这与 ops center 有关,因为我现在无法配置修复服务,但我正在努力那个。

output.log 或 system.log

中没有错误

我已经从 python 驱动程序和 cqlsh 中确认了这一点。

对于 python 驱动程序,我增加了超时时间,认为它正在检索大量数据并将其一直设置为 90,并且还重新配置了 cassandra 节点本身的超时时间,但都没有成功。

任何想法

对于 运行 这些查询,您需要同时更改架构和查询。 Cassandra 不允许您在标准之间(> 和 < 之后)包含条件。 将您的架构更改为

CREATE TABLE incoming (
    id uuid,
    otime timeuuid,
    data map<text, text>,
    type int,
    PRIMARY KEY (type, id)
)

并查询为

SELECT data FROM incoming WHERE type=1 and otime >= minTimeuuid('2015-09-08 01:00:00') AND otime < maxTimeuuid('2015-09-08 02:00:00') LIMIT 500;