Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API для создания и восстановления снимков

API получения снимков

Новая справка по API

Для получения самых последних данных об API, обратитесь к 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API