IT/Elasticsearch

[Elasticsearch] 2. 데이터 처리

snapcoder 2023. 11. 28. 15:31
728x90
반응형
SMALL

📌 REST API

- RESTFul 하지 않은 시스템에서의 데이터 처리 예시
   ㅇ 입력 : http://user.com/input.jsp?name=kim&age=38&gender=m
   ㅇ 조회 : http://user.com/get.jsp?name=kim
   ㅇ 삭제 : http://user.com/delete.jsp?name=kim

 

※ REST API를 지원하는 시스템은 kim 이라는 사용자에 대해 항상 단일 URL로 접근을 하고 PUT, GET, DELETE 같은 http 메서드로 데이터를 처리합니다


- RESTFul 한 시스템에서의 데이터 처리 예시
   ㅇ 입력 : PUT http://user.com/kim -d {"name":"kim", "age":38, "gender":"m"}
   ㅇ 조회 : GET http://user.com/kim
   ㅇ 삭제 : DELETE http://user.com/kim

 

 

 

📌 유닉스 curl

- MacOS, 리눅스와 같은 유닉스 기반 운영체제에서는 curl 명령어로 간편하게 REST API 사용 가능

- curl 명령로 elasticsearch 클러스터의 최상위 경로를 호출하면 아래처럼 출력됨

   (클러스터의 상태 정보인 노드명, 클러스터명, Elasticsearch 버전, 루씬 버전 등이 json 형식으로 리턴됩니다. )

출력 예시

 

 

📌 Kibana Dev Tools

- Kibana에는 Elasticsearch 에서 REST API를 간편하게 실행할 수 있는 Dev Tools 라는 도구를 제공함.

Kibana 의 Dev Tools 메뉴

 

 

 

📌 CRUD - 입력, 조회, 수정, 삭제

- 도큐먼트 접근 URL "http://<호스트>:<포트>/<인덱스>/_doc/<도큐먼트 id>"

- 6.x 이전 까지는 "http://<호스트>:<포트>/<인덱스>/<도큐먼트 타입>/<도큐먼트 id>" 로 사용했음

curl 도구를 이용해서 my_index 인덱스에 도큐먼트 id가 1인 데이터를 입력하는 예제

 

 

- 입력 (PUT + _doc) : 덮어쓰기

 

 

- 입력 (PUT + _create) : 신규입력만 허용

캡쳐 생략

 

 

- 조회 (GET)

 

 

- 삭제 (DELETE) : 도큐먼트 삭제

 

 

도큐먼트는 삭제되었지만 인덱스는 남아있는 경우의 도큐먼트 조회(GET my_index/_doc/1) 결과 >&nbsp; "found" : false

 

 

- 삭제 (DELETE) : 인덱스 삭제

삭제된 인덱스 또는 처음부터 없는 인덱스의 도큐먼트 조회(GET my_index/_doc/1) 결과 >&nbsp;"type" : "index_not_found_exception"

 

 

- 수정 (POST + _doc)

   ㅇ PUT 메서드와 유사하게 데이터 입력도 가능

   ㅇ POST 메서드로 <인덱스>/_doc 까지만 입력하게 되면, 자동으로 임의의 도큐먼트id 가 생성됨

      ※ 도큐먼트id의 자동 생성은 PUT 메서드로는 동작하지 않음

도큐먼트 id "_id" : "ZuFv12wBspWtEG13dOut" 가 자동 생성

 

 

 

- 수정 (POST + _update) : 필드가 여럿 있는 도큐먼트에서 특정 필드만 내용 업데이트

message 필드 업데이트 후 도큐먼트 조회(POST my_index/_update/1) > "_version" : 2 로 버전이 증가한 것 확인&nbsp; (_update API 를 사용해서 단일 필드만 수정하는 경우에도 실제로 내부에서는 도큐먼트 전체 내용을 가져와서 _doc 에서 지정한 내용을 변경한 새 도큐먼트를 만든 뒤 전체 내용을 다시 PUT 으로 입력하는 작업을 진행함)

 

 

 

📌 참고자료

- Elastic 가이드 북 링크 : 4.2 CRUD - 입력, 조회, 수정, 삭제

- 이전 게시글 : [Elastic Search] 1. 개념 간단히 이해하기

- 다음 게시글 : [Elastic Search] 3. 벌크 API - _bulk API

728x90
반응형
LIST