大家好,欢迎来到IT知识分享网。
一、删除 除XX(index_pattern)外所有索引及数据
from elasticsearch import Elasticsearch # Elasticsearch 的连接信息,添加身份验证 es = Elasticsearch( ["http://IP:port"], basic_auth=("es_user", "es_pw") # 替换为你的用户名和密码 ) # 定义要保留的索引模式 keep_patterns = [ # "device_monitor_log_*", # "data_log_*", # "platform_log_*", "logs-*", "metrics-*" ] # 获取所有索引 all_indices = es.indices.get_alias(index="*") # 遍历索引,删除不在保留列表中的索引 for index in all_indices: if not any(index.startswith(pattern.rstrip('*')) for pattern in keep_patterns): print(f"Deleting index: {index}") # es.indices.delete(index=index)
二、删除指定 index_pattern 索引及数据
from elasticsearch import Elasticsearch # Elasticsearch 的连接信息,添加身份验证 es = Elasticsearch( ["http://IP:port"], basic_auth=("es_user", "es_pw") # 替换为你的用户名和密码 ) # 定义要删除的索引前缀 index_pattern = "mss_ods_*" # 获取所有匹配的索引 indices = es.indices.get(index=index_pattern) # 遍历索引并删除 for index in indices: print(f"Deleting index: {index}") # es.indices.delete(index=index)
三、保留最近的 N 个分片,删除索引及数据
from elasticsearch import Elasticsearch # Elasticsearch 的连接信息,添加身份验证 es = Elasticsearch( ["http://IP:port"], basic_auth=("es_user", "es_pw") # 替换为你的用户名和密码 ) index_patterns = [ "data_log_*", "platform_log_*", ] # 对每个索引模式执行操作 for pattern in index_patterns: # 获取符合索引模式的所有索引 indices = es.indices.get(index=pattern) sorted_indices = sorted(indices.keys(), reverse=True) # 按名称排序,假设索引名称按时间递增 # 保留最近的两个索引,删除其余的 if len(sorted_indices) > 7: indices_to_delete = sorted_indices[2:] # 排除最新的两个索引 for index in indices_to_delete: es.indices.delete(index=index) print(f"删除旧索引: {index}") else: print(f"索引模式 '{pattern}' 下的索引数少于 3 个,没有进行删除操作。")
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128856.html