2015-03-02 1 views
0

Я создал Elasticsearch snapshot и хочу восстановить его с другим количеством осколков. Мой старый кластер использует 5 осколков для каждого индекса, я хочу уменьшить его до 2 осколков.Elasticsearch: Восстановить моментальный снимок с различным количеством осколков

Возможно ли это сделать с помощью API-снимков Elasticsearch?

ответ

3

Это невозможно с помощью API-снимков Elasticsearch. Внутренний снимок сделан за осколок, и он восстанавливается также таким же образом.

- Edit ---

Мы shrink API сейчас, что может уменьшить число осколок, но только к devisiable числа.

+0

Слишком плохо. Поскольку вся информация существует, не должно быть слишком сложно реализовать инструмент для этого. – Sonson123

+1

Повторное индексирование - единственный способ. Проблема в том, что обратный индекс также является частью индекса, а не только данных. Эти данные должны быть объединены/разделены для увеличения или уменьшения осколка. Изменение функции маршрутизации также принесет значительный объем работы. –

0

Я полагаю, вы говорите о реплике (Так как у меня есть аналогичная проблема раньше):

POST /_snapshot/my_backup/snapshot_1/_restore 
{ 
    "indices": "index_1", 
    "index_settings": { 
    "index.number_of_replicas": 0 
    }, 
    "ignore_index_settings": [ 
    "index.refresh_interval" 
    ] 
} 

The document есть эта строка кода, который может изменить свое количество реплик во время восстановления porcess.

Однако количество осколков не изменится.

Есть ли причина, по которой вы хотите изменить осколки? (Если речь не идет о репликах)

Редактировать Один: Чтобы изменить черепки, как сказал @Vineeth Mohan, повторно индексации только так, насколько я знаю.

+0

Пример: наши данные имеют «pri: 3; rep: 1', и когда я использую это для восстановления данных в кластере тестирования одного узла, я могу уменьшить это до 'pri: 3; rep: 0'. Так что да, это не изменит осколки, а только реплику. – SharkIng