【问题标题】:Cassandra row creation timestampCassandra 行创建时间戳
【发布时间】:2017-11-08 22:31:44
【问题描述】:

writetime 函数返回与非 PK 列关联的创建时间戳。

我需要一个等效的 PK 列,以确定分区/行的创建时间戳。

数据似乎在内部可用:通过sstabledump可以看到LivenessInfo。

有没有办法从 CQL 访问一行的活跃度信息?

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    这些东西可以在一定程度上澄清你的疑惑

    http://docs.datastax.com/en/archived/cql/3.0/cql/cql_using/use_writetime.html

    您可以只创建一个额外的列来存储时间戳 Best way to store last-touched time in Cassandra

    【讨论】:

    • 对不起,但这不是我问题的答案。我正在寻找一种方法来访问行的第一次触摸时间(AKA 分区),而不是字段的最后一次触摸时间。
    【解决方案2】:

    您不能在 PRIMARY KEY 部分使用 writeTime

    据我所知,没有办法,您必须手动创建另一个字段并在插入新主键时存储时间。

    【讨论】:

    • 这将需要在我的 INSERT 语句中使用 IF NOT EXISTS,我希望避免这样做
    【解决方案3】:

    3.0 之前的 sstable 存储格式没有此信息,因此在完全弃用之前的格式之前无法支持。

    【讨论】:

    • 为什么不从 3.0 版开始支持新的、合理的功能呢?我不明白你的逻辑。
    • coordinator 无法判断replica sstables 是什么格式。而且可以混合,所以它目前无法判断它是否可以满足查询。因为在它真正只是没有人想到或编写代码来支持它之前是不可能的。您可以在 issues.apache.org/jira/projects/CASSANDRA/summary 打开一个 jira,有人可能会使用它,或者您可以自己提交补丁。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2014-04-22
    • 2017-04-30
    相关资源
    最近更新 更多