Мне нужно синхронизировать c данные RDBS с Elasticsearch. Общий подход к достижению этого заключается в применении изменений в RDBS, а затем использовании очереди сообщений (или таблицы, используемой для ETL) для применения тех же изменений в ES.
Тот же блог Elasticsearch предлагает выдавать 1000 сообщений из очередь и pu sh их в массовом запросе со вставками, обновлениями и удалениями.
Известно, что ES работает в режиме реального времени NEAR, и требуется refre sh, прежде чем изменения будут видны поисковым запросам .
Учитывая этот факт, возникает вопрос: выполните ли CRUD операцию с EXPLICIT ID (GET, INSERT, UPDATE, DELETE), нужно обновить sh, если выполнено в ряду? Другими словами: находятся ли CRUD в строке В РЕАЛЬНОМ ВРЕМЕНИ?
Читая несколько статей, похоже, что они не нуждаются в refre sh, и они применяются в реальном времени, но я хотел бы получить подтвердите.
Для большей ясности: мне не нужно выполнять поиск запросы (где refre sh необходим, чтобы сделать изменения видимыми), но просто с использованием явного доступа по идентификатору. Я не возражаю , когда эти изменения станут видимыми для поиска.
Если два запроса CRUD выполняются подряд на ES:
ИНДЕКС документ с идентификатором = 1
ОБНОВЛЕНИЕ (или УДАЛЕНИЕ) документ с идентификатором = 1
Требуется ли 2) дождаться обновления sh чтобы увидеть 1)?
Если да, я не могу найти способ добиться согласованности между RDBS и ES, потому что одни и те же операции в строке завершатся обновленным (или удаленным) документом в RDBS, но не будет работать на ES из-за отсутствия refre sh.