Удалить неиспользуемые данные - PullRequest
0 голосов
/ 18 сентября 2018

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

Когда я вызываю / _ cat / allocation? V disk.indices составляет 23,9 МБ, а disk.used16,4 ГБ.Почему эта разница?Как удалить неиспользуемые данные или как правильно удалить индексы?

Я выполнил команду:

curl -XPOST "elasticsearch:9200/_forcemerge?only_expunge_deletes=true"

Но я не увидел никаких улучшений.

Вывод _cat / alloc? v :

shards disk.indices disk.used disk.avail
12       24.3mb    16.4gb     22.7gb   

Вывод _cat / shards? v :

index        shard prirep state      docs  store ip           node
articles     0     p      STARTED    3666 24.2mb 192.168.1.21 lW9hsd5
articles     0     r      UNASSIGNED                          
storage_test 2     p      STARTED       0   261b 192.168.1.21 lW9hsd5
storage_test 2     r      UNASSIGNED                          
storage_test 3     p      STARTED       0   261b 192.168.1.21 lW9hsd5
storage_test 3     r      UNASSIGNED                          
storage_test 4     p      STARTED       0   261b 192.168.1.21 lW9hsd5
storage_test 4     r      UNASSIGNED                          
storage_test 1     p      STARTED       0   261b 192.168.1.21 lW9hsd5
storage_test 1     r      UNASSIGNED                          
storage_test 0     p      STARTED       0   261b 192.168.1.21 lW9hsd5
storage_test 0     r      UNASSIGNED                          
twitter      3     p      STARTED       1  4.4kb 192.168.1.21 lW9hsd5
twitter      3     r      UNASSIGNED                          
twitter      2     p      STARTED       0   261b 192.168.1.21 lW9hsd5
twitter      2     r      UNASSIGNED                           
twitter      4     p      STARTED       0   261b 192.168.1.21 lW9hsd5
twitter      4     r      UNASSIGNED                          
twitter      1     p      STARTED       0   261b 192.168.1.21 lW9hsd5
twitter      1     r      UNASSIGNED                          
twitter      0     p      STARTED       0   261b 192.168.1.21 lW9hsd5
twitter      0     r      UNASSIGNED                          
.kibana      0     p      STARTED       4 26.4kb 192.168.1.21 lW9hsd5

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Вы можете столкнуться с некоторыми побочными эффектами _forcemerge в индексе, не предназначенном только для чтения:

Предупреждение: принудительное объединение должно вызываться только для чтениятолько показателиВыполнение принудительного слияния с индексом чтения-записи может привести к созданию очень больших сегментов (> 5 ГБ на сегмент), и политика слияния никогда не будет рассматривать его для повторного слияния, пока оно в основном не состоит из удаленных документов.Это может привести к тому, что в сегментах останутся очень большие сегменты.

В этом случае я бы предложил сначала сделать индекс доступным только для чтения:

PUT your_index/_settings
{
  "index": {
    "blocks.read_only": true
  }
}

Затем выполнить принудительное объединениеснова и включите обратную запись в индекс:

PUT your_index/_settings
{
  "index": {
    "blocks.read_only": false
  }
}

В случае, если это не сработает, вы можете переиндексировать из старого индекса в новый индекс и затем удалить старый индекс.

Есть ли лучший способ удаления старых журналов?

Похоже, вы хотите удалить старые сообщения журнала.Хотя вы могли бы выполнить удаление по запросу, на самом деле есть лучший способ: использовать Rollover API .

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

Надеюсь, это поможет!

0 голосов
/ 18 сентября 2018

https://www.elastic.co/guide/en/elasticsearch/guide/current/delete-doc.html

Как уже упоминалось в Обновлении всего документа, удаление документа не сразу удаляет документ с диска; это просто помечает это как удален. Elasticsearch очистит удаленные документы в фон при продолжении индексации дополнительных данных.

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