路漫漫其修远兮
吾将上下而求索

elasticsearch学习:数据导入导出

1、前提准备
需要使用npm安装

2、安装es-dump
输入命令,等待安装:-g 表示全局安装(可选)。
npm install -g elasticdump

3、备份数据
需要更详尽的解释,也可以查看官方文档。"\"不代表换行,参数命令直接在后面加空格隔开。

#拷贝数据,可以是分词拷贝,可以是映射拷贝,也可以是全数据拷贝
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

也可以拷贝成json文件进行数据输出:

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

也可进行压缩拷贝或者根据查询自定字段进行部分数据导出:

# Backup and index to a gzip using stdout: 
elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=$ \
  | gzip > /data/my_index.json.gz
 
# Backup the results of a query to a file 
elasticdump \
  --input=http://production.es.com:9200/my_index \
  --output=query.json \
  --searchBody '{"query":{"term":{"username": "admin"}}}'


elasticdump比较灵活的一点是,同样的,变换input output内容,同样可以实现数据导入工作。

https://github.com/taskrabbit/elasticsearch-dump

未经允许不得转载:江哥架构师笔记 » elasticsearch学习:数据导入导出

分享到:更多 ()

评论 抢沙发

评论前必须登录!