【问题标题】:Delete the data in cassandra for specific time period删除cassandra中特定时间段的数据
【发布时间】:2014-03-23 06:28:53
【问题描述】:

假设我想删除在特定时间段(晚上 9 点到午夜)内转储到我的 cassandra 集群中的数据。该怎么做?

我知道我们需要创建一个带有时间戳的列并检索它,但我的架构现在不包含时间戳列。如何在没有额外列的情况下删除它。

【问题讨论】:

    标签: cassandra datastax-enterprise datastax cassandra-cli cqlsh


    【解决方案1】:

    使用 TTL:

    http://www.datastax.com/docs/1.0/dml/using_cql#use-cql-ttl

    INSERT INTO NerdMovies (movie, director, main_actor, year)
                    VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
    USING TTL 86400;
    

    您需要计算要删除该列的时间戳的秒数并设置TTL,当经过该秒数时它将被删除。

    【讨论】:

    • 我想删除 cassandra 中已经存在的数据。我们不小心在特定时间段内向错误的集群添加了一些信息,现在我们需要将其删除。
    • 我的错,你可以使用 writetime 函数“select record_id, writetime(title) from records;”您可以查询特定的时间戳,获取它们的主键,然后循环删除这些列
    • 如何查询特定的时间戳。我认为我们不能在 where 子句中使用 writetime。有没有办法说时间 > 9PM 和时间
    • 你不能一步完成这个操作,尤其不能批量完成(一个删除语句删除所有内容)。您必须读取所有行,确定写入时间是否落入有问题的窗口,然后发出单独的删除查询。
    • 整个过程非常痛苦。那个答案是我的问题。谢谢你们。
    猜你喜欢
    • 2018-02-02
    • 1970-01-01
    • 2016-10-18
    • 2022-10-14
    • 2014-03-04
    • 1970-01-01
    • 2019-02-15
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多