美文网首页Elasticsearch 7.x 小白到高手
elasticsearch 7.0 新特性之 索引生命周期管理(

elasticsearch 7.0 新特性之 索引生命周期管理(

作者: 郭彦超 | 来源:发表于2019-04-23 12:37 被阅读38次

到此我们已经基本掌握了ILM的创建和使用方式了,但是如果我们后期发现策略错了,怎么去修改,已经修改后的什么时候会生效?

1、更新索引

索引的更新操作和新增基本类似,只不过版本号会增加,例如对下面策略修改delete action的触发时间为10d

curl -X PUT "localhost:9200/_ilm/policy/my_policy" -H 'Content-Type: application/json' -d'
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size": "25GB"
          }
        }
      },
      "delete": {
        "min_age": "30d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
'

curl -X PUT "localhost:9200/_ilm/policy/my_policy" -H 'Content-Type: application/json' -d'
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_size": "25GB"
          }
        }
      },
      "delete": {
        "min_age": "10d", 
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
'

修改后新策略的 min_age = 10d 策略版本号+1;需要注意的是,修改后的策略并不会对当前处于rollover阶段的索引有任何影响,当前索引phrase依然会使用旧的策略执行,旧策略归档后,下一阶段phrase会使用新的策略 ,此时执行 GET my_index/_ilm/explain 查看索引策略信息,会发现新的phrase已经使用新的策略了。

2、更改索引

上面的需求也可以通过新增一个策略 my_other_policy,然后通过修改setting中index.lifecycle.name指定为新的策略来实现:

PUT my_index/_settings
{
  "index.lifecycle.name": "my_other_policy"
}

和上面更新过程基本类似,当前索引rollover结束后,会转向my_other_policy对应的下一个phrase;如果通过索引模板进行创建的话,同样新的索引也会使用my_other_policy作为管理策略。

相关文章

网友评论

    本文标题:elasticsearch 7.0 新特性之 索引生命周期管理(

    本文链接:https://www.haomeiwen.com/subject/alamgqtx.html