Elasticsearch之导入导出

Posted HelloWorddddddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch之导入导出相关的知识,希望对你有一定的参考价值。

1、curl方式导出(默认支持1万条以内)

语法

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

2、elasticsearch-dump工具导入导出

前提(安装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  

说明:
--type可以不要,默认就是data
--limit=每次批量导出数据的条数
-searchBody=设置查询条件(必须是转义后的json)
导入

# Mapping 数据导入至索引
./bin/elasticdump \\
  --output=http://es实例IP:9200/index_name \\
  --input=/home/indexdata/roll_vote_mapping.json \\ # 导入数据目录
  --type=mapping
# ES文档数据导入至索引
./bin/elasticdump \\
  --output=http:///es实例IP:9200/index_name \\
  --input=/home/indexdata/roll_vote.json \\ 
  --type=data

备注

官网地址:elasticdump 官网

以上是关于Elasticsearch之导入导出的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch的脚本化数据导入导出

005_elasticsearch的数据导入导出

使用elasticdump实现es数据导入导出示例(持续更新中)

elasticSearch数据的导入和导出

[elk]elasticsearch dashboard+保留10天内索引+导入导出备份

Elasticsearch的数据导出和导入操作(elasticdump工具),以及删除指定type的数据(delete-by-query插件)