Для чего нужны псевдонимы в asticsearch?

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

Я не нашел такого вопроса здесь, и информация, представленная на веб-сайте Elasticsearch, также не сильно помогла.

Может кто-нибудь объяснить, для чего нужны псевдонимы, и в идеале привести пример ситуации, когда они нужны?

2 ответа

Решение

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

Например, вы должны хранить журналы приложения не менее одного года. Вы решаете использовать основанные на времени индексы, то есть сохраняете в индексы в следующем формате: 2018-02-logs, 2018-03-logs и т.д. Для того, чтобы иметь возможность поиска по каждому индексу, вы создаете следующий псевдоним:

POST /_aliases
{
 "actions": [{ 
     "add": {
          "alias": "current-logs", "indices": [ "2018-02-logs","2018-03-logs" ]
        }  
  }]
}

И запрос, как:

GET /current-logs/_search

Еще одним преимуществом является то, что вы можете очень легко удалить устаревшие значения:

POST /_aliases
{
  "actions": [

      { "remove": { "alias": "current-logs",  "index": "logs_2018-01" }}
  ]
}

а также DELETE /logs_2018-01

Псевдонимы похожи на мягкие ссылки или ярлыки на реальные индексы

преимущество заключается в том, чтобы иметь возможность иметь псевдоним, указывающий на index1a, при построении или повторной индексации на index2b, и момент их замены является атомарным благодаря псевдониму, на который должен указывать весь код

Переименование псевдонима - это простая операция удаления и добавления в том же API. Эта операция атомарная, не нужно беспокоиться о коротком промежутке времени, когда псевдоним не указывает на индекс:

[EDIT], как указано, псевдонимы @wholevinski имеют другие функции, такие как:

Несколько действий могут быть указаны для действия...

вся информация находится на странице, которую вы связали

[EDIT2] подробнее о том, почему нужна / выгода атомарности

ключом является "нулевое время простоя" https://en.wikipedia.org/wiki/Zero_unscheduled_downtime или https://en.wikipedia.org/wiki/High_availability

https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html

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

Псевдонимы в основном создаются для того, чтобы сгруппировать набор индексов и сделать их доступными независимо от имени, которое они имеют. Указатель на набор индексов. Вы также можете применить запрос / условие ко всем этим индексам. Это очень полезно при выполнении запросов или создании панелей мониторинга по одной и той же группе индексов все время. Вдобавок, если в будущем вы измените имя индексов, которые являются частью псевдонима, конечные пользователи не заметят этого изменения, поскольку оно прозрачно для них, и вы обновите только указатель.

Другие вопросы по тегам