совместная работа поиска и больших запросов - PullRequest
0 голосов
/ 24 октября 2018

У меня есть веб-приложение, в котором данные анализа отображаются в браузере, а в качестве хранилища данных для бэкэнда используетсяasticsearch.

Все было круто, посколькуasticsearch обрабатывал данные объемом около 1 ТБ, а поисковые запросы быстро работали.

Затем пришло решение добавить данные из всех сервисов в приложение, близкое к петабайту, и мы переключились на bigquery. [Да, мы отказались от эластичного поиска и начали запрашивать bigquery напрямую].

Теперь пользователимое приложение жалуется на то, что их запросы медленные, они занимают секунды (4 ~ 10 ~ 15), которые раньше отображались за секунду.

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

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

Заранее спасибо, если вы можете указать мне правильное направление.

1 Ответ

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

Это распространенный шаблон, который я вижу, развернутый клиентами:

  • Используйте Elasticsearch для отображения результатов за последний день / неделю - независимо от того, что умещается в ОЗУ Elasticsearch.
  • Используйте BigQuery длявсе остальное.

Таким образом, ваши пользователи будут получать результаты за доли секунды для 90% своих запросов, а также смогут отправиться туда, куда захотят, если Elasticsearch не сможет найтиответ в пределах своих ресурсов.

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

(конечно, ожидайте улучшения всоединения и скорость по мере развития техники)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...