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

Pet*_*ter 17 ttl cassandra cql3 datastax-java-driver

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

CREATE table primary_key_only(
  row_key varchar,
  clustered_key varchar,
  primary key(row_key, clustered_key)
)
Run Code Online (Sandbox Code Playgroud)

假设我插入这样的值:

INSERT INTO primary_key_only (row_key, clustered_key) VALUES ('FACE', 'D00D') USING TTL 86400;
Run Code Online (Sandbox Code Playgroud)

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

SELECT ttl(<column_name>) FROM table WHERE row_key='key';
Run Code Online (Sandbox Code Playgroud)

但由于只有主键列,像功能ttlwritetime将无法正常工作.除了在不属于主键的表中添加额外的"虚拟"列之外,我如何获得TTL?

Jon*_*dad 6

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


cs_*_*nus 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;
Run Code Online (Sandbox Code Playgroud)