我们需要从表格中加载最近30天的更新数据。
以下一种可能的解决方案不允许这样做。
select * from XYZ_TABLE where WRITETIME(lastupdated_timestamp) > (TOUNIXTIMESTAMP(now())-42,300,000);
select * from XYZ_TABLE where lastupdated_timestamp > (TOUNIXTIMESTAMP(now())-42,300,000);
该表的列为
lastupdated_timestamp (with an index on this field)
lastupdated_userid (with an index on this field)
任何指针...
答案 0 :(得分:6)
除非您的表是基于此查询构建的,否则查询将搜索数据库的每个分区,一旦您的数据集变大,这将变得非常昂贵,并且可能导致超时。
要有效完成此查询,XYZ_TABLE应该具有如下主键:
PRIMARY KEY ((update_month, update_day), lastupdated_timestamp)
这是为了让Cassandra知道在哪里可以找到数据。它具有可以快速查找的月份和日期时段,然后您可以运行类似的查询来查找特定日期的更新。
SELECT * FROM XYZ_TABLE WHERE update_month = 07-18 and update_day = 06