Синхронизация операций вставки, обновления и удаления MySQL с помощью ElasticSearch
Вот довольно распространенный случай для эластичного поиска (ES): поскольку ES близок к реальному времени, мы хотим синхронизировать его с MySQL как можно ближе к реальному времени. Исходные таблицы импортируются в индекс, и он работает нормально, но теперь нам нужно отследить вставку, обновление и удаление новых записей, и вот здесь у нас есть вопрос. Импорт осуществляется через importsearch-jdbc импортер. Он может иметь параметр интервала для периодического опроса данных, но:
- мы не можем добавить поля в БД, которые будут отвечать за выборку новых / обновленных строк,
- мы хотим иметь больше атомарных операций, таких как вставка строки БД-> документ вставки ES, обновление строки БД-> документ обновления ES и так далее.
Два варианта, которые могут удовлетворить наши потребности:
Другие решения приветствуются!
1 ответ
Logstash с плагином logstash-input-jdbc может просто синхронизировать операции вставки и обновления. Операция удаления ошибки не может быть синхронизирована напрямую. Мы поговорили больше о том, как синхронизировать операцию удаления MySQL с logstash-input-jdbc? в https://discuss.elastic.co/t/delete-elasticsearch-document-with-logstash-jdbc-input/47490/9.