API получения снимков
Получает информацию об одном или нескольких снимках.
resp = client.snapshot.get(
repository="my_repository",
snapshot="my_snapshot",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'my_snapshot' ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "my_snapshot",
});
console.log(response); GET /_snapshot/my_repository/my_snapshot
Запрос
GET /_snapshot/<repository>/<snapshot>
Предварительные условия
- Если функции безопасности Elasticsearch включены, у вас должны быть
monitor_snapshot,create_snapshotилиmanageправа кластера, чтобы использовать этот API.
Параметры пути
-
<repository> -
(Обязательно, строка) Список имен хранилищ снимков, разделенных запятыми, используемых для ограничения запроса. Поддерживаются шаблоны с подстановкой (
*), включая комбинацию шаблонов с исключениями, начинающимися с-.Чтобы получить информацию обо всех зарегистрированных в кластере хранилищах снимков, опустите этот параметр или используйте
*или_all. -
<snapshot> -
(Обязательно, строка) Список имен снимков, разделенных запятыми, для получения. Поддерживаются шаблоны с подстановкой (
*), включая комбинацию шаблонов с исключениями, начинающимися с-.- Чтобы получить информацию обо всех снимках в зарегистрированном хранилище, используйте шаблон с подстановкой (
*) или_all. -
Чтобы получить информацию о всех снимках, которые в настоящее время выполняются, используйте
_current.Использование
_allв запросе приводит к ошибке, если какие-либо снимки недоступны. Установитеignore_unavailableнаtrue, чтобы вернуть только доступные снимки.
- Чтобы получить информацию обо всех снимках в зарегистрированном хранилище, используйте шаблон с подстановкой (
Параметры запроса
-
master_timeout - (Необязательно, единицы времени) Время ожидания узла мастера. Если узел мастера не доступен до истечения таймаута, запрос завершается ошибкой и возвращает ошибку. По умолчанию
30s. Также можно установить значение-1, чтобы указать, что запрос никогда не должен выйти за пределы таймаута.
-
ignore_unavailable -
(Необязательно, Булево) Если
false, запрос возвращает ошибку для любых недоступных снимков. По умолчаниюfalse.Если
true, запрос игнорирует недоступные снимки, такие как поврежденные или временно недоступные. -
verbose - (Необязательно, Булево) Если
true, возвращает дополнительную информацию о каждом снимке, такую как версия Elasticsearch, которая сделала снимок, начальные и конечные времена снимка и количество разделенных фрагментов. По умолчаниюtrue. Еслиfalse, дополнительная информация опускается. -
index_names - (Необязательно, Булево) Если
true, возвращает список имен индексов, включенных в каждый снимок в ответе. По умолчаниюtrue. -
index_details - (Необязательно, Булево) Если
true, возвращает дополнительную информацию о каждом индексе в снимке, в том числе количество фрагментов в индексе, общий размер индекса в байтах и максимальное количество сегментов на фрагмент в индексе. По умолчаниюfalse, что означает, что эта информация опускается. -
include_repository - (Необязательно, Булево) Если
true, возвращает имя хранилища для каждого снимка в ответе. По умолчаниюtrue. -
sort -
(Необязательно, строка) Позволяет задать порядок сортировки для результата. По умолчанию
start_time, т. е. сортировка по времени начала снимка.Допустимые значения для
sort-
start_time - Сортировать снимки по времени начала и разбивать связи по имени снимка.
-
duration - Сортировать снимки по продолжительности и разбивать связи по имени снимка.
-
name - Сортировать снимки по имени.
-
repository - Сортировать снимки по имени хранилища и разбивать связи по имени снимка.
-
index_count - Сортировать снимки по количеству содержащихся в них индексов и разбивать связи по имени снимка.
-
shard_count - Сортировать снимки по количеству содержащихся в них фрагментов и разбивать связи по имени снимка.
-
failed_shard_count - Сортировать снимки по количеству фрагментов, которые они не смогли заснимить, и разбивать связи по имени снимка.
-
-
size - (Необязательно, целое число) Максимальное количество снимков для возврата. По умолчанию
0, что означает возврат всех подходящих снимков без ограничения. -
order - (Необязательно, строка) Порядок сортировки. Допустимые значения:
ascдля возрастания иdescдля убывания. По умолчаниюasc, что означает возрастание. -
from_sort_value - (Необязательно, строка) Значение текущего сортируемого столбца, с которого начать получение. Может быть именем снимка или хранилища при сортировке по имени снимка или хранилища, значением времени в миллисекундах или числом при сортировке по количеству индексов или фрагментов.
-
after - (Необязательно, строка) Идентификатор смещения для начала постраничной навигации, как возвращается в поле
nextв теле ответа. Использование этого параметра исключает использование параметраfrom_sort_value. -
offset - (Необязательно, целое число) Числовой смещение для начала постраничной навигации на основе снимков, соответствующих этому запросу. Использование ненулевого значения для этого параметра исключает использование параметра
after. По умолчанию0. -
slm_policy_filter - (Необязательно, строка) Фильтрация снимков по списку имен политик SLM, к которым принадлежат снимки, разделенных запятыми. Также поддерживаются шаблоны с подстановкой (
\*) и комбинации шаблонов с исключениями, начинающимися с-. Например, шаблон*,-policy-a-\*вернёт все снимки, кроме тех, которые были созданы политикой SLM с именем, начинающимся сpolicy-a-. Обратите внимание, что шаблон с подстановкой*соответствует всем снимкам, созданным политикой SLM, но не снимкам, которые не были созданы политикой SLM. Чтобы включить снимки, не созданные политикой SLM, можно использовать специальный шаблон_none, который будет соответствовать всем снимкам без политики SLM.
Параметр after и поле next позволяют итерировать по снимкам с некоторыми гарантиями согласованности в отношении одновременного создания или удаления снимков. Гарантируется, что любой снимок, который существует в начале итерации и не удаляется одновременно, будет виден во время итерации. Снимки, созданные одновременно, могут быть видны во время итерации.
Параметры size, order, after, from_sort_value, offset, slm_policy_filter и sort не поддерживаются при использовании verbose=false, и порядок сортировки запросов с verbose=false не определён.
Тело ответа
-
snapshot - (строка) Название моментального снимка.
-
uuid - (строка) Универсальный уникальный идентификатор (UUID) моментального снимка.
-
version_id - (целое число) Идентификатор сборки используемой версии Elasticsearch для создания моментального снимка.
-
version - (вещественное число) Версия Elasticsearch, используемая для создания моментального снимка.
-
indices - (массив) Список индексов, включённых в моментальный снимок.
-
index_details -
(объект) Детали каждого индекса в моментальном снимке, с ключами по имени индекса. Присутствует только если параметр запроса
?index_detailsустановлен, и содержит детали только для индексов, которые были полностью засняты в достаточно недавней версии Elasticsearch.Свойства
index_details-
shard_count - (целое число) Количество фрагментов в этом индексе.
-
size - (строка) Общий размер всех фрагментов в этом индексе. Присутствует только если параметр запроса
?humanустановлен. -
size_in_bytes - (длинное целое число) Общий размер всех фрагментов в этом индексе в байтах.
-
max_segments_per_shard - (целое число) Максимальное количество сегментов на фрагмент в этом индексе.
-
-
data_streams - (массив строк) Список потоков данных, включённых в моментальный снимок.
-
include_global_state - (Булево значение) Указывает, включено ли текущее состояние кластера в моментальный снимок.
-
feature_states -
(массив объектов) Состояния функций в моментальном снимке. Присутствует только если моментальный снимок содержит одно или несколько состояний функций.
Свойства объектов
features_states-
feature_name - (строка) Название функции, возвращённое API получения функций.
-
indices - (массив строк) Индексы в состоянии функции.
-
-
start_time - (строка) Дата и время начала процесса создания моментального снимка.
-
start_time_in_millis - (длинное целое число) Время в миллисекундах начала процесса создания моментального снимка.
-
end_time - (строка) Дата и время окончания процесса создания моментального снимка.
-
end_time_in_millis - (длинное целое число) Время в миллисекундах окончания процесса создания моментального снимка.
-
duration_in_millis - (длинное целое число) Время создания моментального снимка в миллисекундах.
-
failures - (массив) Список любых ошибок, произошедших при создании моментального снимка.
-
shards -
(объект) Содержит количество фрагментов в моментальном снимке.
Свойства
shards-
total - (целое число) Общее количество фрагментов, включенных в моментальный снимок.
-
successful - (целое число) Количество фрагментов, успешно включённых в моментальный снимок.
-
failed - (целое число) Количество фрагментов, которые не удалось включить в моментальный снимок.
-
-
state -
(строка) Состояние моментального снимка
stateможет быть одним из следующих значений:Значения для
state-
IN_PROGRESS - Моментальный снимок в настоящее время выполняется.
-
SUCCESS - Моментальный снимок завершён, и все фрагменты были успешно сохранены.
-
FAILED - Моментальный снимок завершился с ошибкой и не удалось сохранить какие-либо данные.
-
PARTIAL - Глобальное состояние кластера было сохранено, но данные по крайней мере одного фрагмента не были сохранены успешно. Раздел
failuresответа содержит более подробную информацию о фрагментах, которые не были обработаны корректно.
-
-
next - (строка) Если запрос содержал ограничение по размеру и могут быть дополнительные результаты, в ответ будет добавлен поле
next, которое может быть использовано как параметр запросаafterдля получения дополнительных результатов. -
total - (целое число) Общее количество моментальных снимков, соответствующих запросу, при игнорировании ограничения по размеру или параметра запроса
after. -
remaining - (целое число) Количество оставшихся моментальных снимков, которые не были возвращены из-за ограничений по размеру и которые могут быть получены дополнительными запросами, используя значение поля
next.
Примеры
Следующий запрос возвращает информацию для snapshot_2 в репозитории my_repository.
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot_2",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'snapshot_2' ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot_2",
});
console.log(response); GET /_snapshot/my_repository/snapshot_2
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_2",
"uuid": "vdRctLCxSketdKb54xw67g",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.129Z",
"start_time_in_millis": 1593093628850,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593094752018,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"total": 1,
"remaining": 0
} Следующий запрос возвращает информацию для всех моментальных снимков с префиксом snapshot в репозитории my_repository, ограничивая размер ответа 2 и сортируя по имени моментального снимка.
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*",
size="2",
sort="name",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'snapshot*', size: 2, sort: 'name' ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot*",
size: 2,
sort: "name",
});
console.log(response); GET /_snapshot/my_repository/snapshot*?size=2&sort=name
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_1",
"uuid": "dKb54xw67gvdRctLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.129Z",
"start_time_in_millis": 1593093628850,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593094752018,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
},
{
"snapshot": "snapshot_2",
"uuid": "vdRctLCxSketdKb54xw67g",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.130Z",
"start_time_in_millis": 1593093628851,
"end_time": "2020-07-06T21:55:18.130Z",
"end_time_in_millis": 1593094752019,
"duration_in_millis": 1,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"next": "c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI=",
"total": 3,
"remaining": 1
} Затем можно сделать последующий запрос для оставшихся моментальных снимков, используя значение next из предыдущего ответа в качестве параметра after.
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*",
size="2",
sort="name",
after="c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI=",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'snapshot*', size: 2, sort: 'name', after: 'c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI=' ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot*",
size: 2,
sort: "name",
after: "c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI=",
});
console.log(response); GET /_snapshot/my_repository/snapshot*?size=2&sort=name&after=c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI=
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_3",
"uuid": "dRctdKb54xw67gvLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.129Z",
"start_time_in_millis": 1593093628850,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593094752018,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"total": 3,
"remaining": 0
} Альтернативно, тот же результат можно получить, используя значение смещения 2, чтобы пропустить два моментальных снимка, которые уже были просмотрены.
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*",
size="2",
sort="name",
offset="2",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'snapshot*', size: 2, sort: 'name', offset: 2 ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot*",
size: 2,
sort: "name",
offset: 2,
});
console.log(response); GET /_snapshot/my_repository/snapshot*?size=2&sort=name&offset=2
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_3",
"uuid": "dRctdKb54xw67gvLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.129Z",
"start_time_in_millis": 1593093628850,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593094752018,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"total": 3,
"remaining": 0
} Следующий запрос возвращает информацию для всех моментальных снимков с префиксом snapshot в репозитории my_repository, кроме того, который называется snapshot_3
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*,-snapshot_3",
sort="name",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'snapshot*,-snapshot_3', sort: 'name' ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot*,-snapshot_3",
sort: "name",
});
console.log(response); GET /_snapshot/my_repository/snapshot*,-snapshot_3?sort=name
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_1",
"uuid": "dKb54xw67gvdRctLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.129Z",
"start_time_in_millis": 1593093628850,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593094752018,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
},
{
"snapshot": "snapshot_2",
"uuid": "vdRctLCxSketdKb54xw67g",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.130Z",
"start_time_in_millis": 1593093628851,
"end_time": "2020-07-06T21:55:18.130Z",
"end_time_in_millis": 1593094752019,
"duration_in_millis": 1,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"total": 2,
"remaining": 0
} Следующий запрос возвращает информацию для всех моментальных снимков, которые следуют за snapshot_2 при сортировке по имени моментального снимка в порядке возрастания по умолчанию.
resp = client.snapshot.get(
repository="my_repository",
snapshot="*",
sort="name",
from_sort_value="snapshot_2",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: '*', sort: 'name', from_sort_value: 'snapshot_2' ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "*",
sort: "name",
from_sort_value: "snapshot_2",
});
console.log(response); GET /_snapshot/my_repository/*?sort=name&from_sort_value=snapshot_2
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_2",
"uuid": "vdRctLCxSketdKb54xw67g",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.130Z",
"start_time_in_millis": 1593093628851,
"end_time": "2020-07-06T21:55:18.130Z",
"end_time_in_millis": 1593094752019,
"duration_in_millis": 1,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
},
{
"snapshot": "snapshot_3",
"uuid": "dRctdKb54xw67gvLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.129Z",
"start_time_in_millis": 1593093628850,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593094752018,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"total": 2,
"remaining": 0
} Следующий запрос возвращает информацию для всех моментальных снимков с именами, начинающимися с snapshot_ и которые начались в или после отметки времени 1577833200000 (1 января 2020 г.) при сортировке по времени начала моментального снимка в порядке возрастания по умолчанию.
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot_*",
sort="start_time",
from_sort_value="1577833200000",
)
print(resp) response = client.snapshot.get( repository: 'my_repository', snapshot: 'snapshot_*', sort: 'start_time', from_sort_value: 1_577_833_200_000 ) puts response
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot_*",
sort: "start_time",
from_sort_value: 1577833200000,
});
console.log(response); GET /_snapshot/my_repository/snapshot_*?sort=start_time&from_sort_value=1577833200000
API возвращает следующий ответ:
{
"snapshots": [
{
"snapshot": "snapshot_1",
"uuid": "dKb54xw67gvdRctLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.128Z",
"start_time_in_millis": 1593093628849,
"end_time": "2020-07-06T21:55:18.129Z",
"end_time_in_millis": 1593093628850,
"duration_in_millis": 1,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
},
{
"snapshot": "snapshot_2",
"uuid": "vdRctLCxSketdKb54xw67g",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.130Z",
"start_time_in_millis": 1593093628851,
"end_time": "2020-07-06T21:55:18.130Z",
"end_time_in_millis": 1593093628851,
"duration_in_millis": 0,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
},
{
"snapshot": "snapshot_3",
"uuid": "dRctdKb54xw67gvLCxSket",
"repository": "my_repository",
"version_id": <version_id>,
"version": <version>,
"indices": [],
"data_streams": [],
"feature_states": [],
"include_global_state": true,
"state": "SUCCESS",
"start_time": "2020-07-06T21:55:18.131Z",
"start_time_in_millis": 1593093628852,
"end_time": "2020-07-06T21:55:18.135Z",
"end_time_in_millis": 1593093628856,
"duration_in_millis": 4,
"failures": [],
"shards": {
"total": 0,
"failed": 0,
"successful": 0
}
}
],
"total": 3,
"remaining": 0
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/get-snapshot-api.html