Elasticsearch Удалить все индексы

Elasticsearch Udalit Vse Indeksy



Elasticsearch — это бесплатная поисковая и аналитическая система с открытым исходным кодом, которая поддерживает стек ELK. Elasticsearch позволяет различным конвейерам данных собирать и агрегировать данные с помощью таких инструментов, как Logstash. Затем Elasticsearch сохраняет предоставленные данные, позволяя приложениям получать доступ, искать, сортировать и фильтровать большие объемы данных почти в реальном времени. Elasticsearch также позволяет визуализировать различные данные с помощью встроенных инструментов.

Такие функции делают Elasticseach очень подходящим для поиска и сортировки больших объемов данных с минимальной задержкой или без нее. Итак, создаете ли вы поисковую систему или анализируете журналы, метрики и другие текстовые данные, Elasticsearch — отличный выбор.







В основе Elasticsearch лежит индекс. Индекс относится к единице, отвечающей за хранение документов в Elasticsearch. Индекс относительно эквивалентен базе данных в контексте реляционных баз данных. Например, у вас может быть индекс, содержащий все данные для журналов веб-приложения.



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



В этой статье показано, как использовать функции API Elasticsearch для удаления всех индексов из вашего кластера.





ВНИМАНИЕ: Методы и приемы, используемые в этой статье, приведут к потере данных. Мы не несем ответственности за любую потерю данных, которая может произойти из-за инструкций в этой статье.

API удаления индекса Elasticsearch

Если вы запускаете Elasticsearch, вам нужно знать, как выполнять основные вызовы API. Это связано с тем, что Elasticsearch максимально использует API.



Как вы можете догадаться, мы используем Delete Index API для удаления индекса из кластера. Синтаксис запросов на удаление индекса показан ниже:

УДАЛИТЬ /< индекс >


Запрос удаляет указанный индекс и сохраненные документы, осколки и все его метаданные.

Имейте в виду, что это не приведет к удалению каких-либо компонентов Kibana, связанных с указанным индексом, таких как представления данных и т. д.

Вы можете указать один или несколько индексов, разделив их запятыми. Пример синтаксиса показан ниже:

УДАЛИТЬ / index_name
УДАЛИТЬ / индекс1, индекс2, индекс3... индексN


Elasticsearch запрещает вам использовать псевдоним индекса при удалении индекса. Вместо этого вы должны использовать имя индекса.

Пример 1: Индекс удаления Elasticsearch

В следующем примере показано, как использовать API удаления индекса Elasticsearch для удаления существующего индекса из кластера:

завиток -XУДАЛИТЬ 'http://localhost:9200/kibana_sample_data_logs?pretty=true' -ЧАС 'kbn-xsrf: отчетность'


Предыдущий запрос отправляет запрос DELETE в API удаления. Это должно удалить индекс с именем «kibana_sample_data_logs».

Полученный результат выглядит следующим образом:

{
'признано' : истинный
}

Пример 2: Elasticsearch удаляет несколько индексов

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

завиток -XУДАЛИТЬ 'Д8539398ДДЭЭ1Б807ААФ412КА23Ф866Д51АБ2638' -ЧАС 'kbn-xsrf: отчетность'


Предыдущая команда удаляет указанные индексы и возвращает сообщение, как показано ниже:

{
'признано' : истинный
}


Примечание. Если индекс не существует, Elasticsearch возвращает ошибку, как показано ниже:

Пример 3: Elasticsearch Удалить все индексы

Мы можем использовать подстановочный знак _all в API удаления индекса, чтобы удалить все индексы из кластера. API удаления индекса по умолчанию не позволит вам передать подстановочные знаки в запросе.

Вы можете отключить это, установив для action.desctructive_requires_name значение false.

Следующий запрос показывает, как включить использование подстановочных знаков в API удаления индекса:

завиток -XPUT 'локальный: 9200 /_кластер/настройки' -ЧАС 'kbn-xsrf: отчетность' -ЧАС 'Тип контента: приложение/json' '
{
'переходный': {
«action.destructive_requires_name»: ложь
}
}'


ПРИМЕЧАНИЕ. Хотя Elasticsearch не рекомендует использовать временные параметры кластера, избегайте установки деструктивных параметров кластера, таких как использование подстановочных знаков в качестве постоянного параметра кластера.

Предыдущий запрос должен вернуть результат в виде:

{
'признано' : истинный ,
'настойчивый' : { } ,
'преходящий' : {
'действие' : {
'destructive_requires_name' : 'ЛОЖЬ'
}
}
}


В случае успеха вы можете удалить все индексы в кластере, выполнив следующую команду:

завиток -XУДАЛИТЬ «http://localhost:9200/_all?pretty=true» -ЧАС 'kbn-xsrf: отчетность'

Пример 4: Elasticsearch удаляет все индексы, соответствующие определенным именам

Если вы хотите удалить все индексы, соответствующие определенному шаблону, вы можете использовать подстановочный знак (*).

Например, чтобы удалить все индексы, начинающиеся с имени kibana, мы можем выполнить следующий запрос:

завиток -XУДАЛИТЬ «http://localhost:9200/kibana*» -ЧАС 'kbn-xsrf: отчетность'


Предыдущий запрос удаляет все индексы, начинающиеся с kibana.

ПРИМЕЧАНИЕ. Предыдущий запрос требует использования подстановочных знаков. Следовательно, вы должны включить поддержку подстановочных знаков, как показано в предыдущем разделе.

Вывод

В этом руководстве вы узнали, как использовать API удаления индекса Elasticsearch. Вы также узнали, как включить поддержку подстановочных знаков в вашем кластере, удалить все индексы и удалить индексы, соответствующие определенному шаблону.