Я знаю, что можно определить TTL при выполнении INSERT / UPDATE в столбец / таблицу Cassandra и т. Д. (INSERT INTO ... USING TTL 1234
). Также можно определить TTL по умолчанию при создании таблицы (CREATE TABLE ... WITH default_time_to_live="1234";
).
Однако можно ли определить более глобальные значения по умолчанию? Возможные сценарии включают:
- Определение глобального TTL при создании пространства ключей (чтобы любые таблицы наследовали TTL)? Судя по документации, похоже, что он не поддерживается (https://docs.datastax.com/en/dse/5.1/cql/cql/cql_reference/cql_commands/cqlCreateKeyspace.html & https://docs.datastax.com/en/dse/5.1/cql/cql/cql_using/useExpire.html ), но подумал, что стоит на всякий случай спросить
- Определение (в
cassandra.yaml
config?) Глобального TTL для любых новых пространств ключей - Определение глобального TTL для любых новых данных во всем кластере
Другой вопрос:
- Есть ли быстрый и дешевый способ изменить (увеличить, уменьшить) TTL для уже существующих данных (как можно более глобально - надеюсь, на уровне таблицы)? Согласно документам требуется повторная вставка (https://docs.datastax.com/en/dse/5.1/cql/cql/cql_using/useExpire.html#useExpire__setting-a-ttl-for-a-specific-column-RYjSo4Iu), поэтому простой
ALTER TABLE
работать не будет. Это правильно? Кто-нибудь может предложить лучшие идеи?