Elasticdump

elasticsearch的导入导出工具

github

安装

tar -zxvf node-v10.21.0-linux-x64.tar.gz

vi /etc/profile
export NODE_HOME=~/node-v10.21.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH

. /etc/profile

npm install elasticdump

# 安装路径
# node_modules/elasticdump/bin/elasticdump

ln -s /home/jzinfo/software/node_modules/elasticdump/bin/elasticdump /usr/bin/

elasticdump 使用

elasticdump提供了多种导入导出数据的方式,可以 index <-> index 、 index <-> .json 文件,还支持将 index 查询结果导出到 .json 文件。执行的命令也很简单,只需指定数据来源 input 、数据输出 output 、数据类型 type 即可。

支持导入导出的type列表

type 说明
settings 对应 es 中的 settings
analyzer 对应 es 中的 analyzer
data es 查询出来的数据
mapping 对应 es 中的 mapping
alias 对应 es 中的 alias
template 对应 es 中的 template

es_ip=192.168.200.96:9200
index=test_0

导出

# 导出 index 的 mapping 到 .json 文件
elasticdump \
  --input=http://${es_ip}/${index} \
  --output=/data/my_index_mapping.json \
  --type=mapping

# 导出 index 的所有数据到 .json 文件
elasticdump \
  --input=http://${es_ip}/${index} \
  --output=/data/my_index.json \
  --type=data

# 导出
elasticdump --input=http://${es_ip}/${index} --output=/data/my_index.json --type=data

# 支持参数
--sourceOnly 只导出原数据, 忽略 _index,_type 等等信息, 默认为{"_index":"","_type":"","_id":"", "_source":{SOURCE}}

导入

# 从 .json 文件导入 templates 到 ES 
elasticdump \
  --input=/tmp/my_index.json \
  --output=http://${es_ip}/${index} \
  --type=data

# 导入
elasticdump --input=/tmp/2.json --output=http://${es_ip}:9200 --type=data