bulk es 删除_es数据导出导入(bulk篇)

本文介绍了Elasticsearch的bulk API用于批量创建、更新和删除数据的原理,并详细讲解了elasticsearch-tools工具的使用,包括导出mapping、导入mapping、导出bulk数据和导入bulk数据的步骤,以及如何处理score字段。该工具适用于Elasticsearch的数据迁移和批量处理场景。
摘要由CSDN通过智能技术生成

1.bulk是什么?

bulk是可以通过API批量执行创建索引,新增数据,更新数据和删除数据到elasticsearch。

POST _bulk

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }

{ "field1" : "value1" }

{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }

{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }

{ "field1" : "value3" }

{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "test"} }

{ "doc" : {"field2" : "value2"} }

从上面的代码可以看出,每一条处理记录包含两行(delete除外),第一行是要执行的动作是什么和要操作的索引,类型,ID;第二行是具体操作的操作数据。

2.bulk的注意事项

因为是使用REST API进行数据的提交,因此一次处理的文件大小不宜过大,建议在20MB一下。

3.elasticsearch-tools

3.1官方网站

3.2安装步骤

elasticsearch-tools依赖nodejs

[root@cloud14 ~]# yum -y install npm

//如果出现no package npm available问题

//执行 rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@cloud14 ~]# npm install -g elasticsearch-tools

3.3导出mapping

es-export-mappings --url http://172.16.12.53:9200 --index user_index --file /root/user.mapping.json

3.4导入mapping

es-import-mappings --url http://192.168.22.189:9200 --file ~/user.mapping.json

3.5导出bulk

es-export-bulk --url http://172.16.12.53:9200 --index user_index --file ~/user.bulk.json --body '{"query":{"range":{"loginTime":{"gte":"2017-02-28T00:00:00.000Z","lte":"2017-03-01T00:00:00.000Z"}}}}'

3.6导入bulk

es-import-bulk --url http://192.168.22.189:9200 --file ~/user.bulk.json

3.7score字段处理

因为使用query的查询条件,每一条记录的第一行都会有score字段

{"index":{"_index":"user_index","_type":"user","_id":"145111327","_score":0}}

可以使用sed进行正则匹配和替换

sed -i 's/,"_score":0//g' `grep -rl ',"_score":0' ~/user.bulk.json`

3.8总结

elasticsearch-tools的官方提供了大量的配置参数,可以基本满足简单的导出导入功能.

同时经过测试发现,elasticsearch-tools的导入功能对bulk文件大小也没有限制,因为它默认每次提交20000行.

如果你需要GB级的数据导入导出,那么推荐你使用elasticsearch-tools.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值