如何批量删除Elasticsearch快照?含全量删除等相关问题
Elasticsearch快照批量删除相关问题解答
1. 是否支持使用正则表达式一次性删除多个快照?
Elasticsearch 7.7支持通过通配符或正则表达式匹配快照名来批量删除:
- 通配符方式(更常用):用
*匹配任意字符、?匹配单个字符,比如删除2021年所有index_name开头的快照:DELETE _snapshot/test/index_name-2021-* - 正则表达式方式:需将正则用斜杠
/包裹,比如匹配所有符合日期格式的index_name快照:DELETE _snapshot/test//index_name-\d{4}-\d{2}-\d{2}/
2. 采用逗号分隔多个快照名的批量删除方式,速度会更快吗?
是的,这种批量删除比逐个删除效率高很多:
- 逐个删除时,每个快照都要单独发起HTTP请求、初始化元数据处理、执行文件删除流程,重复开销大;
- 批量删除可一次性处理多个快照的元数据清理,减少HTTP请求往返次数,底层文件删除逻辑也能合并执行,整体耗时会远低于逐个删除的总耗时(不会是20分钟×快照数量,而是显著缩短)。
3. 如何删除仓库中的所有快照?
直接用通配符匹配仓库下所有快照即可,执行以下命令:
DELETE _snapshot/test/*
注意:删除仓库本身不会移除快照文件,必须通过快照删除API来清理所有快照内容。
内容的提问来源于stack exchange,提问作者Musab Dogan
相关产品推荐
相关产品推荐

