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

Cassandra时间戳列查询

严昊昊
2023-03-14

我想查询cassandra timestamp列,例如this hour、last hour、beather。

我在mysql中执行了与昨天数据相同的查询

Select * from table where time>=CURDATE() - INTERVAL 1 DAY AND time < CURDATE();

共有2个答案

长孙正卿
2023-03-14

您正在尝试在Cassandra中扩大搜索范围,它需要多个节点才能共享结果。很可能会超时。您需要重新考虑您的数据流,因为您绝对知道分区键包含您的日期,并且需要使用分区键获取数据。

    Select * from table where time='2022-25-01';
    Select * from table where time='2022-24-01';

您需要管理结果。因为您正在根据分区键获取结果。

您可以考虑使用扣件以获得更好的性能。

蔺劲
2023-03-14

Cassandra 4.0支持日期/时间算术,但语法有点不同。您可以编写如下内容:

SELECT * FROM myTable WHERE date >= currentDate() - 2d;

但是请考虑到性能将严重依赖于实际的数据模型,因此如果您在没有分区键的情况下运行此查询,那么它将扫描整个数据库,并且很可能会超时。我建议阅读有关Cassandra的数据建模的信息——尽管语言看起来像SQL,但它并不SQL。

 类似资料:
  • 使用Cassandra 2.28,Drive 3,Sparks2。我在Cassandra中有一个timestamp列,我只需要按日期部分查询它。如果我按日期查询:<代码>。其中(“交易日期=?”,“2012-01-21”:它不会带来任何结果。如果我包括时间部分,它会显示无效日期。我的数据(如我在cqlsh中所读)是:2012-01-21 08:01:00 0000 参数:“2012-01-21”

  • 从mytable中选择*,其中id='5'和postingdate>='2018-11-06 00:00:00'和postingdate<='2018-11-06 23:59:59'; 在开发中心控制台(或CQLSH)上运行这个查询,会给我相同的结果,而不考虑时区。我在PST和IST中都尝试过,得到了同样的结果。在执行查询之前,Cassandra是在执行PST->UTC还是IST->UTC转换?如

  • null 还是有其他(更好的)选择? 谢谢

  • 我有带有时间戳(UTC时间)的json日志。我将键和值映射到Cassandra表键并插入记录。但是,Cassandra通过从时间戳中减去5小时,再次将已有的UTC时间戳转换为UTC。这里的时区是(GMT+5)。 现在时间已经是UTC时间,并且仍然插入5小时前的时间戳。 我如何解决这个问题?

  • 我的目标是使用不同的主键将行从一个Cassandra2.0表移动到另一个表。为了确保数据的一致性,我需要用原始的时间戳插入它们()。我计划使用/复制,或者只使用和从CSV自定义导入。 是否有方法复制带有时间戳的行?在TimeUUID列上不起作用,说明“不正确的复制命令”。 提前谢了。

  • 任何一个都可以,要求数据是一个字符串化的JSON对象。我的查询将返回用户在给定时间范围内的所有数据。哪种模式更有意义,或者有更好的方法来解决这个问题?