elasticdump迁移es数据

一、简要

近期阿里测试机将要过期,需要将原来es机器的数据与结构迁移到新的es机器上,这里有好几个方式,

二、kibana

1、如果安装了kibana,可以在旧的机器将数据导出为csv格式,新的机器kibana将csv文件导入
Discover -> 保存查询 -> management->report


导入的时候选择上一步导出的csv文件
Machine Learning -> 可视化工具 -> 导入文件



但是这种方式很诡异,如果是简单类型的导入没有问题,但是复杂一点的类型因为经过csv转换会各种导入失败。

三、elasticdump

elasticdump需要依赖node,首先安装node
wget https://npm.taobao.org/mirrors/node/v14.15.5/node-v14.15.5-linux-x64.tar.xz
解压
tar -xvf node-v14.15.5-linux-x64.tar.xz
将node添加至环境变量中
vim ~/.bash_profile
export PATH=$PATH:/data/server/node-v14.15.5-linux-x64/bin
source ~/.bash_profile

可以看到node安装成功,接下来安装elasticdump
local
npm install elasticdump
global
npm install elasticdump -g
elasticdump需要input和output,可以为es索引url,也可以为文件
如果是索引:
{protocol}😕/{host}:{port}/{index}
比如这里需要将原来服务器的索引拷贝到本地input为http://127.0.0.1:9200/my_index
如果是文件
{FilePath}
比如这里导出至本地output为/Users/liufuqiang/my_index.json

如果两台机器都为外网,可以在任何一台安装了elasticdump的机器上执行下面命令,直接将原来服务器拷贝至新服务器,不需要转为文件再进行操作,
比如迁移原来索引的analyzer,mapping,data

elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=http://staging.es.com:9200/my_index \
  --type=analyzer
elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=http://staging.es.com:9200/my_index \
  --type=mapping
elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=http://staging.es.com:9200/my_index \
  --type=data

也可以备份es数据为文件格式

elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=/data/my_index_mapping.json \
  --type=mapping
elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=/data/my_index.json \
  --type=data

如果数据量比较大,可以转为压缩文件

elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=$ \
  | gzip > /data/my_index.json.gz

如果需要备份或者导出部分数据,可以使用searchBody查出所需备份数据即可

elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=query.json \
  --searchBody="{\"query\":{\"term\":{\"username\": \"admin\"}}}"

文档
https://www.npmjs.com/package/elasticdump
https://github.com/elasticsearch-dump/elasticsearch-dump

posted @ 2022-11-25 15:32  木马不是马  阅读(459)  评论(1编辑  收藏  举报