ElasticStack - Bulk API

정명진·2023년 2월 15일
0

이번 사이드프로젝트를 진행하며 ElasticSearch를 사용해 실시간 검색어를 구현하게 되었다. 이 과정에서 ElasticSearch에 흥미를 느껴 책 한권을 사 공부중이다.

공부를 하며 배우는점을 정리하는 글을 쓰겠다.

BULK API

Bulk API란 20번 호출할 일을 1번의 호출로 해결하는 한번에 처리하는 방식을 의미한다. API 콜을 줄여서 경제적이고 성능이 더 빠르다는 장점이 있다. 그러나 주의해야하는 점이 있다.
Bulk API를 사용할때 데이터는 NDJSON 형태여야만 한다. 즉 Pretty 방식의 JSON은 작동하지 않는다는 사실을 주의해야한다.

실제로 다음과 같이 사용이 가능하다.

POST _bulk
{"index": {"_index": "index2", "_id": "6"}}
{"name":"hong", "age": 10, "gender": "female"}
{"index": {"_index": "index2", "_id": "7"}}
{"name":"choi", "age": 90, "gender": "male"}

# result
{
  "took" : 68,
  "errors" : false,
  "items" : [
    {
      "index" : {
        "_index" : "index2",
        "_type" : "_doc",
        "_id" : "6",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 3,
        "_primary_term" : 1,
        "status" : 201
      }
    },
    {
      "index" : {
        "_index" : "index2",
        "_type" : "_doc",
        "_id" : "7",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 4,
        "_primary_term" : 1,
        "status" : 201
      }
    }
  ]
}
profile
개발자로 입사했지만 정체성을 잃어가는중... 다시 준비 시작이다..

0개의 댓글