赞
踩
语法
curl -XPOST 'es导出地址' -H 'Content-Type: application/json' -d '查询条件' --> 导出文件名(自定义)
示例
索引:es_index
导出文件:es_index.json
curl -XPOST 'http://127.0.0.1:7001/es_index/_search?' -H 'Content-Type: application/json' -d '{"query":{"bool":{"must":[{"match":{"isDeleted":0}}]}}}' --> es_index.json
前提(安装ealsticdump)
方式一:需要安装node.js环境,下载ealsticdump
方式二:使用docker,下载ealsticdump
输入命令进行查看node和npm是否安装成功
node -v
npm -v
下载ealsticdump
npm install elasticdump -g
查看安装版本
elasticdump --version
导出
语法
# 导出索引Mapping数据
elasticdump
--input=http://es实例IP:9200/index_name/index_type
--output=/data/my_index_mapping.json # 存放目录
--type=mapping
# 导出索引数据(全量)
elasticdump
--input=http://es实例IP:9200/index_name/index_type
--output=/data/my_index.json
--type=data
# 导出索引数据(指定条件)
elasticdump
--input=http://es实例IP:9200/index_name/index_type
--output=/data/my_index.json
--limit=10000
--searchBody={\"query\":{\"term\":{\"username\": \"admin\"}}}
--type=data
导出说明:
1、index_type没有自定义可以不要
2、--type可以不要,默认就是data
3、--limit=每次批量导出数据的条数
4、-searchBody=设置查询条件(必须是转义后的json)
5、也可以全量导出所有索引的数据,如果数据过大需要大量时间,可以使用nohup命令后台执行
导入
# Mapping 数据导入至索引
elasticdump
--output=http://es实例IP:9200/index_name
--input=/home/indexdata/roll_vote_mapping.json # 导入数据目录
--type=mapping
# ES文档数据导入至索引
elasticdump
--output=http:///es实例IP:9200/index_name
--input=/home/indexdata/roll_vote.json
--type=data
# 导入大数据时
elasticdump --bulk=true --input=/path/to/data.json --output=http://localhost:9200/index_name/type_name --limit=1000
导入说明
1、--bulk=true参数只是指示elasticdump使用Bulk API进行批量导入操作
2、--limit参数设置每批次导入的文档数量,可以灵活控制导入的速度和资源消耗
官网地址:elasticdump 官网
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。