带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(1)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(1)

3.5.7.索引生命周期管理


创作人赵凯

审稿人朱永生

 

Elasticsearch 在 6.7 版本正式加入索引生命周期管理,旨在管理 Elasticsearch 中的索引。

通常我们使用 Elasticsearch 的时候,index 命名都是 xxx-YYYY.MM.dd 类似这样的格式,每天创建一个index,这需要我们自己创建 index,或者通过自动创建。

 

l 每天创建一个 index,但是每天的数据量又非常少,这对集群来说是不利的。

l 如果是自动创建的话,集群 index 和 shard 数过多,那么在每天的 00:00 时,大量的

l index同时创建,这时我们就会发现集群的写入速度会变慢,可能会发生 index 写入拒绝的情况。

l 集群需要对冷热数据进行分离,性能好的机器放最近频繁查询的数据,随着时间推移,数据查询不在频繁,需要将数据迁移到性能较差的机器上。

 

以上这些我们可以使用 Elasticsearch 提供的索引生命周期管理功能能很好的解决,接下来我们了解一下 索引生命周期管理。

 

索引生命周期的四个阶段

 

l Hot 

l index 正在查询和更新,一般性能好的机器会设置为 Hot 节点来进行数据的读写。

 

l Warm

l index不再更新,但是仍然需要查询,节点性能一般可以设置为 Warm 节点。


l Cold 

l index不再被更新,且很少被查询,数据仍然可以搜索,但是能接受较慢的查询,节点性能较差,但有大量的磁盘空间。



l Delete

l 数据不需要了,可以删除。

 

节点的类型可以通过一下两种方式设置,推荐第二种,第一种后续可能会弃用。

 

第一种:

# elasticsearch.yml
# node.attr.xxx: xxx
node.attr.data: warm

第二种(推荐):


# elasticsearch.yml 
# data_content, data_hot, data_warm, data_cold
# 配置该节点既属于内容层又属于热层
node.roles: ["data_hot", "data_content"]


这四个阶段按照 Hot,Warm,Cold,Delete 顺序执行,上一个阶段没有执行完成是不会执行下一个阶段的,对于不存在的阶段,会跳过该阶段进入到下一个阶段。

 

生命周期默认每 10 分钟检测一次,可以通过集群的配置动态修改,如下


PUT _cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "10m" 
  }
}

生命周期管理 API

 

每个阶段支持的行为会在下一章节进行介绍,此章节仅仅为了介绍 API。

1、创建生命周期管理策略

 

min_age 参数指定从 index 创建后多长时间进入到该阶段。

 

以下示例是指从当 index 创建时间超过 10 天后,进入到 warm 阶段,将 segment 数量

merge 为 1,warm 阶段完成后,进入 delete 阶段,index 创建时间超过 30 天后,将index删除。


PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "warm": {
        "min_age": "10d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          }
        }
      },
      "delete": {
        "min_age": "30d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

2、查看生命周期管理策略

 

# 查看所有的生命周期管理策略
GET _ilm/policy
# 查看特定的生命周期管理策略
# GET _ilm/policy/<policy_id>

3、删除生命周期管理策略


DELETE _ilm/policy/<policy_id>

4、触发生命周期策略中特定步骤的执行

 

l current_step

l phase 当前阶段的名称

l action 当前行为的名称

l name 当前步骤的名称

 

l next_step

l phase 想要执行阶段的名称

l action 想要执行行为的名称

l name 想要执行步骤的名称


POST _ilm/move/my-index-000001
{
  "current_step": { 
    "phase": "new",
    "action": "complete",
    "name": "complete"
  },
  "next_step": { 
    "phase": "warm",
"action": "forcemerge",
 "name": "forcemerge"
  }
}

5、移除生命周期管理策略


# POST <target>/_ilm/remove
POST my-index-000001/_ilm/remove

6、生命周期重试


# POST <index>/_ilm/retry
POST my-index-000001/_ilm/retry

7、查看当前索引生命周期管理状态


GET /_ilm/status

8、查看一个或多个索引的当前生命周期状态

# GET <target>/_ilm/explain
GET my-index-000001/_ilm/explain

9、启动索引生命周期管理插件

POST _ilm/start

10、停止索引生命周期管理插件

POST /_ilm/stop


《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.7.索引生命周期管理(2) https://developer.aliyun.com/article/1228515

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(5)
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(5)
|
12月前
|
存储 索引
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(4)
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(4)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(2)
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(2)
|
12月前
|
文件存储 索引
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(3)
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(3)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(7)
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(7)
|
12月前
|
索引
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(6)
带你读《Elastic Stack 实战手册》之48:——3.5.7.索引生命周期管理(6)
|
12月前
|
Cloud Native
带你读《Elastic Stack 实战手册》之5:——3.2.2.可观测性 (上)
带你读《Elastic Stack 实战手册》之5:——3.2.2.可观测性 (上)
109 0
|
12月前
|
机器学习/深度学习 消息中间件 数据采集
带你读《Elastic Stack 实战手册》之5:——3.2.2.可观测性 (下)
带你读《Elastic Stack 实战手册》之5:——3.2.2.可观测性 (下)
156 0
|
12月前
|
运维 网络协议 API
带你读《Elastic Stack 实战手册》之42:——3.5.1.跨集群操作(1)
带你读《Elastic Stack 实战手册》之42:——3.5.1.跨集群操作(1)
118 0
|
12月前
|
API 数据中心 索引
带你读《Elastic Stack 实战手册》之42:——3.5.1.跨集群操作(3)
带你读《Elastic Stack 实战手册》之42:——3.5.1.跨集群操作(3)
120 0