教程:更新现有数据流编辑

要更新现有数据流的生命周期,请执行以下操作

设置数据流的生命周期编辑

要添加或更改数据流的保留期,可以使用 PUT 生命周期 API

  • 您可以设置无限保留期,这意味着您的数据永远不会被删除。例如

    response = client.indices.put_data_lifecycle(
      name: 'my-data-stream',
      body: {}
    )
    puts response
    PUT _data_stream/my-data-stream/_lifecycle
    { } 

    空有效负载意味着您的数据流仍然受管理,但数据永远不会被删除。管理日志或指标等时间序列数据流,即使您不使用保留期,也能使 Elasticsearch 更好地存储您的数据。

  • 或者,您可以设置您选择的保留期。例如

    response = client.indices.put_data_lifecycle(
      name: 'my-data-stream',
      body: {
        data_retention: '30d'
      }
    )
    puts response
    PUT _data_stream/my-data-stream/_lifecycle
    {
      "data_retention": "30d" 
    }

    此数据流的保留期设置为 30 天。这意味着 Elasticsearch 可以在其自行决定时删除超过 30 天的数据。

生命周期的更改将应用于数据流的所有后备索引。您可以通过 解释 API 查看更改的效果

response = client.indices.explain_data_lifecycle(
  index: '.ds-my-data-stream-*'
)
puts 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。结果,生命周期应用的维护操作将不再应用于数据流及其所有后备索引。例如

response = client.indices.delete_data_lifecycle(
  name: 'my-data-stream'
)
puts response
DELETE _data_stream/my-data-stream/_lifecycle

然后,您可以再次使用 解释 API 查看索引不再受管理。

response = client.indices.explain_data_lifecycle(
  index: '.ds-my-data-stream-*'
)
puts 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                           
    }
  }
}

后备索引的名称。

指示索引不受数据流生命周期管理。

另一个后备索引的名称。

指示索引不受数据流生命周期管理。