Elasticsearch ILM DSL 索引生命周期管理

news2024/11/15 16:57:31

1、冷热集群架构

冷热架构也叫冷暖架构,是“Hot-Warm” Architecture的中文翻译。

冷热架构本质是给节点设置不同的属性,让每个节点具备了不同的属性。为演示 ILM,需要首先配置冷热架构,三个节点在 elasticsearch.yml 分别设置的属性如下:

查看es冷热集群架构

2、不同阶段(Phrase)的功能点(Acitons)

注意:仅在 Hot 阶段可以设置:Rollover 滚动。

3、各生命周期 Actions 设定

后两节演示要用。

3.1 Hot 阶段

基于:max_age=3天、最大文档数为3、最大size为:30gb rollover 滚动索引。

设置优先级为:100(值越大,优先级越高)。

3.2 Warm 阶段

实现段合并,max_num_segments 设置为1.

副本设置为 0。

数据迁移到:warm 节点。

优先级设置为:50。

3.3 Cold 阶段

冷冻索引

数据迁移到冷节点

3.4 Delete 阶段

删除索引

关于触发滚动的条件:

Hot 阶段的触发条件:手动创建第一个满足模板要求的索引。

其余阶段触发条件:min_age,索引自创建后的时间。

时间类似:业务里面的 热节点保留 3 天,温节点保留 7 天,冷节点保留 30 天的概念。

4、 索引生命周期管理 ILM DSL

# step1: 前提:演示刷新需要,将索引生命管理刷新为1秒
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/_cluster/settings" -H 'Content-Type: application/json' -d'{
  "persistent": {
    "indices.lifecycle.poll_interval": "1s"
  }
}'


# step2:测试需要,值调的很小
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/_ilm/policy/my_test_policy"   -H 'Content-Type: application/json'  -d'{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_age": "3d",
            "max_docs": 3,
            "max_size": "30gb"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "warm": {
        "min_age": "50s",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "allocate": {
            "require": {
              "box_type": "warm"
            },
            "number_of_replicas": 0
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "cold": {
        "min_age": "50s",
        "actions": {
          "allocate": {
            "require": {
              "box_type": "cold"
            }
          },
          "freeze": {}
        }
      },
      "delete": {
        "min_age": "60s",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}'

# step3:创建模板,关联配置的ilm_policy
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/_index_template/ilm_template" -H 'Content-Type: application/json' -d'{
  "index_patterns": ["ilm-*"],                 
  "template": {
    "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 0,
      "index.lifecycle.name": "my_test_policy",      
      "index.lifecycle.rollover_alias": "ilm",
      "index.routing.allocation.require.box_type": "hot"
    }
  }
}'

# step4:创建起始索引(便于滚动)
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/ilm-000001"  -H 'Content-Type: application/json' -d'{
  "aliases": {
    "ilm": {
      "is_write_index": true
    }
  }
}'

# step5:插入数据
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/ilm/_doc/1"  -H 'Content-Type: application/json' -d'
{"title":"count1"}
'
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/ilm/_doc/2"  -H 'Content-Type: application/json' -d'
{"title":"count2"}
'
查看索引的数据量
curl 'http://elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/_cat/count/ilm?v&pretty'

查案索引分片的分布
curl 'http://elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/ilm/_search_shards?&pretty'

# step6:临界值(会滚动)
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/ilm/_doc/3"  -H 'Content-Type: application/json' -d'
{"title":"count3"}
' 
# 下一个索引数据写入(max_docs 满足条件索引会由hot -> warn -> cold & delete )
 curl  -XPUT "elastic:Ntn71CrUSaTjk7TNWora@172.26.180.1:9200/ilm/_doc/4"  -H 'Content-Type: application/json' -d'
{"title":"count4"}
'

索引生命周期管理效果:

核心步骤总结如下:

第一步:创建生周期 policy,定义phases与actions。

第二步:创建索引模板,模板中关联 policy 和别名。

第三步:创建符合模板的起始索引,并插入数据。

第四步: 索引基于配置的 ilm 滚动,触发各个阶段的actions。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4月21号软件更新资讯合集.....

PlayEdu v1.0-beta.3 发布,视频培训解决方案 PlayEdu 是基于 SpringBoot3 Java17 React18 开发的企业内部培训系统。它专注于提供私有化部署方案,包括视频,图片等资源的内网部署。目前主要支持有本地视频上传播放、学员邮箱登录、无限级部门…

如何使用JMeter和Ant生成高效测试报告?

Jmeter接口自动化测试项目实战视频教程地址:https://www.bilibili.com/video/BV1e44y1X78S/? 目录:导读 引言 一、安装ant 二、ant关联jmeter工具 三、执行 结语 引言 你曾经在进行软件测试时遇到过测试结果难以分析,甚至花费大量时间…

机器学习基础知识之相关性分析

文章目录 相关性分析定义1、图表相关性分析2、协方差分析3、相关系数分析4、回归分析 相关性分析定义 相关性分析一般是指通过对两种或两种以上的变量数据进行数学分析来确定两种或两种以上的变量数据之间的相关密切程度。由此定义我们可以得知相关性分析的目的在于衡量变量数…

算法leetcode|48. 旋转图像(rust重拳出击)

