Как заставить Logstash заменить старые данные? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть БД Oracle.Logstash извлекает данные из Oracle и помещает их в ElasticSearch.


Но когда Logstash выполняет плановый экспорт каждые 5 минут, ElasticSearch, заполненный копиями, приводит к тому, что старые данные все еще существуют.Это очевидная ситуация.Состояние Oracle практически не изменилось за эти 5 минут.Допустим - добавлено 2-3 строки, а 4-5 удалено.

Как мы можем заменить старые данные новыми без копий?


Например:

  1. Удалить весь старый индекс;
  2. Создайте новый индекс с тем же именем и настройте его (конфигурация и отображение nGram);
  3. Добавьте все новые данные;
  4. Подождите 5 минут и повторите.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вам просто нужно использовать отпечаток пальца / хэш каждого документа или хэш полей uniq в каждом документе в качестве идентификатора документа, чтобы в любое время вы могли перезаписывать одни и те же документы на месте, обновляя их, добавляя новыедокументы также.

Но этот подход не будет работать с удалением данных из Oracle.

0 голосов
/ 28 ноября 2018

Это довольно просто: создайте новый индекс для каждого импорта и примените сопоставления, затем переключите свой псевдоним на самый последний индекс.Удалите старые индексы, если это необходимо.Ваши текущие данные будут всегда доступны для поиска при индексации самых последних данных.

Вот источники, которые вам, вероятно, понадобятся для чтения:

  1. Используйте псевдонимы (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases.html), чтобы указывать на самые актуальные данные при поиске вasticsearch(Кстати, всегда полезно иметь псевдонимы на месте).

  2. Используйте rollover api (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-rollover-index.html) для создания нового индекса для каждого запуска импорта - обратите внимание наздесь также обрабатывается псевдоним.

  3. Используйте шаблоны индексов (https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html), чтобы автоматически применять сопоставления / настройки для вновь созданных индексов.

  4. Сокращайте, закрывайте и / или удаляйте старые индексы, чтобы ваш кластер обрабатывал данные, которые вам действительно нужны. Посмотрите на куратора (https://github.com/elastic/curator) как автономный инструмент.

...