ES按照时间删除索引上的数据

背景

集群的索引没有预先规划大小,导致索引特别大,删除数据删除索引的形式进行,只能在原来的索引上进行数据删除操作。 

删除索引时采用最经典的方式,即按照时间戳进行删除,比如删除90天以前的历史数据,保留最新的。

Elasticseach会有后台线程根据Lucene的合并规则定期进行segment merging合并操作,一般不需要我们担心。被删除的文档在segment合并时,才会被真正删除掉。在此之前,它仍然会占用着JVM heap和操作系统的文件cache、磁盘等资源。在某些特定情况下,我们需要强制Elasticsearch进行segment merging,已释放其占用的大量系统、磁盘等资源。

执行的期间你会发现,磁盘空间会有一个反复变化的过程,磁盘使用率会先增长,然后在删除释放空间这样一个过程。这个过程无需紧张,都是正常现象

# 假如现在是中午11点,这个表示删除8点-10点之间的全部数据
curl -X POST "http://localhost:9200/nginx-error-2021-10-12/_delete_by_query?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "range": {
      "@timestamp": {
        "gte": "now-3h",
        "lt": "now-1h"
      }
    }
  }
}'



#假如现在是中午11点,这个表示删除早上6点之前的全部数据,也就是比6点早的数据全部删除
curl -X POST "http://localhost:9200/nginx-error-2021-10-12/_delete_by_query?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "range": {
      "@timestamp": {
        "lt": "now-5h"
      }
    }
  }
}'



#假如现在是中午11点,这个表示删除早上6点-11点之间的数据
curl -X POST "http://localhost:9200/nginx-error-2021-10-12/_delete_by_query?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {    
    "range": {
        "@timestamp": {
          "gt": "now-5h"
        }
    }
  }
}'



#最后再执行下面命令即可开始正式删除数据了,会产生大量的io
curl -X POST http://localhost:9200/nginx-error-2021-10-12/_forcemerge?max_num_segments=1&only_expunge_deletes=true

上面的过程由自己实践而来,其中受到了下面执行的启发,特此记录一下

POST /index-name/_delete_by_query?slices=auto&conflicts=proceed&wait_for_completion=false
{         //多线程并发删除满足查询条件的数据
  "query": {
    "bool": {
      "filter": {
        "bool": {
          "must_not": [
            {
              "term": {     //查询条件,可以自定义
                "action": "XXXXXXX"
              }
            },
            {
              "exists": {
                "field": "XXXXXXXX"   //查询条件,可以自定义
              }
            }
          ]
        }
      }
    }
  }
}

参考的一些链接:

腾讯云博客参考:https://cloud.tencent.com/developer/article/1737025

官方文档演示:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_ranges.html

官网文档使用:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/common-options.html#date-math

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值