elasticsearch-索引生命周期管理

文章介绍了Elasticsearch中索引的生命周期,包括hot、warm、cold和delete四个阶段,详细阐述了各阶段的功能,如hot阶段的实时写入,rollover操作在达到特定条件时创建新索引,以及delete阶段的索引删除。同时,文章讲解了如何配置和管理这些生命周期策略,包括设置检测时间、创建索引策略、定义索引模板等步骤。
摘要由CSDN通过智能技术生成

elasticsearch-索引生命周期管理

索引生命周期分为4个阶段:hot、warm、cold、delete

其中hot阶段主要负责对索引进行滚动更新操作,warm、cold、delete阶段主要负责进一步处理滚动更新后的数据

阶段介绍
hot热数据阶段,主要处理时序数据的实时写入。可根据索引的文档数、大小、时长决定是否调用rollover API来滚动更新索引
warm冷数据阶段,索引不再写入,主要用来提供查询
cold冷数据阶段,索引不再更新,查询很少,查询速度会变慢
delete删除数据阶段,索引将被删除
添加生命周期管理方式
  • 通过索引模板添加生命周期管理策略

    将策略应用到整个别名覆盖的索引下

  • 为单个索引添加生命周期管理策略

    只能覆盖当前索引,新滚动的索引不再受策略影响

生命周期操作

参数说明
rollover当写入索引达到了一定的大小,文档数量或创建时间时,rollover可创建一个新的写入索引,将旧的写入索引的别名去掉,并把别名赋给新的写入索引。所以便可以通过切换别名控制写入的索引是谁。它可用于Hot阶段
shrink减少一个索引的主分片数,可用于Warm阶段。需要注意的是当shink完成后索引名会由原来的<origin-index-name>变为shrink-<origin-index-name>
force merge可触发一个索引分片的segment merge,同时释放掉被删除文档的占用空间。用于Warm阶段
allocate可指定一个索引的副本数,用于warm, cold阶段
delete删除索引,用户delete阶段
配置索引生命周期
  • 第一步:配置lifecycle检测时间;
  • 第二步:创建一个索引策略;
  • 第三步:创建一个索引模版,指定使用的索引策略;
  • 第四步:创建一个符合上述索引模版的索引;
  • 第五步:向索引中写入数据,使索引触发滚动更新策略;
  • 第六步:查看索引所处阶段

1.配置lifecycle检测时间

PUT /_cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "1s" 
  }
}

2.创建一个索引策略

PUT /_ilm/policy/lfc_test
{
  "policy": {
    //阶段设置
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_docs": "5"
          }
        }
      },
      "warm": {
        "min_age": "10s",
        "actions": {
          "allocate": {
            "number_of_replicas": 0
          }
        }
      },
      "delete": {
        "min_age": "20s",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

3.创建一个索引模版,指定使用的索引策略

PUT _template/leefs_ilm_template
{
  "index_patterns": ["lfc-log-*"],                 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1,
    "index.lifecycle.name": "lfc_test", 
    "index.lifecycle.rollover_alias": "lfc-log"
  }
}

4.创建索引模版的索引

DELETE lfc-log*

PUT lfc-log-000001
{
  "aliases": {
    "lfc-log": {
      "is_write_index":true
    }
  }
}


POST lfc-log/_doc?refresh
{
  "name":"test-log"
}

GET /lfc-log/_search

查看索引

GET _alias/lfc-log
{
  "lfc-log-000004": {
    "aliases": {
      "lfc-log": {
        "is_write_index": false
      }
    }
  },
  "lfc-log-000005": {
    "aliases": {
      "lfc-log": {
        "is_write_index": true
      }
    }
  }
}

查看索引生命周期

GET lfc-log-*/_ilm/explain

生命周期状态管理

查看生命周期状态

GET  _ilm/status
{
  "operation_mode": "RUNNING"
}

生命周期停止

POST  _ilm/stop
{
  "operation_mode": "STOPPED"
}

启动生命周期

POST  _ilm/start
{
  "operation_mode": "RUNNING"
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值