ElasticSearch之定时删除数据

来源:互联网 发布:中企动力域名管理 编辑:程序博客网 时间:2024/05/21 21:46

原链接

http://blog.csdn.net/shan1369678/article/details/51352350


有的时候我们在使用ES时,由于资源有限或业务需求,我们只想保存最近一段时间的数据,所以有如下脚本可以定时删除数据

delete_es_by_day.sh

[plain] view plain copy
  1. #!/bin/sh  
  2. # example: sh  delete_es_by_day.sh logstash-kettle-log logsdate 30  
  3.   
  4. index_name=$1  
  5. daycolumn=$2  
  6. savedays=$3  
  7. format_day=$4  
  8.   
  9. if [ ! -n "$savedays" ]; then  
  10.   echo "the args is not right,please input again...."  
  11.   exit 1  
  12. fi  
  13.   
  14. if [ ! -n "$format_day" ]; then  
  15.    format_day='%Y%m%d'  
  16. fi  
  17.   
  18. sevendayago=`date -d "-${savedays} day " +${format_day}`  
  19.   
  20. curl -XDELETE "10.130.3.102:9200/${index_name}/_query?pretty" -d "  
  21. {  
  22.         "query": {  
  23.                 "filtered": {  
  24.                         "filter": {  
  25.                                 "bool": {  
  26.                                         "must": {  
  27.                                                 "range": {  
  28.                                                         "${daycolumn}": {  
  29.                                                                 "from": null,  
  30.                                                                 "to": ${sevendayago},  
  31.                                                                 "include_lower": true,  
  32.                                                                 "include_upper": true  
  33.                                                         }  
  34.                                                 }  
  35.                                         }  
  36.                                 }  
  37.                         }  
  38.                 }  
  39.         }  
  40. }"  
  41.   
  42. echo "ok"  

注解:脚本传入参数说明:1.索引名;2.日期字段名;3.保留最近几天数据,单位天;4.日期格式,可不输(默认形式20160101)
0 0
原创粉丝点击