之前介绍了通过ES快照的方式迁移数据
其实也可以通过elasticdump插件来迁移数据,相较快照,该方法更加灵活多变
一、安装elasticdump
1、环境检查
npm -v
2、上传并安装npm
cd /opt
mkdir npm
tar xvf node-v10.13.0-linux-x64.tar -C /opt/npm
3、修改配置文件
export NODE_HOME=/opt/npm/node-v10.13.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
source /etc/profile
4、验证是否生效
npm -v
5、安装elasticdump
npm install elasticdump -g
二、elasticdump适用场景
1、同步索引结构
elasticdump
–input=http://192.168.xxx.xxx:9200/my_index
–output=http://192.168.xxx.xxx:9200/my_index
–type=mapping
#–input:源端
#–output:目标端
#–type=mapping:只同步索引结构,不同步数据
2、同步索引数据
elasticdump
–input=http://192.168.xxx.xxx:9200/my_index
–output=http://192.168.xxx.xxx:9200/my_index
–type=data
#–input:源端
#–output:目标端
#–type=data:只同步数据,如果索引结构不同会报错
3、备份索引结构
elasticdump
–input=http://192.168.xxx.xxx:9200/my_index
–output=/data/my_index_mapping.json
–type=mapping
#–input:源端
#–output:目标路径,如果存在相同文件会报错
#–type=mapping:只备份索引结构
4、备份索引数据
elasticdump
–input=http://192.168.xxx.xxx:9200/my_index
–output=/data/my_index.json
–type=data
#–input:源端
#–output:目标路径,如果存在相同文件会报错
#–type=data:只备份索引数据
elasticdump其他功能
1、–limit
例如
–limit 1000
#以每1000条数据合并备份\迁移
2、–searchBody
例如
–searchBody {“query”: {“bool”: {“must”: [{“term”: {“id”: “2”}}]}}}
#只备份\迁移满足查询条件的数据
3、| gzip
例如
–output=$ | gzip > /data/my_index.json.gz
#备份数据量大时可直接压缩
4、elasticdump --help
可查看elasticdump全部用法
彩蛋
elasticdump同样适用于带账号密码的ES
elasticdump
–input=http://elastic:xxxxxxxx@192.168.xxx.xxx:9200/my_index
–output=http://elastic:xxxxxxxx@192.168.xxx.xxx:9200/my_index
–type=data