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