背景
如果在数据量小的情况下,比如我们消费Kafka的数据到ElasticSearch,逐条消费和逐条写入,这样是没问题的。但是随着数据量越来越大的话,为了提高插入效率,我们就需要批量插入了。
官网
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html#docs-bulk-api-request
实践
vi requests.json
{
"index": {
"_index": "test"
}
}
{
"price": 10,
"productID": "1111"
}
{
"index": {
"_index": "test"
}
}
{
"price": 20,
"productID": "1112"
}
{
"index": {
"_index": "test",
"_id": "13"
}
}
{
"price": 30,
"productID": "1113"
}
{
"index": {
"_index": "test",
"_id": "14"
}
}
{
"price": 40,
"productID": "1114"
}
Console执行命令:
curl -s -u elastic:pass -PUT 'zz.cn:9200/_bulk' --data-binary @requests.json;
## 或者
curl -s -u elastic:pass -XPOST 'zz.cn:9200/_bulk' --data-binary @requests;