[Batch Processing]
개별 document를 index, update, delete하기 위하여 elasticsearch는 _bulk API를 통해서 batch로 위의 작업을 수행할 수 있는 기능을 제공한다. 이 기능은 가능한 한 적은 network roundtrip (왕복)으로 가능한 빠르게 여러 작업을 효율적으로 수행하기 위한 메커니즘을 제공하는데 중요하다.
빠른 예제로, 다음 예제는 2개의 document를 하나의 bulk 작업으로 index한다. (ID 1 : John Doe, ID 2 : Jane Doe)
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"name": "John Doe"
}
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'
다음 예제는 ID 1인 첫번째 document를 업데이트하고, ID 2인 두번째 document를 삭제하는 하나의 bulk operation이다.
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d '
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" }
}
{"delete":{"_id":"2"}}
'
위의 delete action에 대하여 삭제할 document의 ID만 필요하고, source document에 대한 다른 내용이 없음을 주목하라.
Bulk API는 순차적으로 모든 action을 실행한다. 어떤 이유에서건 하나의 action이 실패하면 그 다음에 남아 있는 operation을 계속해서 진행한다. Bulk API는 작업이 완료되면, 각 action에 대한 status를 제공한다. 따라서, 어느 action이 성공하고 실패했는지 알 수 있다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/697