로컬에서는 잘 되는데 ☘️

[ElasticSearch] 데이터 벌크(Bulk)

by youngjun._.


실습 환경

  • 💡 Elasticsearch 7.9.0
  • 💡 Windows 10
  • 💡 Git Bash

Bulk는 간단히 설명하면 여러개의 Document(데이터)를 한번에 ES에 삽입하는 방법이다.

1. BULK POST

명령어 구조는 다음과 같다.

curl -XPOST "/ES주소/"_bulk --data-binary @"file명".json

실제로 사용해보자.

삽입하고자 하는 Document 내용을 JSON file에서 확인해보면

  • 첫 번째 Line : Meta information
  • 두 번째 Line : 실제 들어갈 값
{ "index" : { "_index" : "classes", "_type" : "class", "_id" : "1" } }
{"title" : "Machine Learning","Professor" : "YoungJun Park","major" : "Computer Science","semester" : ["spring", "fall"],"student_count" : 100,"unit" : 3,"rating" : 5, "submit_date" : "2020-01-02", "school_location" : {"lat" : 36.00, "lon" : -120.00}}

이렇게 2 Line 씩 반복되는 포맷이 저장되어있다.

POST 명령어로 삽입해보자.

$ curl -XPOST http://localhost:9200/_bulk?pretty --data-binary @classes.json -H 'Content-Type: application/json'

만약 Bulk Request Error가 발생한다면 JSON file 마지막에 엔터를 입력해 New Line을 입력해주면 된다.

잘 들어갔는지 1번 id부터 확인해보자.

$ curl -XGET http://localhost:9200/classes/class/1/?pretty

결과

{
  "_index" : "classes",
  "_type" : "class",
  "_id" : "1",
  "_version" : 7,
  "_seq_no" : 6,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "title" : "Machine Learning",
    "Professor" : "YoungJun Park",
    "major" : "Computer Science",
    "semester" : [
      "spring",
      "fall"
    ],
    "student_count" : 100,
    "unit" : 3,
    "rating" : 5,
    "submit_date" : "2020-01-02",
    "school_location" : {
      "lat" : 36.0,
      "lon" : -120.0
    }
  }
}

2번 id도 확인해보면

$ curl -XGET http://localhost:9200/classes/class/2/?pretty

결과

{
  "_index" : "classes",
  "_type" : "class",
  "_id" : "2",
  "_version" : 1,
  "_seq_no" : 7,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "title" : "Network",
    "Professor" : "YoungJun Park",
    "major" : "Computer Science",
    "semester" : [
      "fall"
    ],
    "student_count" : 50,
    "unit" : 3,
    "rating" : 4,
    "submit_date" : "2020-02-02",
    "school_location" : {
      "lat" : 36.0,
      "lon" : -120.0
    }
  }
}

잘 삽입된 것을 확인할 수 있다.


블로그의 정보

개발하는만두

youngjun._.

활동하기