Как создать новое поле вasticsearch и импортировать в него данные из постов? - PullRequest
0 голосов
/ 14 октября 2019

У меня есть большая таблица в postgres, содержащая 200 столбцов и более миллиона строк. Я хочу перенести эти данные в эластичный поиск с помощью logstash. В настоящее время я перемещаю около 50 столбцов.

Что я хочу знать, так это то, могу ли я добавить другие столбцы, позже сопоставив их с индексом вasticsearch? Например, скажем, у меня есть 10 столбцов в postgres, и я отображаю 4 в эластичный поиск. Могу ли я добавить остальные 6 столбцов вместе с их данными позже вasticsearch с тем же индексом?

Мой текущий файл конфигурации logstash выглядит следующим образом:

input {
    jdbc {

        jdbc_connection_string => "jdbc:postgresql://localhost:5432/school"


        jdbc_user => "postgres"
        jdbc_password => "postgres"


        jdbc_driver_library => "/Users/karangupta/Downloads/postgresql-42.2.8.jar"


        jdbc_driver_class => "org.postgresql.Driver"

        jdbc_paging_enabled => true

        statement_filepath => "/usr/local/Cellar/logstash/7.3.2/conf/myQuery.sql" 
    }
}


# output {
#     stdout { codec => json_lines }
# }

output {
    elasticsearch {
        index => "schoolupdated"
        hosts => "http://localhost:9200"
            }
        }

Приведенный выше файл конфигурации работает отлично идобавляет индекс. Как я могу добавить поля к этому индексу позже из postgres?

Я использую postgres 11.4 ,asticsearch 6.8.

1 Ответ

0 голосов
/ 15 октября 2019

Да, вы можете до тех пор, пока длинный эластичный поиск будет иметь идентификатор для каждой строки.

Просто добавьте

document_id => "%{uniqe_identifier_column_name_in_your_result}" #column name is case senitive

в конфигурацию выходного плагина эластичного поиска.

Если вы выполните импорт jdbc снова (теперь с новыми таблицами), новые поля будут добавлены к существующим документам путем перезаписи старых документов.

Подробнее по этой теме: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-document_id

Веселитесь!

...