18

我有一个这样定义的 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';

但是由于只有主键列,因此功能喜欢ttl并且writetime不起作用。除了向不属于主键的表中添加额外的“虚拟”列之外,我如何获得 TTL?

4

2 回答 2

7

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

于 2015-10-19T13:18:55.730 回答
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;
于 2013-10-01T20:00:44.220 回答