elasticsearch批量删除数据

    使用es Note for ES2+批量删除数据,需要安装delete-by-query插件,集群环境只需安装到一台Node节点上,安装方法如下两种:

   注:delete-by-query插件的版本,需要与es的版本怎么对应,否则es会启动不成功,当es存储数据的硬盘空间不足85%时,实际不到85%,数据不会再分片,此时去删除数据是删除不了

  1、在线安装

   sudo bin/plugin install delete-by-query

安装完后需要重启es服务

#  wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/delete-by-query/2.3.5/delete-by-query-2.3.5.zip

# unzip delete-by-query-2.3.5.zip

# cp -r *  /applications/elasticsearch-2.3.5/

[root@htc plugins]# ls /applications/elasticsearch-2.3.5/plugins/delete-by-query/
delete-by-query-2.3.5.jar  plugin-descriptor.properties

安装完插件后需要重启es

 

#统计大于时间的数量
curl -XGET "192.168.1.16:9200/app/_count?pretty" -d "{
    "query":{
        "range":{
            "queryTime":{
                "lte" : "1506493824"
            }
        }
    }
}"

 

#查看索相字段类型

curl -XGET "192.168.1.16:9200/app/_mapping?pretty"

 

删除数据脚本

 

#!/bin/sh

index_name="app"
deldays="1506502200000"

/usr/bin/curl -XDELETE "192.168.1.16:9200/${index_name}/_query?pretty" -d "
{
    "query":{
    	"filtered": {
    		"filter": {
    			"bool": {
    				"must": {
    					"range":{
					        "queryTime":{
					            "lte":${deldays}
					        }
					    }
    				}
    			}
    		}
    	}
    }
}"  >> esdeldata.log

 

通过js获取时间戳

 

new Date("2017-09-28 15:30:30").getTime();
1506492264000

 

curl -XDELETE http://localhost:9200/.kibana

 

通过脚本批量删除索引

#!/bin/bash

index=$1

curl -XDELETE http://localhost:9200/${index}-*
if [ $? == 0 ];then
   echo "删除${index}成功"
fi

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值