windows下用elasticdump导入json数据到Elasticsearch中

一、前言

      ES的备份,导入和导出相对而言比较麻烦。用logstash的话,经常会出现很多错误,而且不是很方便。用bulk也是一样的,对于咱们的json文件的结构,一些字段名都有要求,也不方便。后来和大佬交流下才知道,原来ES也有类似于MySQLmysqldump工具,这里要说的插件是elasticdump

导入json数据到Elasticsearch(bulk方法)
logstash导入数据到Elasticsearch

二、正文

前提: 插件使用npm安装,所以先保证本地安装有node环境,且版本要大于v8,尽量高一点就行。linux下的安装参考文档,这里只介绍windows下的安装

1、windows下安装

(1)新建文件夹elasticdump
(2)执行npm install
(3)执行 npm install elasticdump -g
(4)提示

D:\soft\node\elasticdump -> D:\soft\node\node_modules\elasticdump\bin\elasticdump
D:\soft\node\multielasticdump -> D:\soft\node\node_modules\elasticdump\bin\multielasticdump
+ elasticdump@4.7.0

2、导入数据到ES
(1)导入

elasticdump --input E:/files/es_zeusa.evony.com.accesslog/zeusa.evony.com.accesslog-2019.03.28.json --output "http://localhost:9200/zeusa.evony.com.accesslog-2019.03.28"
Wed, 17 Apr 2019 02:14:31 GMT | starting dump
Wed, 17 Apr 2019 02:14:31 GMT | got 100 objects from source file (offset: 0)
Wed, 17 Apr 2019 02:14:32 GMT | sent 100 objects to destination elasticsearch, wrote 100
Wed, 17 Apr 2019 02:14:58 GMT | Total Writes: 17041
Wed, 17 Apr 2019 02:14:58 GMT | dump complete

我这边的索引没有提前建好,只是在output中命名了一下,是它自己创建的。这里看到已经导入成功了,速度挺快的
(2)导出

elasticdump --input http://localhost:9200/zeusa.evony.com.accesslog-2019.03.28 --output  E:/files/es_zeusa.evony.com.accesslog/zeusa.evony.com.accesslog-2019.03.28.json

导入导出都差不多,input和output互换一下内容即可

三、优缺点

优点:
(1)同一份文档,用logstash导入,会报错:

Field [_type] is a metadata field and cannot be added inside a document. Use the index API request parameters.

但是用es-dump工具就不会报错。因为logstash对于导入数据的格式,命名要求更严谨一些,不允许导入的数据用ES的关键字命名。而es-dump不用担心这个
(2)导入速度方面也很快,至少在我本地导入的时候,比logstash
(3)轻量级,易上手
缺点:
(1)只是比较简单的工具,没有logstash的过滤功能

最后: 还有很多功能,请参考github上的文档,这里仅作为导入导出文件的工具使用。github官方文档:https://github.com/taskrabbit/elasticsearch-dump

end

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值