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

У меня есть PostgreSQL 10 база данных с таблицей. 7000 новых данных поступает в таблицу каждый час.

В Logstash 6.4 У меня есть такой .conf файл, который создает индекс в Elasticsearch.

.conf:

input {
    jdbc {
        jdbc_connection_string => "jdbc:postgresql://@host:@port/@database"
        jdbc_user => "@username"
        jdbc_password => "@password"
        jdbc_driver_library => "C:\postgresql-42.2.5.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        statement => "SELECT * from table_name"
    }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "table_name"
    }
}

Вопросы

  1. Как обновить существующий индекс новыми данными, которые появились в таблице?
  2. Какой максимальный объем данных может хранить индекс? Может ли быть переполнение?

1 Ответ

0 голосов
/ 27 октября 2018

Как обновить существующий индекс новыми данными, которые появились в таблице?

Индекс table_name автоматически обновляется новыми записями, добавляемыми в таблицу базы данных. Однако, если какие-либо существующие записи обновляются в таблице базы данных, они добавляются в индекс как новые документы с новым идентификатором документа. Вместо этого, если вы хотите обновить существующий документ в ES, используйте имя столбца с уникальными значениями и назначьте его в качестве идентификатора документа. Таким образом, если существующая запись в базе данных обновляется, соответствующий документ в ES перезаписывается последними значениями.

Использовать document_id => "%{column_name_with_unique_values>}" в выходной конфигурации

Какой максимальный объем данных может хранить индекс? Может ли быть переполнение?

Это действительно зависит от ваших ресурсов. Тем не менее, для оптимальной производительности рекомендуется хранить размер вашего сегмента в пределах 20 - 40 ГБ. Если ваш индекс имеет 5 основных сегментов, вы можете хранить около 200 ГБ данных в одном индексе. Все, что выше, рассмотрите возможность хранения данных в новом индексе. В идеале, используйте индексы временных рядов, такие как ежедневные или ежемесячные, чтобы их было легче поддерживать, например. для архивации и резервного копирования, а затем очистить.

...