#python #amazon-web-services #elasticsearch
#python #amazon-web-services #elasticsearch
Вопрос:
Я все равно не могу найти, как настроить TTL для документа в AWS Elasticsearch с использованием библиотеки python elasticsearch.
Я просмотрел код самой библиотеки, и для этого нет никаких аргументов, и я еще не видел никаких ответов в Google.
Комментарии:
1. Я лично использую OpenStack Horizon для загрузки документов в облако, а API поддерживает TTL, что является сложной характеристикой для поиска.
2. Похоже
_ttl
, устарел. См. раздел Управление жизненным циклом индекса (ILM) .
Ответ №1:
Его нет, вы можете использовать политику управления индексами, если хотите, которая будет работать на уровне индекса, а не на уровне документа. У вас есть немного места для маневра, хотя вы можете создать шаблон data-*
и иметь более 1 индекса , data-expiring-2020-...
, data-keep-me
.
Вы можете применить шаблон к шаблону data-expiring-*
и установить переход для удаления индекса, скажем, через 20 дней. Если вы каждый день переходите к новому индексу, самый старый день будет удален в конце дня, когда пройдет более 20 дней.
Этот метод намного предпочтительнее, потому что, если вы удаляете отдельные документы, которые могут потреблять большое количество ресурсов вашего кластера, в отличие от удаления целых сегментов. Другие базы данных NoSQL, такие как DynamoDB, работают аналогичным образом, часто все, что вы можете сделать, это добавить другое поле к вашему docs
, например, deletionDate
и добавить его в свой запрос, чтобы отфильтровать документы, которые помечены для удаления, но все еще находятся в вашем индексе, поскольку задание на удаление еще не очистило их. Именно так ведет себя TTL в DynamoDB: данные удаляются не в момент истечения срока действия TTL, а в пакетах для повышения производительности.