Я хотел установить TTL для моей таблицы DynamoDB и установить его как «TTL» ключ. Используется python3 + boto3 для выполнения пакетной записи с полем TTL, установленным на str (int (time.time ()) + 172800). Я также попробовал int (time.time ()) + 172800.
В любом случае метка времени эпохи в столбце TTL составляла 48 часов в будущем. При использовании второй версии при наведении курсора на значение в таблице DynamoDB появилось всплывающее окно с датой и временем отметки времени, и я подтвердил, что это будет через 2 дня в будущем.
Однако, когда я вернулся ~ 5 минут спустя и обновил таблицу, все записи исчезли.
Я повторил процесс и активно обновился, чтобы следить за значениями, и все они постепенно удалялись, а более поздние отметки времени удалялись последними . Я проверил журналы облачных часов, и они показали мои сканы и записи в правильное время по Гринвичу.
Мне просто интересно, из-за чего это могло произойти. Для справки дата создания таблицы - 27 июля 2019 г .; Возможно ли, что часы для БД выключены?
Пример удаленной временной метки: 1588959677, которая когда-нибудь должна преобразоваться в 5/8/2020.
Сообщите мне, если мне нужно предоставить дополнительная информация и спасибо за помощь.
Изменить: при пакетной записи я запускаю следующее:
boto3.resource('dynamodb', region_name).batch_write_item(RequestItems=put_data)
где:
put_data = { tablename: { "PutRequest": { "Item" { "id": "id", "TTL": ttl_integer_value, "another_id": "id", "flag": "true", "timestamp": original_time_value, "description": "some description" }}}}
Я попытался изменить его на :
put_data = { tablename: { "PutRequest": { "Item" { "TTL": {"N": ttl_integer_value}... }}}}
, но возникла ошибка с недопустимым значением ключа
Кроме того, если я наведу курсор на целочисленное значение в таблице, соответствующие дата и время отобразятся во всплывающем окне . Разве это не указание на правильный формат?