настройка TTL на основе ПК - PullRequest
0 голосов
/ 10 июня 2019

DynamoDB имеет функцию, позволяющую вам настроить ttl на основе PK + SK, мне интересно, как он поддерживает ttl только на основе PK.Можно ли настроить ttl, который работает со всеми записями PK?

В настоящее время я выполняю какое-то задание cron по удалению старых данных каждый день.

Будет приятно, если у Dynamodb естьтакая основанная на PK функция ttl и не потребляемая емкость.

1 Ответ

0 голосов
/ 10 июня 2019

Мне неизвестно о какой-либо функции в DyanamoDb, которая позволяет вам просрочить элементы, основываясь на ключах хеш / диапазона.Функция TTL для динамо не основана непосредственно на клавишах Hash и / или Range, вы выбираете любой отдельный атрибут , который может присутствовать в ваших элементах в качестве атрибута TTL (он можетбыть ключом Hash, или ключом Range, или любым другим неключевым атрибутом, который может существовать для элементов в вашей таблице) - я могу сказать, что он может существовать, потому что не обязательно, чтобы он существовал для всех элементов (любых элементов, которые не имеютатрибут TTL будет просто проигнорирован, т.е. никогда не истечет).Вы выбираете один (и только один, а не множественный) атрибут, который затем будет использовать Dynamo, чтобы определить, следует ли автоматически удалять элементы с истекшим сроком, и когда они это делают, они удаляются автоматически (как если бы вы отправили вызов DeleteItem самостоятельно).Обратите внимание, что автоматическая очистка сама по себе не является немедленной, для фактического удаления элементов с истекшим сроком может потребоваться до 48 часов.

Выбранный вами атрибут TTL должен просто иметь формат времени эпохи (то есть стандартный UnixОтметка времени), поэтому в вашем случае, если существующий HashKey является отметкой времени, вы просто используете ее в качестве атрибута TTL.Я полагаю, что это не так, поэтому лучше всего добавить атрибут timestamp, который определяет время создания элемента в стандартном формате unix-timestamp, а затем настроить таблицу с этим атрибутом в качестве атрибута TTL.

Более подробную информацию о функции TTL, ее настройке и т. Д. Можно найти здесь:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...