расписание logstash, вставка повторяющихся записей в эластичный поиск - PullRequest
0 голосов
/ 10 июня 2018

Я создал конфигурационный файл logstash с входным плагином JDBC для переноса таблиц базы данных Oracle в эластичный поиск и сделал его по расписанию каждые пять минут.

Он работает в соответствии с ожиданиями, но проблема в том, что он вставляет дублирующиеся записикогда он работает во 2-й, 3-й раз.как мы можем избежать вставки записей дублирования вasticsearch.?

Пожалуйста, найдите мой файл конфигурации logstash с входным плагином JDBC

input {
      jdbc {
        jdbc_driver_library => "D:\1SearchEngine\data\ojdbc8.jar"
        jdbc_driver_class => "Java::oracle.jdbc.OracleDriver"
        jdbc_connection_string => "jdbc:oracle:thin:@localhost:1521:XE"
        jdbc_user => "demo"
        jdbc_password => "1234567"
        schedule => "*/5 * * * *"
        statement => "select * from documents"
      }
    }

    output {
      elasticsearch {
        hosts => ["localhost:9200"]
        index => "schedule1_documents"
      }
    }

, пожалуйста, найдите схему таблицы моего документа

id  ---> Not Null number
FileName ---> varchar2
Path     ----> varchar2
File_size ---> varchar2

1 Ответ

0 голосов
/ 11 июня 2018

Вам необходимо использовать поле идентификатора из таблицы documents.В противном случае ES создаст сам идентификатор.

Таким образом, ваш вывод должен выглядеть следующим образом:

  elasticsearch {
    hosts => ["localhost:9200"]
    index => "schedule1_documents"
    document_id => "%{id}"              <-- add this line with the proper ID field
  }
...