ElasticSearch中怎么实现数据自动冷热分离
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章给大家介绍ElasticSearch中怎么实现数据自动冷热分离,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 节点tag依次启动三个节点,同时加入box_type和r
千家信息网最后更新 2025年12月01日ElasticSearch中怎么实现数据自动冷热分离
这篇文章给大家介绍ElasticSearch中怎么实现数据自动冷热分离,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1. 节点tag
依次启动三个节点,同时加入box_type和resource_level标签,box_type标记node1、node2为warm节点,node3为hot节点,resource_level标记机器资源的性能,分为高,中,低
bin/elasticsearch -d -p pid -E node.name=node1 -E node.max_local_storage_nodes=3 -E path.data=node1_data -E path.logs=node1_logs -E node.attr.box_type=warm -E node.attr.resource_level=highbin/elasticsearch -d -p pid -E node.name=node2 -E node.max_local_storage_nodes=3 -E path.data=node2_data -E path.logs=node2_logs -E node.attr.box_type=warm -E node.attr.resource_level=mdeiumbin/elasticsearch -d -p pid -E node.name=node3 -E node.max_local_storage_nodes=3 -E path.data=node3_data -E path.logs=node3_logs -E node.attr.box_type=hot -E node.attr.resource_level=high查看属性:kibana中输入以下命令GET _cat/indices?v得到以下结果,可以看到box_type和resource_level标签在每个节点的值node host ip attr valuenode3 127.0.0.1 127.0.0.1 ml.machine_memory 17179869184node3 127.0.0.1 127.0.0.1 ml.max_open_jobs 20node3 127.0.0.1 127.0.0.1 box_type hotnode3 127.0.0.1 127.0.0.1 xpack.installed truenode3 127.0.0.1 127.0.0.1 resource_level highnode1 127.0.0.1 127.0.0.1 ml.machine_memory 17179869184node1 127.0.0.1 127.0.0.1 box_type warmnode1 127.0.0.1 127.0.0.1 xpack.installed truenode1 127.0.0.1 127.0.0.1 ml.max_open_jobs 20node1 127.0.0.1 127.0.0.1 resource_level highnode2 127.0.0.1 127.0.0.1 ml.machine_memory 17179869184node2 127.0.0.1 127.0.0.1 ml.max_open_jobs 20node2 127.0.0.1 127.0.0.1 box_type warmnode2 127.0.0.1 127.0.0.1 xpack.installed truenode2 127.0.0.1 127.0.0.1 resource_level mdeium
2. 建立索引
假设当前时间为2019年9月1日,作为最新的数据存储在hot节点上,只需要在建立索引时指定allocation策略即可
PUT api_log_2019-09-01{ "settings": { "number_of_shards": 3, "number_of_replicas": 0, "index.routing.allocation.require.box_type": "hot">假设建立索引时没有配置该选项也不要紧,动态修改即可
PUT api_log_2019-09-01/_settings{ "index.routing.allocation.require.box_type": "hot"}3. 迁移索引
迁移历史索引到warm节点的方式也是采用动态修改请求的方式
PUT api_log_2019-09-01/_settings{ "index.routing.allocation.require.box_type": "warm", "index.routing.allocation.include.resource_level": "mdeium"}我们将api_log_2019-09-01迁移到了box_type为warm,resource_level为mdeium的节点,即node2通过查询索引分片的分布情况GET _cat/shards/api_log_2019-09-01?v结果如下:index shard prirep state docs store ip nodeapi_log_2019-09-01 1 p STARTED 4711 4.1mb 127.0.0.1 node2api_log_2019-09-01 2 p STARTED 4656 4mb 127.0.0.1 node2api_log_2019-09-01 0 p STARTED 4707 4.1mb 127.0.0.1 node2Rollover API
大家应该也注意到了,迁移索引的步骤是手动完成的,有没有更智能的方式呢,答案是肯定的,rollover API可以很好地实现这个功能
1. rollover
首先为索引建立别名, 由于多个index可以对应一个alias,为了让es知道往哪个索引中写,标记其中一个索引is_write_index为true,同时需要注意索引名以横杠+数字结尾的形式命名,这是为了让es自动生成索引
POST _aliases{ "actions": [ { "remove": { "index": "api_log_2019-09-01", "alias": "api_logs", "is_write_index": true } } ]}rollover API会根据设置的条件(conditions)来生成新的索引POST api_logs/_rollover{ "conditions": { "max_age": "1d", "max_docs": 10000, "max_size": "5gb" }}conditions的详细解释:max_age:索引是否创建大于1天max_docs:索引文档数是否超过10000max_size:索引大小是否超过5GBmax_size正在进行中的合并会产生大量的临时分片大小增长,而当合并结束后这些增长会消失掉,不稳定,max_age每个时间内不一定均衡,max_docs比较合适即以上三个条件满足其一就会自动rollover2. 新索引配置
rollover也支持索引的settings设置POST api_logs/_rollover{ "conditions": { "max_age": "1d", "max_docs": 10000, "max_size": "5gb" }, "settings": { "index.number_of_shards": 2 }}3. 自定义索引名称
生成的索引名称为api_log_2019-09-000002, 以长度为6,序号+1,左填充0的格式命名,但es支持自定义名称,只需要在_rollover端点加入名称即可
POST api_logs/_rollover/api_log_2019-09-02{...}关于ElasticSearch中怎么实现数据自动冷热分离就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
索引
节点
名称
数据
方式
标记
生成
冷热
三个
内容
动态
同时
大小
时间
更多
条件
标签
结果
增长
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器安全三个级别
服务器怎么设置电源管理
人大经济论坛是经济类数据库吗
联合国人口数据库 下载
软件开发和测试工作有什么区别
ps4显示与服务器的连接已超时
重庆网络安全攻防竞赛
银行开展国家网络安全周治动
wams服务器
100t服务器
青岛服务器机柜导轨安装图
信任管理与网络安全试卷
召开网络安全主题班会的缘由
什么是数据库安全定义
辽宁正规软件开发服务推广
惠普服务器管理默认密码
怎么给服务器增加盘
ftp服务器安全性能
珠海电商软件开发常见问题
随州bim软件开发工程
幻璃镜 服务器
晋江哪里招聘网络安全员
保险产品数据库设计
vr软件开发是什么
脏小豆服务器生存骗赞
网络安全工程待遇
已泄露的网站数据库
网络技术知识要点
sql 数据库连接怎么写
包头学网络技术排名