データストリームのライフサイクルを設定する

ターゲットとする データストリーム のためにデータストリーム ライフサイクル を構成します。

前提条件

Elasticsearch のセキュリティ機能が有効になっている場合、この API を使用するには manage_data_stream_lifecycle インデックス権限以上が必要です。詳細については、セキュリティ権限 を参照してください。

リクエスト

PUT _data_stream/<data-stream>/_lifecycle

説明

ターゲットとするデータストリームのライフサイクルを構成します。複数のデータストリームが提供されている場合、少なくとも1つが存在しないと、すべてのデータストリームのライフサイクルの更新は失敗し、API は 404 で応答します。

パスパラメータ

  • <data-stream>
  • (必須、文字列) リクエストを制限するために使用されるデータストリームのカンマ区切りリスト。ワイルドカード (*) をサポートします。すべてのデータストリームをターゲットにするには * または _all を使用します。

クエリパラメータ

  • expand_wildcards
  • (オプション、文字列) ワイルドカードパターンが一致できるデータストリームのタイプ。カンマ区切りの値をサポートします。例: open,hidden。有効な値は:
    • all, hidden
    • 隠し データストリームを含む任意のデータストリームに一致します。
    • open, closed
    • 隠されていない任意のデータストリームに一致します。データストリームは閉じることができません。
    • none
    • ワイルドカードパターンは受け付けられません。
      デフォルトは open です。

リクエストボディ

  • lifecycle
  • (必須、オブジェクト)
    lifecycle のプロパティ
    • data_retention
    • (オプション、文字列) 定義されている場合、このデータストリームに追加されたすべてのドキュメントは、この期間中は少なくとも保存されます。この期間を過ぎた後、ドキュメントは削除される可能性があります。空の場合、このデータストリーム内のすべてのドキュメントは無期限に保存されます。
    • enabled
    • (オプション、ブール値) 定義されている場合、このデータストリームのデータストリームライフサイクルをオン/オフ (true/false) にします。無効なデータストリームライフサイクル (enabled: false) はデータストリームに影響を与えません。デフォルトは true です。
    • downsampling
    • (オプション、配列) 各 after インターバルを定義するダウンサンプリング構成オブジェクトのオプションの配列。これは、バックインデックスがダウンサンプリングされることを意図している時間枠(インデックスがロールオーバーされた時点から計算されます、すなわち世代時間)を表し、ダウンサンプリングインターバルを表す fixed_interval(最小 fixed_interval 値は 5m です)。最大10回のダウンサンプリングラウンドを構成できます。以下の 構成例 を参照してください。

以下の例は my-data-stream のライフサイクルを設定します:

Python

  1. resp = client.indices.put_data_lifecycle(
  2. name="my-data-stream",
  3. data_retention="7d",
  4. )
  5. print(resp)

Ruby

  1. response = client.indices.put_data_lifecycle(
  2. name: 'my-data-stream',
  3. body: {
  4. data_retention: '7d'
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.indices.putDataLifecycle({
  2. name: "my-data-stream",
  3. data_retention: "7d",
  4. });
  5. console.log(response);

コンソール

  1. PUT _data_stream/my-data-stream/_lifecycle
  2. {
  3. "data_retention": "7d"
  4. }

すべてのデータストリームでライフサイクルが正常に更新されると、次の結果が得られます:

コンソール-結果

  1. {
  2. "acknowledged": true
  3. }

以下の例は、バックインデックスがロールオーバーされた1日後(または、インデックスがまだ書き込みを受け入れている 時間制約 の範囲内であればそれ以降)に開始される最初のダウンサンプリングラウンドを構成し、10m のインターバルを持ち、ロールオーバーから7日後に 1d のインターバルで開始される2回目のラウンドを構成します:

Python

  1. resp = client.indices.put_data_lifecycle(
  2. name="my-weather-sensor-data-stream",
  3. downsampling=[
  4. {
  5. "after": "1d",
  6. "fixed_interval": "10m"
  7. },
  8. {
  9. "after": "7d",
  10. "fixed_interval": "1d"
  11. }
  12. ],
  13. )
  14. print(resp)

Ruby

  1. response = client.indices.put_data_lifecycle(
  2. name: 'my-weather-sensor-data-stream',
  3. body: {
  4. downsampling: [
  5. {
  6. after: '1d',
  7. fixed_interval: '10m'
  8. },
  9. {
  10. after: '7d',
  11. fixed_interval: '1d'
  12. }
  13. ]
  14. }
  15. )
  16. puts response

Js

  1. const response = await client.indices.putDataLifecycle({
  2. name: "my-weather-sensor-data-stream",
  3. downsampling: [
  4. {
  5. after: "1d",
  6. fixed_interval: "10m",
  7. },
  8. {
  9. after: "7d",
  10. fixed_interval: "1d",
  11. },
  12. ],
  13. });
  14. console.log(response);

コンソール

  1. PUT _data_stream/my-weather-sensor-data-stream/_lifecycle
  2. {
  3. "downsampling": [
  4. {
  5. "after": "1d",
  6. "fixed_interval": "10m"
  7. },
  8. {
  9. "after": "7d",
  10. "fixed_interval": "1d"
  11. }
  12. ]
  13. }