ElasticSearch 7 не получает _id от JDBC на Logstash - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь обновить индексы ElasticSearch данными, сохраненными в базе данных SQL, таким образом, чтобы каждая строка, добавленная в БД, автоматически добавлялась в ElasticSearch.

Я пытался установить первичный ключ БД какполе _id ElasticSearch таким образом, чтобы при каждом запуске расписания Logstash (раз в минуту) документы, уже внесенные в ElasticSearch, не добавлялись повторно.

Это мой файл Logstash .conf:

input {
    jdbc {
        jdbc_connection_string => "JDBC-Connection-String"
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        jdbc_user => "JDBC-Connection-User"
        jdbc_driver_library => "JDBC-Driver-Path"
        statement => "SELECT MyCol1 MyCol2 FROM MyTable"
        use_column_value => true
        tracking_column => "MyCol1"
        tracking_column_type => "numeric"
        clean_run => true
        schedule => "*/1 * * * *"
    }
}
output {
    elasticsearch {
    hosts => "http://localhost:9200"
    index => "MyIndex"
    document_id => "%{MyCol1}"
}

    stdout { }
}

После завершения Logstash я нахожу в ElasticSearch только 1 документ с "_id": "%{MyCol1}", почему Logstash не может правильно принять значение id? PS MyCol1 - это первичный ключ Mytable

...