Ответ 1
Просто для всех будущих посетителей, начиная с 2.2, это все еще невозможно без добавления фиктивного столбца.
У меня есть таблица 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, не добавляя дополнительный столбец "dummy" в таблицу, которая не является частью первичного ключа?
Просто для всех будущих посетителей, начиная с 2.2, это все еще невозможно без добавления фиктивного столбца.
Вы можете вызвать ttl на clustered_key, за исключением того, что он является частью первичного ключа.
Возможно, кластеризованный ключ не должен быть частью вашего первичного ключа?
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;