Для чего нужны псевдонимы в 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
Мы поговорим о других способах использования псевдонимов позже в этой книге. Сейчас мы объясним, как их использовать для перехода от старого индекса к новому с нулевым временем простоя.
Псевдонимы в основном создаются для того, чтобы сгруппировать набор индексов и сделать их доступными независимо от имени, которое они имеют. Указатель на набор индексов. Вы также можете применить запрос / условие ко всем этим индексам. Это очень полезно при выполнении запросов или создании панелей мониторинга по одной и той же группе индексов все время. Вдобавок, если в будущем вы измените имя индексов, которые являются частью псевдонима, конечные пользователи не заметят этого изменения, поскольку оно прозрачно для них, и вы обновите только указатель.