当前位置: 首页 > 知识库问答 >
问题:

cassandra获取时间范围内的所有记录

毕魁
2023-03-14
CREATE TABLE userlog (
  user_id text,
  ts timestamp,
  action text,
  app_type text,
  channel_name text,
  channel_session_id text,
  pid text,
  region_id text,
  PRIMARY KEY (user_id, ts)
)
SELECT * FROM userlog  WHERE ts >= '2013-01-01 00:00:00+0200' AND  ts <= '2013-08-13 23:59:00+0200' ALLOW FILTERING;
Request did not complete within rpc_timeout.

在包含所有数据的生产性系统上。

是否有一个(最好是cql)查询可以与给定的列族或de一起平稳运行,我们必须更改设计?

共有1个答案

马嘉勋
2023-03-14

超时是因为Cassandra返回数据的时间超过了超时时间(默认为10秒)。对于您的查询,Cassandra将尝试在返回之前获取整个数据集。对于多个记录,这很容易比超时时间更长。

对于产生大量数据的查询,您需要分页。

SELECT * FROM userlog WHERE ts >= '2013-01-01 00:00:00+0200' AND  ts <= '2013-08-13 23:59:00+0200' AND token(user_id) > previous_token LIMIT 100 ALLOW FILTERING;

其中user_id是返回的前一个user_id。您还需要在ts上分页,以确保您获得返回的最后一个user_id的所有记录。

 类似资料:
  • 问题内容: 有没有办法获取所有当前在javascript范围内的变量? 问题答案: 否。“范围内”变量由“作用域链”确定,该变量无法通过编程方式访问。 有关详细信息(很多),请查看ECMAScript(JavaScript)规范。这是指向官方页面的链接,您可以在其中下载规范规范(PDF),而这是指向官方的可链接HTML版本的链接。 根据您对Camsoft的评论进行更新 事件函数作用 域中 的变量取

  • 问题内容: 因此,我试图生成的是特定时间范围内的所有小时。 因此,鉴于范围从上午11点到下午2:00,我将得到: 我试图避免必须在商店每隔特定的小时存储一次,而只存储范围(我需要将小时数与其他时间进行比较) 谢谢 问题答案: 如果您有数字表(如果没有,请单击链接以创建一个表)… 如果这是专门的,则可以创建仅包含24个值的小时表。

  • 我有来自Microsoft Azure数据中心(http://www.microsoft.com/en-us/download/confirmation.aspx?id=41653)的900个IP地址范围,我想知道IP地址是否来自其中一个地址。我已经把它转换成一个列表,可以存储在文本文件中。 所以:循环遍历每个地址并使用ip2long()如这里的第3点是否成本更高(https://mebsd.co

  • 问题内容: 我想知道如何在给定父范围的情况下获取所有子范围的列表。我可以从该范围的属性中找到$ childHead,$ childTail,$ nextSibling和$$ prevSibling。 我现在使用的方法是从父级获取childHead,然后使用nextSibling获取下一个孩子,直到nextSibling为空。 有没有更好的方法?鉴于我想在所有子项上调用方法[getModel],是否

  • 问题内容: 我最近了解到oracle具有对我来说非常有用的功能-因为设计者/实现者不太在意数据历史记录- 我可以查询记录的历史状态(如果它在oracle缓存中仍然可用),如下所示: 但是现在我需要检查范围内的历史数据。使用缓存是否有可能? 问题答案: 是的,像这样: 请注意,您可以走多远受UNDO_RETENTION参数的限制,通常为几小时而不是几天。

  • 问题内容: 请考虑以下代码段: 哪里是我追求的是将包含字典,并且,除其他事项外。 我希望基本上能够引用字符串中当前作用域内的所有变量。因此,预期输出为: 我可以通过传递给实现。这是否总是正确的,或者在某些极端情况下此表达式将无法正确处理? 重写以澄清问题。 问题答案: 在执行操作时合并两个字典的最佳方法是(将本地变量覆盖全局变量)。 缺少将全局变量和本地变量合并的方法是(a)内置函数(我想这是故意