「ES数据迁移可视化工具(Python实现)」支持7.x索引数据互传
工具概述
这是一个用于 Elasticsearch 7x 的数据迁移 Python 脚本,支持以下功能:
- 跨集群数据迁移(支持认证)
- 按索引前缀或精确名称筛选迁移
- 批量处理(可配置批量大小)
- 自动创建目标索引(保留源索引结构)
- 实时进度显示和性能统计
功能特性
核心功能
✅ 完整的索引结构和数据迁移
✅ 支持源和目标集群不同认证信息
✅ 断点续传能力
✅ 详细的迁移报告
筛选功能
🔍 按索引前缀筛选(–index-prefix)
🔍 按精确索引名筛选(–index-filter)
🔍 支持同时使用两种筛选方式
性能监控
📊 实时显示迁移速度
📊 每个索引的进度条
📊 迁移完成后的详细统计
环境要求
- Python 3.6+
- 以下Python包
- elasticsearch==7.15.2(你使用的版本)
- tqdm==4.62.3
安装依赖:
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