ElasticSearch系列---【批量删除(或修改)索引别名】
1.问题背景
es集群突然查询很慢,定位到是查询近360天指标索引时,查询量太大导致的,每天三四百万流水,频繁查询把数据变成了热点数据,加载到内存中,导致内存不断增大,最终被撑爆,报data too large的错误。
2.临时解决方案
因为是指标,所以允许为空,后续再重新计算,补上,所以,在生产环境,我们选择了保证集群可用。因为我们是根据别名查询的,有360个索引,因此,我们选择了删掉别名,然后创建一个别名为指标索引的空索引,修改或删除完别名之后,建议通过kibana关闭索引,不要直接关闭索引,要先删除别名,不然直接关闭索引查询会报错。关闭索引可以大大减少资源消耗,特别是对不常访问或只需要保留其历史记录的索引来说。
操作命令:
#通配符批量删除索引别名(适用于索引多)
DELETE /afp_idx_2024*/_alias/afp_idx
#批量删除索引别名(适用于索引有限)
POST /_aliases
{
"actions": [
{
"remove": {
"index": "afp_idx_20230908",
"alias": "afp_idx"
}
},
{
"remove": {
"index": "afp_idx_20230909",
"alias": "afp_idx"
}
},
{
"remove": {
"index": "afp_idx_20230910",
"alias": "afp_idx"
}
}
}
#批量新增索引别名(适用于索引有限)
POST /_aliases
{
"actions": [
{
"add": {
"index": "afp_idx_20240906",
"alias": "afp_idx_back"
}
},
{
"add": {
"index": "afp_idx_20240906",
"alias": "afp_idx_back"
}
},
{
"add": {
"index": "afp_idx_20240906",
"alias": "afp_idx_back"
}
}
}
#删除新增(可以理解为修改)
POST /_aliases
{
"actions": [
{
"remove": {
"index": "afp_idx_20240906",
"alias": "afp_idx"
}
},
{
"add": {
"index": "afp_idx_20240906",
"alias": "afp_idx_back"
}
}
}
#上面的命令也可以用curl命令执行
curl -X POST "http://localhost:9200/_aliases" -H 'Content-Type: application/json' -d'
{
"actions": [
{
"remove": {
"index": "afp_idx_20240906",
"alias": "afp_idx"
}
},
{
"add": {
"index": "afp_idx_20240906",
"alias": "afp_idx_back"
}
},
{
"remove": {
"index": "afp_idx_20240905",
"alias": "afp_idx"
}
},
{
"add": {
"index": "afp_idx_20240905",
"alias": "afp_idx_back"
}
}
}'
愿你走出半生,归来仍是少年!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2019-09-06 我爱java系列---【thymeleaf中js如何取后台model中传来的值?】