Bulk指令之批量操作

介绍

Bulk是Es官方自带的批量插入,更新或删除的命令

Bulk会把将要处理的数据载入内存中,所以数据量是有限制的,最佳的数据量不是一个确定的数值,它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载。

一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5-15MB,默认不能超过100M,可以在Es的配置文件(elasticsearch.yml)中。来修改这个值http.max_content_length: 100mb【不建议修改,太大的话bulk也会慢】

如何使用

固定格式

bulk的使用有固定的文件格式

删除格式

{ "delete" : { "_index" : "test", "_type" : "2022", "_id" : "1" } }
{ "delete" : { "_index" : "test", "_type" : "2022", "_id" : "2" } }

插入格式

第一种

{ "index" : { "_index" : "test", "_type" : "2022", "_id" : "1" } }
{ "name" : "张三" }
{ "index" : { "_index" : "test", "_type" : "2022", "_id" : "2" } }
{ "name" : "李四" }

第二种

{ "create" : { "_index" : "test", "_type" : "2022", "_id" : "1" } }
{ "name" : "张三" }
{ "create" : { "_index" : "test", "_type" : "2022", "_id" : "2" } }
{ "name" : "李四" }

更新格式

{ "update" : {"_id" : "1", "_type" : "2022", "_index" : "test"} }
{ "doc" : {"name" : "王五"} }
{ "update" : {"_id" : "2", "_type" : "2022", "_index" : "test"} }
{ "doc" : {"name" : "赵六"} }

总结一下上面的格式,一般完整的一条数据是由两行构成(删除除外),并且各行之间有换行符,第一行一般是定位这条doc,第二条一般是数据,并且导入文件最后一行可能需要换行符

具体实操

curl -H 'Content-Type:application/json' -XPOST 'http://ip:port_bulk?pretty' --data-binary @json文件

插入数据

Bulk指令之批量操作_第1张图片

删除数据

Bulk指令之批量操作_第2张图片

修改数据

Bulk指令之批量操作_第3张图片

你可能感兴趣的:(#,elasticsearch,elk)