Я использую logstash для индексации данных из postgres (плагин ввода jdbc) в elasticsearch. У меня нет информации о времени в базе данных. Пользователи таблицы Postgres для импорта имеют 2 столбца - идентификатор пользователя (уникальный), без имени Экспорт эластичного поиска - _id = идентификатор пользователя Я экспортирую эти данные каждый час, используя расписание cron в logstash.
input {
jdbc {
schedule => "0 */1 * * *"
statement => "SELECT userid, uname FROM users"
}
}
output {
elasticsearch {
hosts => ["elastic_search_host"]
index => "user_data"
document_id => "%{userid}"
}
}
Эта конфигурация logstash правильно индексирует данные. Но это работает только для обновлений и вставок. Если какие-либо данные / информация о пользователе будут удалены из таблицы, это не приведет к удалению документа из индекса эластичного поиска. Может кто-нибудь помочь мне с делом удаления?