我有一个像这样定义的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?
答案 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;