开发者学堂课程【ElasticSearch 入门精讲:ES 批量操作-bullk】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/631/detail/9958
ES 批量操作-bullk
Bullk 指的是将一个文件中的一系列索引信息批处理,速度呢也是快很多;
怎么来进行一个批量的操作呢?
这里有相应的现象:
比如将指定文件的信息批量保存到我们指定的索引库服务器里面去处理:
curl-XPGTS‘http//localhost:9200/bank/accout/bullk? Pretty’--- data-binary
“@data/accounts.josn”
@定位到 josn 模式的格式;
成功后便是这样:
accounts 数据说明.txt
银行客户账号信息文档,文档 schema 如下
{
“Accounts number”:0 银行账户编号
“balance”:16623 银行账户余额
“fistanme”: “Bradshawa”
“lastname”:Mckenize”
“age”:29
“gerrder”:”F”
“ADDRESS’ 籍贯
“employer”: 职务
“city”: 城市
“state”: 州
}
批量操作:
案例⑩
步骤:
①新建名为 bank 的索引库
②将待处理的数据上传到 linux 指定目录下,上传成功后进行操作
③进行批量录入操作,按照以下格式导入:
Cturl -H“Content-Type:application/json”-XPOST”
http://JANSON01:9200/bank/account/
bullk’--data-binary@/home/Milk/data/accounts.json
(merry表示创建失败,成功后便会反馈给客户端,这时候可以查询一下:
XGET’http://JANSON01:9200/bank/accout/seach?Pretty’
会分页的形式表现出来。
批量处理注意点说明:
(a)Bullk 请求可以在 URL 中声明_index或者_index/_type
(b)Bullk 一次最大处理多少数据量
Bullk会把将要处理的数据载入内存中,所以数据量是有限制的
最佳的数据量不是一个确定的数值,它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载。
一般建议是1000~5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5~15MB,默认不能超过100M,可以在ES的配置文件中修改这个值。
http.max_content_length:100mb
(c)灵活使用批处理操作,会大幅度提高程序执行的效率,但是,批处理操作的数据量有一个临界值的,不是没有极限的!
补充说明:
可以查看一下各个索引库信息,可以尝试一下
curl 'httplljanson019200/ catindices?v
【root@JANSONO1~】# curl 'httpilianson019200/cat/indicesγ'health status index uuid
yellow open bigdata Np2WkyQQeqtNyzOug8cOA
yellow open bank yrks XUdSJWJZgOlbt0GkQ
ElasticSearch 的集群状态∶
docs.count docsdeleted store.size 1000 rep
pri.store.size
pri
19.2kb 19.2kb 482.7kb
482.7kb
Green∶ 所有的主分片和副分片都可用(主分片∶es集群中主节点上的分片;副分片∶es集群中从节点上的分片)
Yellow ∶所有的主分片都可用,不是所有的副分片都可用
Red∶ 不是所有的主分片和副分片都可用