チュートリアル: 既存のデータストリームを更新する
既存のデータストリームのライフサイクルを更新するには、次のアクションを実行します:
データストリームのライフサイクルを設定する
データストリームの保持期間を追加または変更するには、PUTライフサイクルAPIを使用できます。
- 無限の保持期間を設定できます。これは、データが決して削除されないことを意味します。例えば:
Python
resp = client.indices.put_data_lifecycle(
name="my-data-stream",
)
print(resp)
Ruby
response = client.indices.put_data_lifecycle(
name: 'my-data-stream',
body: {}
)
puts response
Js
const response = await client.indices.putDataLifecycle({
name: "my-data-stream",
});
console.log(response);
コンソール
PUT _data_stream/my-data-stream/_lifecycle
{ }
空のペイロードは、データストリームがまだ管理されているが、データは決して削除されないことを意味します。ログやメトリクスなどの時系列データストリームを管理することで、Elasticsearchは保持期間を使用しなくてもデータをより良く保存できます。 |
- または、任意の保持期間を設定できます。例えば:
Python
resp = client.indices.put_data_lifecycle(
name="my-data-stream",
data_retention="30d",
)
print(resp)
Ruby
response = client.indices.put_data_lifecycle(
name: 'my-data-stream',
body: {
data_retention: '30d'
}
)
puts response
Js
const response = await client.indices.putDataLifecycle({
name: "my-data-stream",
data_retention: "30d",
});
console.log(response);
コンソール
PUT _data_stream/my-data-stream/_lifecycle
{
"data_retention": "30d"
}
このデータストリームの保持期間は30日です。これは、Elasticsearchが30日より古いデータを自らの裁量で削除することを許可されていることを意味します。 |
ライフサイクルの変更は、データストリームのすべてのバックインデックスに適用されます。変更の効果は、説明APIを介して確認できます:
Python
resp = client.indices.explain_data_lifecycle(
index=".ds-my-data-stream-*",
)
print(resp)
Ruby
response = client.indices.explain_data_lifecycle(
index: '.ds-my-data-stream-*'
)
puts response
Js
const response = await client.indices.explainDataLifecycle({
index: ".ds-my-data-stream-*",
});
console.log(response);
コンソール
GET .ds-my-data-stream-*/_lifecycle/explain
コンソール-結果
{
"indices": {
".ds-my-data-stream-2023.04.19-000002": {
"index": ".ds-my-data-stream-2023.04.19-000002",
"managed_by_lifecycle": true,
"index_creation_date_millis": 1681919221417,
"time_since_index_creation": "6.85s",
"lifecycle": {
"enabled": true,
"data_retention": "30d"
}
},
".ds-my-data-stream-2023.04.17-000001": {
"index": ".ds-my-data-stream-2023.04.17-000001",
"managed_by_lifecycle": true,
"index_creation_date_millis": 1681745209501,
"time_since_index_creation": "48d",
"rollover_date_millis": 1681919221419,
"time_since_rollover": "6.84s",
"generation_time": "6.84s",
"lifecycle": {
"enabled": true,
"data_retention": "30d"
}
}
}
}
バックインデックスの名前。 | |
このインデックスはデータストリームライフサイクルによって管理されています。 | |
このインデックスが作成されてから経過した時間。 | |
このインデックスのデータ保持は少なくとも30日です。最近更新されたため。 | |
バックインデックスの名前。 | |
このインデックスは組み込みのデータストリームライフサイクルによって管理されています。 | |
このインデックスが作成されてから経過した時間。 | |
このインデックスがロールオーバーされた後の経過時間。 | |
このインデックスとそのデータを削除するのが安全な時期を決定するために使用される時間。 | |
このインデックスのデータ保持も最近更新されたため、少なくとも30日です。 |
データストリームのライフサイクルを削除する
データストリームのライフサイクルを削除するには、削除ライフサイクルAPIを使用できます。その結果、ライフサイクルによって適用されていたメンテナンス操作は、データストリームおよびそのすべてのバックインデックスに適用されなくなります。例えば:
Python
resp = client.indices.delete_data_lifecycle(
name="my-data-stream",
)
print(resp)
Ruby
response = client.indices.delete_data_lifecycle(
name: 'my-data-stream'
)
puts response
Js
const response = await client.indices.deleteDataLifecycle({
name: "my-data-stream",
});
console.log(response);
コンソール
DELETE _data_stream/my-data-stream/_lifecycle
その後、説明APIを再度使用して、インデックスがもはや管理されていないことを確認できます。
Python
resp = client.indices.explain_data_lifecycle(
index=".ds-my-data-stream-*",
)
print(resp)
Ruby
response = client.indices.explain_data_lifecycle(
index: '.ds-my-data-stream-*'
)
puts response
Js
const response = await client.indices.explainDataLifecycle({
index: ".ds-my-data-stream-*",
});
console.log(response);
コンソール
GET .ds-my-data-stream-*/_lifecycle/explain
コンソール-結果
{
"indices": {
".ds-my-data-stream-2023.04.19-000002": {
"index": ".ds-my-data-stream-2023.04.19-000002",
"managed_by_lifecycle": false
},
".ds-my-data-stream-2023.04.17-000001": {
"index": ".ds-my-data-stream-2023.04.19-000001",
"managed_by_lifecycle": false
}
}
}
バックインデックスの名前。 | |
インデックスがデータストリームライフサイクルによって管理されていないことを示す。 | |
別のバックインデックスの名前。 | |
インデックスがデータストリームライフサイクルによって管理されていないことを示す。 |