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

这篇具有很好参考价值的文章主要介绍了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

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

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

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

 文章来源地址https://www.toymoban.com/news/detail-507466.html

 

到了这里,关于ES按照时间删除索引上的数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • es1.7.2 按照_type先聚合,再按照时间二次聚合

    参考:gpt

    2024年02月13日
    浏览(36)
  • 通过es索引生命周期策略删除日志索引

    在es 7.x版本之后,多了个索引生命周期的概念,可以一系列的设置,给新生成的索引绑定生命周期策略,到期后,索引自动删除。 也可以通过linux定时任务实现,请查看另一篇文章《通过linux定时任务删除es日志索引》 创建索引生命周期策略 创建索引模板,与生命周期策略绑

    2024年02月09日
    浏览(49)
  • Es 索引查询与删除

    1、 #删除单个索引 2、#删除多个指定索引,中间用逗号隔开 3、#模糊匹配删除 4、#使用通配符,删除所有的索引 5、#获取当前索引 6、如果存储不够可以设置定时删除,下面是保留3天的日志 以下是定时删除脚本:

    2024年02月11日
    浏览(50)
  • ES 查看、删除索引命令

    1 、获取 cat命令 列表: 2 、带用户名密码查看索引信息 3、 查看索引信息及空间占用: 4、清理指定索引空间 5、 删除索引 6、删除30天前的索引记录 7、crontab 定时清理30天前数据 8、修改带密码的索引副本数量  

    2024年02月09日
    浏览(50)
  • es 索引操作(创建、查看、删除)

    Elasticsearch采用Rest风格API,因此其API就是一次http请求,只要能发起http请求。 settings:表示索引库设置,其中可以定义索引库的各种属性 比如分片数 副本数等,暂时不设置,都走默认。 GET /索引名称 GET /索引名称1,索引名称2,索引名称3,… 信息就比较多了 #! Deprecation: Elasticse

    2023年04月08日
    浏览(40)
  • ES(elasticsearch)删除指定索引

    需要删除指定的索引 执行命令 比如:DELETE /mysql-status_-2023.06 执行结果: 执行命令 比如:HEAD /mysql-status_-2023.06 执行结果: 说明已经删除完毕 删除命令: DELETE /索引名 查看是否删除成功: HEAD /索引名 查看索引命令: GET /索引名称 批量查看索引命令: GET /索引名称1,索引名称

    2024年02月11日
    浏览(64)
  • es 按月建索引,定时删除3个月前索引

    1.建模板 2.创建索引时携带年月(如果按日删除需携带年月日)  例: log-202208 3.根据别名查询数据 4.定时删除过期数据,本文使用shell脚本

    2024年02月17日
    浏览(52)
  • ES中删除索引中某个字段

    ES中无法直接增删索引中的字段,只能能够覆盖,即重建新的索引 例:删除索引my_index中的source字段 先将source字段中的数据删除 否则后面reindex时,索引中会自动增加source字段和类型 创建新的索引my_index_bak,该mapping中不包含source字段 数据迁移 删除原来的索引 再重新创建索引

    2024年02月11日
    浏览(45)
  • 使用java来删除es索引(基于es7.8)

    先引入pom依赖: 然后在main方法里进行测试:

    2024年02月16日
    浏览(40)
  • 通过linux定时任务删除es日志索引

    项目用上了elk,产生的日志索引要定时,其一个方法,通过linux定时任务,调用es接口删除索引。 es 7.x后版本,可能设置索引生命周期策略,来实现自动删除索引,不受于索引名称格式,参考《通过es索引生命周期策略删除日志索引》

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包