API, которые предоставляют данные из эластичного поиска, а не SQL

#sql #api #elasticsearch

#sql #API #elasticsearch

Вопрос:

У меня есть система, в которой есть большие наборы данных, в которых я хочу выполнять быстрый поиск, и для этого подходит эластичный поиск. Таким образом, данные хранятся в SQL и синхронизируются с ES. В этой синхронизации есть очевидная небольшая задержка.

Есть потребители этих данных, которые могут работать со слегка устаревшими данными. Итак, если есть API для пользовательского интерфейса, который конечные пользователи используют для просмотра набора данных. Допустима задержка в 3-4 секунды. Поэтому обработчик API, который имеет дело с ES, здесь идеален.

Тогда есть потребители этих данных (боты), которые хотят работать с данными в реальном времени. Итак, для почти тех же требований, должен ли я создать другой API, подобный этому, в UI consumer, который получает данные из SQL?

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

Ответ №1:

Вероятно, вам следует придерживаться создания только sinlge API и использовать параметр строки запроса, чтобы решить, какой из двух источников данных использовать. Это приведет к меньшему количеству кода для обслуживания.