Как ускорить прокрутку Elasticsearch в python - PullRequest
1 голос
/ 12 марта 2020

Мне нужно получить данные за определенный период времени с помощью es api и использовать python, чтобы выполнить индивидуальный анализ этих данных и отобразить результат на информационной панели.

Есть около двухсот тысяч записей каждые 15 минут, индексируются по дате.

Теперь я использую скролл-сканирование для получения данных, но получение 200000 записей занимает почти минуту , Это кажется слишком медленным.

Есть ли есть ли способ обработать эти данные быстрее? и можно ли использовать что-то вроде redis, чтобы сохранить результаты и избежать повторной работы?

1 Ответ

1 голос
/ 12 марта 2020

Можно ли выполнить анализ на стороне Elasticsearch с использованием агрегатов?

Предполагая, что вы этого еще не делаете, вы должны использовать _source только для загрузки требуемых абсолютных минимальных данных. Вы также можете попробовать увеличить параметр size до scan() со значения по умолчанию, равного 1000. Однако от этого можно ожидать лишь незначительного улучшения скорости.

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

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