elasticsearch导出、导入工具-elasticdump
elasticsearch 数据导入到本地,或本地数据导入到elasticsearch中,或集群间的数据迁移,可以用elasticsearch的工具—elasticdump
elasticdump github 地址: https://github.com/taskrabbit/elasticsearch-dump?utm_source=dbweekly&utm_medium=email
elasticdump 可以用用npm安装本地运行,也可以用docker容器运行。在这里我说一下npm安装本地运行、docker运行可以参考github文章。
npm 安装 elasticdump
先下载安装npm
1 | # 以下我尽量都用绝对路径吧。 发现好多文章里的路径写的不清晰...... |
导出数据, 他在他的官网中已经介绍的很详细了, es导出到es,es导出到文件,导出数据直接压缩等方式。
主要记住的是, 导出的时候不仅仅的data,还需要导出mapping信息。
导出数据到文件:
1 | elasticdump \ |
这样的话数据和mapping信息就都导出来了。
For Example:
1 | 导出Mapping信息 |
导入数据
正常导入数据是:
1 | elasticdump --input /data/shining_index.json --output http://172.16.3.5:9200/shining_index |
如果你得ES集群配置用有配置: action.auto_create_index 参数为 false 或 为 +aaa,-bbb,’+’号意味着允许创建aaa开头的索引,’-‘号意味着不允许创建bbb开头的索引 有规则的话(详细可以查看这个参数的说明和配置), 会导致导入失败。
这时候需要先创建索引和mappping之后再导入数据。
先编辑一下我们导出来的mapping.json文件
1 | vim /data/shining_index_mapping.json |
创建索引
1 | curl -X PUT 'http://172.16.3.5:9200/shining_index' -d@/data/shining_index_mapping.json |
创建成功之后再导入数据就可以了。就不会报错了。