ElasticSearch索引生命周期管理--DELETE

概要

  • ElasticSearch中的索引生命周期管理,也就是ilm(Manage the index lifecycle),是指定了索引在不同周期下的处理策略。
  • ilm 的对象是索引而不是索引中的数据。
  • ilm 包括四个阶段:hot 、warm、cold和delete。
  • hot、warm和cold表示索引的使用情况,delete可以指定索引完成rollover后的旧索引的删除条件。
  • hot中常用策略为 rollover, 满足指定条件后创建新的索引。
  • delete中常用属性为min_age,也就是索引完成rollover后的删除策略。已经有可以提供相同功能的索引,就索引可以删除。
  • 索引生命周期中的delete不能删除索引,只能删除滚动之前的旧索引。

使用命令

  • 查询所有策略
json 复制代码
GET _ilm/policy
  • 查询单个策略
json 复制代码
GET _ilm/policy/<policy-name>
  • 查询索引的策略执行情况
json 复制代码
GET <index-name>/_ilm/explain
  • 查询索引的创建时间
json 复制代码
GET /_cat/indices/<index-name>?format=json&h=index,creation.date

DELETE策略执行分析

  1. 先查询索引的创建时间。
  • 命令为:
json 复制代码
GET /_cat/indices/<index-name>?format=json&h=index,creation.date`
  • 响应值为:
json 复制代码
[
  {
    "index" : "<index-name>",
    "creation.date" : "1688537411543" // 创建日期
  }
]
  1. 在查询索引的中生命周期的执行情况
  • 命令为:
json 复制代码
GET <index-name>/_ilm/explain
  • 响应值为:
json 复制代码
{
  "indices" : {
    "<index-name>" : {
      ...
      "policy" : "<policy-name>", //策略名称
      "lifecycle_date_millis" : 1691129648787, //生命周期时间,这里是进入delete计算阶段时间
      "age" : "3.87d", //年龄,存活时间,这个是创建时间到当前时间的时间间隔,一般需要减去hot中rollover设定的min-age。
      ...
      },
      ...
    }
  }
}
  1. 生命周期策略的具体信息
  • 命令为:
json 复制代码
GET _ilm/policy/<policy-name>
  • 响应值为:
json 复制代码
{
  "<policy-name>" : {
    ...
    "policy" : {
      "phases" : { //阶段
        "hot" : {
          "min_age" : "0ms", // 索引建立后就进入hot阶段
          "actions" : {
            "rollover" : { //创建新索引
              "max_primary_shard_size" : "50gb", // 当分片容积大于50Gb后执行
              "max_age" : "30d" // 分片的年龄达到30天
            }
          }
        },
        "delete" : {
          "min_age" : "30d", // 老索引超过rollover后的最小存活时间
          "actions" : { //执行策略为删除
            "delete" : { 
              "delete_searchable_snapshot" : true //删除相关的快照
            }
          }
        }
      },
      ...
    },
    "in_use_by" : {
      "indices" : [...],//被设置的索引
      ...
    }
  }
}
  1. 所以整个流程为索引超过30天后,会自动rollover出个新的索引,之后按照delete策略删除旧的索引。所以生命周期不会自动删除索引,索引的删除需要手动执行。
相关推荐
bubble小拾6 小时前
ElasticSearch高级功能详解与读写性能调优
大数据·elasticsearch·搜索引擎
不能放弃治疗6 小时前
重生之我们在ES顶端相遇第 18 章 - Script 使用(进阶)
elasticsearch
hengzhepa7 小时前
ElasticSearch备考 -- Search across cluster
学习·elasticsearch·搜索引擎·全文检索·es
Elastic 中国社区官方博客9 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
慕雪华年10 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch
Elastic 中国社区官方博客12 小时前
使用 Vertex AI Gemini 模型和 Elasticsearch Playground 快速创建 RAG 应用程序
大数据·人工智能·elasticsearch·搜索引擎·全文检索
alfiy13 小时前
Elasticsearch学习笔记(四) Elasticsearch集群安全配置一
笔记·学习·elasticsearch
alfiy13 小时前
Elasticsearch学习笔记(五)Elastic stack安全配置二
笔记·学习·elasticsearch
丶21361 天前
【大数据】Elasticsearch 实战应用总结
大数据·elasticsearch·搜索引擎
闲人编程1 天前
elasticsearch实战应用
大数据·python·elasticsearch·实战应用