「ES数据迁移可视化工具(Python实现)」支持7.x索引数据互传

工具概述

这是一个用于 Elasticsearch 7x 的数据迁移 Python 脚本,支持以下功能:

  • 跨集群数据迁移(支持认证)
  • 按索引前缀或精确名称筛选迁移
  • 批量处理(可配置批量大小)
  • 自动创建目标索引(保留源索引结构)
  • 实时进度显示和性能统计

功能特性

核心功能

✅ 完整的索引结构和数据迁移

✅ 支持源和目标集群不同认证信息

✅ 断点续传能力

✅ 详细的迁移报告

筛选功能

🔍 按索引前缀筛选(--index-prefix)

🔍 按精确索引名筛选(--index-filter)

🔍 支持同时使用两种筛选方式

性能监控

📊 实时显示迁移速度

📊 每个索引的进度条

📊 迁移完成后的详细统计

环境要求

  • Python 3.6+
  • 以下Python包
  • elasticsearch==7.15.2(你使用的版本)
  • tqdm==4.62.3

安装依赖:

bash 复制代码
pip install elasticsearch==7.15.2 tqdm==4.62.3

使用说明

基本命令

复制代码
python es_migration.py \
    --source-host <源ES地址> \
    --source-user <源用户名> \
    --source-pass <源密码> \
    --target-host <目标ES地址> \
    --target-user <目标用户名> \
    --target-pass <目标密码> \
    [其他参数]

参数说明

参数 必选 说明 示例
--source-host 源ES地址 http://192.168.1.210:9200
--source-user 源ES用户名 elastic
--source-pass 源ES密码 yourpassword
--target-host 目标ES地址 http://192.168.1.136:9200
--target-user 目标ES用户名 elastic
--target-pass 目标ES密码 yourpassword
--batch-size 每批处理的文档数(默认5000) 10000
--scroll-keepalive scroll API保持时间(默认15m) 30m
--index-filter 精确匹配的索引名(可多个) index1 index2
--index-prefix 索引名前缀匹配 logs.

使用示例

复制代码
python es_migration.py --source-host http://192.168.1.210:9200 --source-user elastic --source-pass pass@2025 --target-host http://192.168.1.136:9200 --target-user elastic --target-pass pass@2025 --batch-size 5000 --scroll-keepalive 15m --index-prefix "log."

输出说明

脚本运行时将显示:

  • 连接测试结果
  • 发现的索引数量和列表
  • 每个索引的迁移进度条
  • 实时迁移速度
  • 已迁移文档数/总文档数

迁移完成后将生成报告:

  • 开始和结束时间
  • 总耗时
  • 成功/失败的索引列表
  • 平均迁移速度

源码下载:https://download.csdn.net/download/MaYuKang/90677592?spm=1001.2014.3001.5503

相关推荐
溜溜刘@♞几秒前
数据库之mysql优化
数据库·mysql
Bruce_Liuxiaowei22 分钟前
基于Python+Flask的MCP SDK响应式文档展示系统设计与实现
开发语言·python·flask·mcp
BXCQ_xuan36 分钟前
基于Node.js的健身会员管理系统的后端开发实践
后端·mysql·node.js
PyAIGCMaster36 分钟前
Vscode已经打开的python项目,如何使用已经建立的虚拟环境
ide·vscode·python
uwvwko37 分钟前
ctfhow——web入门214~218(时间盲注开始)
前端·数据库·mysql·ctf
白总Server44 分钟前
Nginx 中间件
大数据·linux·运维·服务器·nginx·bash·web
柯3491 小时前
Redis的过期删除策略和内存淘汰策略
数据库·redis·lfu·lru
yangmf20401 小时前
使用 Logstash 迁移 MongoDB 数据到 Easysearch
java·elasticsearch·搜索引擎
Tiger_shl1 小时前
【Python语言基础】24、并发编程
java·数据库·python
<<1 小时前
基于Django的权限管理平台
后端·python·django