Вопрос. Мне поручено исследовать, как заполнять данные в Elasticsearch. До сих пор немного пуст. Основной смысл:Elasticsearch заполняет два поля в одно новое поле после расчетов
Примечания: Все документы хранятся под ежедневными индексами с ~ 200 тыс. Документов в день.
- Мне нужно иметь возможность переиндексации данных за 60 дней.
- Мне нужно взять два поля для каждого документа payload.time_sec и payload.time_nanosec, взять там значения и выполнить некоторую математику (time_sec * 10 ** 9 + time_nanosec), а затем вернуть это как одно поле в reindexed документ
Я смотрю на API документации Python с объемными помощниками: http://elasticsearch-py.readthedocs.io/en/master/helpers.html
Но мне интересно, если это вообще возможно.
Мои мысли должны были использовать: Массовые помощники, чтобы вытащить идентификатор прокрутки (массив _update?), Перебирать каждый идентификатор документа, извлекать эти данные из двух полей для каждой док-станции, выполнять математику и завершать обновление запрос с новыми данными поля.
Кто-нибудь это сделал? Может, что-то с серьезным сценарием?
Спасибо!
Ive использовал python для работы по этой проблеме до сих пор, опубликует фрагменты кода в новом ответе – fastfiveoh
@fastfiveoh, какое решение вы решите наконец? Я встречаю подобную проблему и задаюсь вопросом, какой путь лучший. –
@RobinWang Я, наконец, просто написал сценарий, вы можете увидеть его в моем репо: [link] https://github.com/fastfiveoh/python-es-reindex/blob/master/backfill_data – fastfiveoh