スナップショットAPIの取得
1つ以上のスナップショットに関する情報を取得します。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="my_snapshot",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'my_snapshot'
)
puts response
Js
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のセキュリティ機能が有効になっている場合、このAPIを使用するには、
monitor_snapshot
、create_snapshot
、またはmanage
クラスター特権を持っている必要があります。
パスパラメータ
<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
、すなわちスナップショットの開始タイムスタンプでソートします。- `````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-\*
は、policy-a-
で始まる名前のSLMポリシーによって作成されたスナップショットを除外して、すべてのスナップショットを返します。ワイルドカードパターン*
は、SLMポリシーによって作成されたすべてのスナップショットに一致しますが、SLMポリシーによって作成されていないスナップショットには一致しません。SLMポリシーによって作成されていないスナップショットを含めるには、_none
という特別なパターンを使用して、SLMポリシーなしのすべてのスナップショットに一致させることができます。
`````size`````、`````order`````、`````after`````、`````from_sort_value`````、`````offset`````、`````slm_policy_filter`````、および`````sort`````のパラメータは、`````verbose=false`````を使用する場合はサポートされておらず、`````verbose=false`````を使用したリクエストのソート順は未定義です。
## レスポンスボディ
- `````snapshot
- (文字列) スナップショットの名前。
uuid
- (文字列) スナップショットのユニバーサルユニーク識別子(UUID)。
version_id
- (整数) スナップショットを作成するために使用されたElasticsearchバージョンのビルドID。
version
- (浮動小数点) スナップショットを作成するために使用されたElasticsearchバージョン。
indices
- (配列) スナップショットに含まれるインデックスのリスト。
index_details
- (オブジェクト) スナップショット内の各インデックスの詳細。インデックス名でキー付けされています。
?index_details
クエリパラメータが設定されている場合のみ存在し、十分に最近のElasticsearchバージョンで完全にスナップショットされたインデックスの詳細のみを含みます。- `````shard_count
- (整数) このインデックス内のシャード数。
size
- (文字列) このインデックス内のすべてのシャードの合計サイズ。
?human
クエリパラメータが設定されている場合のみ存在します。 size_in_bytes
- (長整数) このインデックス内のすべてのシャードの合計サイズ(バイト単位)。
max_segments_per_shard
- (整数) このインデックススナップショット内のシャードごとの最大セグメント数。
data_streams
- (文字列の配列) スナップショットに含まれるdata streamsのリスト。
include_global_state
(ブール値) 現在のクラスター状態がスナップショットに含まれているかどうかを示します。
feature_states
- (オブジェクトの配列) スナップショット内の機能状態。スナップショットに1つ以上の機能状態が含まれている場合のみ存在します。
- `````feature_name
- (文字列) get features APIによって返される機能の名前。
indices
- (文字列の配列) 機能状態のインデックス。
start_time
- (文字列) スナップショット作成プロセスが開始された日時のタイムスタンプ。
start_time_in_millis
- (長整数) スナップショット作成プロセスが開始されたときの時間(ミリ秒単位)。
end_time
- (文字列) スナップショット作成プロセスが終了した日時のタイムスタンプ。
end_time_in_millis
- (長整数) スナップショット作成プロセスが終了したときの時間(ミリ秒単位)。
duration_in_millis
(長整数) スナップショットを作成するのにかかった時間(ミリ秒単位)。
failures
- (配列) スナップショット作成時に発生した失敗をリストします。
shards
(オブジェクト) スナップショット内のシャードの数を含みます。
- `````total
- (整数) スナップショットに含まれるシャードの総数。
successful
- (整数) スナップショットに正常に含まれたシャードの数。
failed
- (整数) スナップショットに含まれなかったシャードの数。
state
- (文字列) スナップショット
state
は次のいずれかの値です:- `````IN_PROGRESS
- スナップショットは現在実行中です。
SUCCESS
- スナップショットが完了し、すべてのシャードが正常に保存されました。
FAILED
- スナップショットがエラーで終了し、データを保存できませんでした。
PARTIAL
- グローバルクラスター状態が保存されましたが、少なくとも1つのシャードのデータが正常に保存されませんでした。レスポンスの
failures
セクションには、正しく処理されなかったシャードに関する詳細情報が含まれています。
next
- (文字列) リクエストにサイズ制限が含まれていて、さらに結果がある可能性がある場合、
next
フィールドがレスポンスに追加され、追加の結果を取得するためにafter
クエリパラメータとして使用できます。 total
- (整数) サイズ制限または
after
クエリパラメータを無視した場合にリクエストに一致するスナップショットの総数。 remaining
- (整数) サイズ制限のために返されなかった残りのスナップショットの数で、
next
フィールド値を使用して追加のリクエストで取得できます。
例
次のリクエストは、snapshot_2
リポジトリ内の情報を返します。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot_2",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'snapshot_2'
)
puts response
Js
const response = await client.snapshot.get({
repository: "my_repository",
snapshot: "snapshot_2",
});
console.log(response);
コンソール
GET /_snapshot/my_repository/snapshot_2
コンソール-結果
{
"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に制限し、スナップショット名でソートします。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*",
size="2",
sort="name",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'snapshot*',
size: 2,
sort: 'name'
)
puts response
Js
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
コンソール-結果
{
"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
パラメータとして使用して残りのスナップショットを取得できます。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*",
size="2",
sort="name",
after="c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI=",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'snapshot*',
size: 2,
sort: 'name',
after: 'c25hcHNob3RfMixteV9yZXBvc2l0b3J5LHNuYXBzaG90XzI='
)
puts response
Js
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=
コンソール-結果
{
"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
のオフセット値を使用して、すでに見た2つのスナップショットをスキップすることで同じ結果を取得できます。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*",
size="2",
sort="name",
offset="2",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'snapshot*',
size: 2,
sort: 'name',
offset: 2
)
puts response
Js
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
コンソール-結果
{
"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
という名前のスナップショットを除外します。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot*,-snapshot_3",
sort="name",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'snapshot*,-snapshot_3',
sort: 'name'
)
puts response
Js
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
コンソール-結果
{
"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
の後に続くすべてのスナップショットに関する情報を返します。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="*",
sort="name",
from_sort_value="snapshot_2",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: '*',
sort: 'name',
from_sort_value: 'snapshot_2'
)
puts response
Js
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
コンソール-結果
{
"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
のタイムスタンプ(2020年1月1日)以降に開始されたものをデフォルトの昇順でスナップショット開始時間でソートします。
Python
resp = client.snapshot.get(
repository="my_repository",
snapshot="snapshot_*",
sort="start_time",
from_sort_value="1577833200000",
)
print(resp)
Ruby
response = client.snapshot.get(
repository: 'my_repository',
snapshot: 'snapshot_*',
sort: 'start_time',
from_sort_value: 1_577_833_200_000
)
puts response
Js
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
コンソール-結果
{
"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
}