CQL3:如果只有主键,如何检索TTL?

时间:2013-09-30 15:25:27

标签: cassandra cql3 ttl datastax-java-driver

我有一个像这样定义的CQL表:

CREATE table primary_key_only(
  row_key varchar,
  clustered_key varchar,
  primary key(row_key, clustered_key)
)

假设我插入如下值:

INSERT INTO primary_key_only (row_key, clustered_key) VALUES ('FACE', 'D00D') USING TTL 86400;

如何检索插入数据的TTL?通常,如果有一个不属于主键的CQL列,那么我可以使用如下语句:

SELECT ttl(<column_name>) FROM table WHERE row_key='key';

但由于只有主键列,因此ttlwritetime等功能无效。除了在不属于主键的表中添加额外的“虚拟”列之外,我如何获得TTL?

2 个答案:

答案 0 :(得分:5)

仅仅为了未来的访问者,从2.2开始,如果不添加虚拟列,这仍然是不可能的。

答案 1 :(得分:0)

您可以在clustered_key上调用ttl,除非它是主键的一部分。

也许群集密钥不需要成为主键的一部分?

CREATE table primary_key_only(
  row_key varchar primary key,
  clustered_key varchar
);

INSERT INTO primary_key_only(row_key, clustered_key) VALUES('FACE', 'D00D') USING TTL 86400;

SELECT row_key, clustered_key, ttl(clustered_key) FROM primary_key_only;