Подтвердить что ты не робот

Синхронизация данных postgreSql с помощью ElasticSearch

В конечном итоге я хочу иметь масштабируемое решение поиска для данных в PostgreSql. Мой вывод указывает на использование Logstash для отправки событий записи из Postgres в ElasticSearch, однако я не нашел полезного решения. Содержащиеся мной решения включают использование jdbc-input для запроса всех данных из Postgres на интервал, а события удаления не записываются.

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

4b9b3361

Ответ 1

Если вам также необходимо уведомить об удалении DELETE и удалить соответствующую запись в Elasticsearch, это правда, что вход Logstash jdbc не поможет. Вам нужно будет использовать решение, работающее вокруг binlog, как здесь.

Однако, если вы все еще хотите использовать вход в Logstash jdbc, то вы можете просто записать в PostgreSQL записи с мягким удалением, т.е. создать новый столбец BOOLEAN, чтобы пометить ваши записи как deleted. Тот же флаг будет существовать в Elasticsearch, и вы можете исключить их из своих запросов простым term запросом в поле deleted.

Всякий раз, когда вам нужно выполнить некоторую очистку, вы можете удалить все отмеченные записи deleted в PostgreSQL и Elasticsearch.