ElasticSearch中怎么实现数据自动冷热分离
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,这篇文章给大家介绍ElasticSearch中怎么实现数据自动冷热分离,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 节点tag依次启动三个节点,同时加入box_type和r
千家信息网最后更新 2024年11月18日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安全错误
数据库的锁怎样保障安全
数据库加固系统
江阴有软件开发公司吗
西安c软件开发公司排名
如何安装iis管理服务器
手机网络安全出问题了
网络技术就是网络管理嘛
网络安全宣传周通稿
网络安全训练
测距定位模块软件开发
非关系型数据库开源的意思
工业网络技术专业开设院校
云主机数据库名
极限竞速4为什么服务器通讯错误
网络安全讲座感想
redis数据库 扩展
长沙棋牌软件开发公司6
小学生网络安全漫画图片
网络安全专业就业前景6
网络安全管理保护手段
数据库2008标准版
河北高职数据库比赛
oracle数据库波动
我的世界服务器后台怎么清除怪物
黄岛区驾考速记软件开发工作室
上海供电公司网络安全专家
亚运会网络安全宣传周
教务管理数据库逻辑设计
网络安全日常巡检的工作内容
ncbi蛋白数据库登录号
丹阳网络安全公司