码迷,mamicode.com
首页 > 其他好文 > 详细

Elasticsearch数据迁移工具elasticdump工具

时间:2018-12-23 22:14:45      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:索引数据   x64   json   .com   bsp   ast   sso   6.4   一个   

1. 工具安装

wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz

tar xf node-v8.11.2-linux-x64.tar.xz 

mv node-v8.11.2-linux-x64 /usr/local

ln -s /usr/local/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm

ln -s /usr/local/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node

npm init -f

npm install elasticdump

# 因为我只用一次,所以这里没有安装到全局,需要到node_modules目录下才能找到 elasticdump , 我安装的位置如下:

/usr/local/node-v8.11.2-linux-x64/node_modules/elasticdump/bin/elasticfump 

2. 工具使用

#拷贝analyzer分词
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

3. 注意事项

3.1 

# 注意 elasticdump 提供给了--httpAuthFile 参数来做认证
--httpAuthFile      When using http auth provide credentials in ini file in form
                    `user=<username>
                    password=<password>`

# 只需要写一个ini文件 ,文件中写入用户名和密码就可以了
# 这里其实还有另外一个好的方法
# 在--input参数和--output参数的的url中添加账号密码
# 例如
elasticdump   --input=http://prod-username:prod-passowrd@production.es.com:9200/my_index \
  --output=http://stage-username:stage-password@staging.es.com:9200/my_index \
  --type=data

3.2 如果网络情况不好,或者没有网络还可以先备份到文件:

# 备份索引数据到文件里:
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

# 备份到标准输出,且进行压缩(这里有一个需要注意的地方,我查询索引信息有6.4G,用下面的方式备份后得到一个789M的压缩文件,这个压缩文件解压后有19G):
elasticdump   --input=http://production.es.com:9200/my_index \
  --output=$   | gzip > /data/my_index.json.gz

# 把一个查询结果备份到文件中
elasticdump   --input=http://production.es.com:9200/my_index \
  --output=query.json   --searchBody {"query":{"term":{"username": "admin"}}}
# 将备份文件的数据导入ES
elasticdump   --input=./data.json   --output=http://es.com:9200 
elasticdump还是非常方便的,主要是可以指定查询条件,把查询结果进行备份。如果按照日期进行查询,那么就可以迁移指定之间段内的数据,

Elasticsearch数据迁移工具elasticdump工具

标签:索引数据   x64   json   .com   bsp   ast   sso   6.4   一个   

原文地址:https://www.cnblogs.com/sunfie/p/10165473.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!