在Cassandra中为映射中的元素选择TTL

在Cassandra中为映射中的元素选择TTL,cassandra,cql3,Cassandra,Cql3,有没有办法用CQL3在Cassandra中为映射中的元素选择TTL值 我试过这个,但不起作用: SELECT TTL (mapname['element']) FROM columnfamily 不幸的是,我很确定答案是,在Cassandra 1.2和CQL3中,这是不可能的。不能查询集合的单个元素。如前所述,“您只能检索整个集合”。不过,我也非常希望能够查询集合元素 您仍然可以为集合中的单个元素设置TTL。我想,如果您希望确保TTL是集合元素的某个值,您可以读取整个集合,然后使用所需的TTL

有没有办法用CQL3在Cassandra中为映射中的元素选择TTL值

我试过这个,但不起作用:

SELECT TTL (mapname['element']) FROM columnfamily

不幸的是,我很确定答案是,在Cassandra 1.2和CQL3中,这是不可能的。不能查询集合的单个元素。如前所述,“您只能检索整个集合”。不过,我也非常希望能够查询集合元素

您仍然可以为集合中的单个元素设置TTL。我想,如果您希望确保TTL是集合元素的某个值,您可以读取整个集合,然后使用所需的TTL更新集合(整个集合或仅选择的几个元素)。或者,如果您确实需要了解单个数据的TTL,那么您可能只需要将模式从集合更改回良好的旧动态列,TTL查询肯定会对这些列起作用

或者,第三种可能是向模式中添加另一列来保存集合的TTL。例如:

CREATE TABLE test (
  key text PRIMARY KEY,
  data map<text, text>,
  data_ttl text
) WITH ...
我意识到这些解决方案都不是完美的。。。我还在努力想什么对我来说最合适

SELECT ttl(data_ttl) FROM test;