Как изменить время по умолчанию на значение таблицы в Кассандре - PullRequest
1 голос
/ 17 апреля 2020

У нас есть требование изменить время по умолчанию на действительное значение для таблиц в cassandra с 5 до 10 дней. Если я изменю таблицу и установлю новое значение ttl, что произойдет с существующими данными. Пожалуйста, предложите лучший вариант сделать это для производственных данных.

Ответы [ 2 ]

0 голосов
/ 19 апреля 2020

Любое изменение значения TTL по умолчанию для таблицы будет применяться к новым обновлениям (новым записям или обновлениям), поступающим в таблицу. Значение TTL существующих столбцов останется таким же, как оно было рассчитано во время обновления значения этого столбца.

Из вашего вопроса не ясно, каково ваше требование к существующим данным. Если вы хотите обновить значение TTL и для существующих значений столбцов, AFAIK не существует простого способа сделать это.

0 голосов
/ 18 апреля 2020

TTL - это значение, которое определяет, сколько времени данные будут жить в таблице перед надгробиями. Хорошее объяснение Datastax здесь.

TTL (Time To Live) в секундах, где ноль отключен. Максимальное настраиваемое значение - 630720000 (20 лет). Если значение больше нуля, TTL включается для всей таблицы, и отметка времени истечения добавляется в каждый столбец. Новая временная метка TTL вычисляется каждый раз, когда данные обновляются, а строка удаляется после истечения срока действия всех данных. Значение по умолчанию: 0 (отключено). Вы можете сослаться на подробности таблицы всех свойств таблицы в Cassandra. https://docs.datastax.com/en/cql-oss/3.3/cql/cql_reference/cqlCreateTable.html#tabProp__cqlTableDefaultTTL

Чтобы изменить default_time_to_live, необходимо предупредить свойства таблицы, как указано в приведенной выше ссылке.

...