ElasticSearch中怎么实现数据自动冷热分离
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章给大家介绍ElasticSearch中怎么实现数据自动冷热分离,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 节点tag依次启动三个节点,同时加入box_type和r
千家信息网最后更新 2025年02月04日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 node2
Rollover 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比较合适即以上三个条件满足其一就会自动rollover
2. 新索引配置
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安全错误
数据库的锁怎样保障安全
网络安全 评测 市场
sql注册网络安全吗
农村管路与网络技术
福建智能软件开发成交价
intel服务器管理网口
idea服务器激活
大学软件开发专业学什么课程
切削参数数据库管理
张家口软件开发平台
外网远程内网服务器
lol一玩排位就连接不了服务器
常见服务器类型
网络安全法律谁颁布的
辽宁省公安厅网络安全总队
nvme服务器启动盘
方舟手游服务器后弹回主界面
量化投资软件开发广东
互联网科技产生就业作文
奉贤区网络技术常见问题
金蝶数据库误删
上海互动触摸软件多媒体软件开发
服务器搭建电商网站
新蔡租房软件开发
通过学习数据库你想收获什么
网络安全好处与坏处有哪些
安徽调度服务器排名
网络安全宣传周文字
金华兔兔网络技术有限公司
成都市教育系统网络安全
小米科技第四大互联网公司