加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cassandra:如何选择过去30天内更新的数据

发布时间:2020-12-13 13:29:13 所属栏目:百科 来源:网络整理
导读:我们要求从表中加载最近30天的更新数据. 下面的潜在解决方案之一不允许这样做. select * from XYZ_TABLE where WRITETIME(lastupdated_timestamp) (TOUNIXTIMESTAMP(now())-42,300,000);select * from XYZ_TABLE where lastupdated_timestamp (TOUNIXTIMESTA
我们要求从表中加载最近30天的更新数据.

下面的潜在解决方案之一不允许这样做.

select * from XYZ_TABLE where WRITETIME(lastupdated_timestamp) > (TOUNIXTIMESTAMP(now())-42,300,000);

select * from XYZ_TABLE where lastupdated_timestamp > (TOUNIXTIMESTAMP(now())-42,000);

该表有列

lastupdated_timestamp (with an index on this field)
lastupdated_userid (with an index on this field)

任何指针……

解决方法

除非您的表是使用此查询构建的,否则您的查询将搜索数据库的每个分区,一旦您的数据集变大并且可能导致超时,这将变得非常昂贵.

为了有效地完成此查询,XYZ_TABLE应该具有如下所示的主键:

PRIMARY KEY ((update_month,update_day),lastupdated_timestamp)

这是如此Cassandra知道在哪里找到数据.它有快速查找的月和日桶,然后您可以运行这样的查询以查找某一天的更新.

SELECT * FROM XYZ_TABLE WHERE update_month = 07-18 and update_day = 06

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读