文章目录 48. 旋转图像:样例 1:样例 2:提示: 分析:题解:rust:go:c:c:python:java: 48. 旋转图像: 给定一个 n n 的二维矩…

我国风电叶片行业分析:行业技术创新白热化竞争来临 后续回收再利用是行业可持续发展的关键

1、风电叶片行业定义及产业链 风电叶片是一个复合材料制成的薄壳结构,一般由外壳、腹板和主梁三部分组成,复合材料在整个风电叶片中的重量一般占到90%以上。风电叶片是风力发电机将风能转化为机械能的重要部件之一,其设计、制造及运行状态直…

易点易动设备管理系统帮助钢铁厂实现智能设备巡检

随着工业自动化和智能化的不断推进,越来越多的企业开始采用智能设备来提高生产效率和质量。然而,随之而来的是设备管理的复杂性和挑战性的增加。为了解决这一问题,易点易动设备管理系统应运而生,该系统可以帮助钢铁厂实现智能设备…

从C出发 28 --- 指针与数组

int a[ ] {1, 2, 3, 4, 0}; //定义了一个数组,这个数组有5个元素,每个元素是一个 int 类型变量 这里的地址是相同的,是相同的意味着数组的地址和 0 号元素的地址是一样的 结论: 数值上相同但是意义上不同,一个是数组整体…

有仰拍相机和俯拍相机时,俯拍相机中心和吸嘴中心的标定

俯拍相机中心和吸嘴中心的标定 文章目录 俯拍相机中心和吸嘴中心的标定 前言适用模型如下:一、使用一个标定片进行标定1.关键注意:2.标定步骤: 二、使用一个L型的工件1.关键注意:2.标定步骤: 总结 前言 在自动化设备领…

centos7查看磁盘io

1.查看所使用到的命令为iostat,centos7没有自带iostat,需要安装一下 2.安装iostat命令 yum -y install sysstat 3.使用iostat命令 iostat %user:表示用户空间进程使用 CPU 时间的百分比 %nice:表示用户空间进程以降低优先级的…

索引失效了?看看这几个常见的原因

索引是 MySQL 数据库中优化查询性能的重要工具,通过对查询条件和表数据的索引,MySQL可以快速定位数据,提高查询效率。但是,在实际的数据库开发和维护中,我们经常会遇到一些情况,导致索引失效,从…

Vue安装

Vue安装 一、安装二、使用步骤1.在项目中使用vue2.使用命令创建vue项目 一、安装 安装vue之前需要安装nodeJS 1.需要安装Node.js。可以从官方网站进行下载并安装。 2.这篇博客有详细的步骤 Node.js安装详解 3.或者在官网安装最新版本的不用配置Node.js下载官网 安装完成Nod…

Python每日一练(20230424)

目录 1. 滑动窗口最大值 🌟🌟🌟 2. 用栈实现队列 🌟 3. 直线上最多的点数 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

准确率,精确率,召回率,F1,AUC

以西瓜数据集为例,我们来详细解释一下什么是TP、TN、FP以及FN。 一、基础概念 TP:被模型预测为正类的正样本 TN:被模型预测为负类的负样本 FP:被模型预测为正类的负样本 FN:被模型预测为负类的正样本 二、通俗理解&am…

如何在 Linux 中查找文件所有者?

在 Linux 系统中,每个文件和目录都有一个所有者(owner)和一个所属组(group)。所有者通常是创建该文件或目录的用户,而所属组通常是文件或目录所属的组。在某些情况下,您可能需要查找特定文件或目…

前端学习--Ajax(5) Http

一、Http简介 1.1 通信 信息的传递和交换 通信三要素:主体(双方)、内容、方式 1.2 通信协议 通信双方通信遵守的规则 http--超文本传输协议:客户端与服务器之间进行网页内容传输时必须遵守的传输格式 1.3 HTTP 交互模型&a…

C++矩阵运算QT应用之Eigen库

前言 本文主要描述在c中应用Eigen进行矩阵(向量)的表示运算,以及Eigen库的下载和配置。 一. Eigen库介绍、下载及配置 Eigen是C中可以用来调用并进行矩阵计算的一个库,里面封装了一些类,需要的头文件和功能如下&…

Vue:Ajax跨域和axios简单使用

1、 第三方库方式, 基于 Promise 的 HTTP 库:axios (对 XMLHttpRequest进行的封装) 即: axios.get().then() 2、跨域访问 定义:在 a 页面中想获取 b 页面中的资源,如果 a 页面和 b 页面…

DevOps 与研发效能专家张乐:研发效能的升维思考与降维执行

在 4 月 20 日举行的《中国企业软件研发管理白皮书》发布会上,DevOps 与研发效能资深技术专家张乐老师做了一场名为《研发效能的升维思考和降维执行》的主题演讲,阐述了如何系统化思考研发效能的关键要素、互动结构及实施路径,并将其与落地执…

程序员应该具备哪些良好的编程习惯?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 培养一个好的编程习惯,能让你整个职业生涯收益。 例如,做好注释,方便自己也方便别人读懂代码&#x…

hot100:数组——56、64

56. 合并区间 首先考虑只有两个区间的情况: 但是这6种情况可以合并成3种情况,就是上面的3种。首先先判断第一个区间的起始位置是否小于等于第二个区间的起始位置。如果不成立,则交换两个区间。 再考虑n个区间的情况,先将他们根…