У меня есть несколько миллионов исторических объектов, которые нужно сохранить в Elasticsearch.Что было бы лучшим способом сделать это, не вдаваясь во внутренности эластичного поиска?Вот шаблон, который я сейчас использую:
ACTIONS = []
NUM_ACTIONS_TO_BULK = 10000
for num, item in enumerate(HISTORY_DATA.values()):
ACTIONS.append({
"_index": ES_INDEX_NAME,
"_type": "_doc",
"_id": item.pop('_id'),
"_source": item
})
# Save every 10k and again at the end
if (len(ACTIONS) == NUM_ACTIONS_TO_BULK) or (num == len(HISTORY_DATA) - 1):
log.info('%s/%s - Saving %s items to ES...' % (num, len(HISTORY_DATA), len(ACTIONS))
_ = helpers.bulk(self.es, ACTIONS)
ACTIONS = []
Выше сохраняет его в ES в пакетах по 10k.Это лучший / самый эффективный способ сохранить вещи в ES?Например, что если я попытался сохранить все объекты 15M непосредственно в ES с помощью helpers.bulk - это будет разделить элементы на части или попытаться сохранить все сразу?Похоже, я что-то упустил из вышеперечисленного?