반응형
1. 데이터 제어하기
1.1 Elasticsearch 저장 구조 (RDB VS Elasticsearch)
엘라스틱서치에 데이터를 넣고 조회해보기 전에 기존의 RDB와는 다른 저장 구조를 먼저 파악해야합니다.
database | column | data | schema | |
RDB | table | column | row | schema |
Elasticsearch | index | field | Json | mapping |
- Elasticsearch는 http프로토콜을 통해 데이터를 삽입하거나 조회, 수정, 삭제 CRUD 작업을 할 수 있습니다.
- 사이트중에 http통신을 지원하는 사이트를 통해 진행하거나 크롬 확장앱인 Postman등을 사용하시면 됩니다.
- 요청하는 포멧은 아래처럼 맞춰줘야 합니다.
- http:// <IP>:<port>/<Index>/<type>/<id>
2. HTTP Method
2.1 HTTP 및 REST API 기본 개념
HTTP (HyperText Transfer Protocol)
- 클라이언트(Client): 웹 객체들을 요청하고 받아서 디스플레이 하는 브라우저.
- 서버(Server): 요청에 응답하여 객체들을 보내는 웹 서버.
- HTTP 메시지: 포멧
HTTP 요청 메시지: 예제
- HTTP 응답 메시지: 예제
RESTFul API
- URI로 자원을 기술하고 HTTP로 전송(자원을 제어)하고, 명령의 결과를 JSON, XML 등으로 응답.
- HTTP 프로토콜로 JSON 문서의 입출력과 다양한 제어.
HTTP Method | CRUD | SQL |
POST | CREATE | INSERT |
GET | READ | SELECT |
PUT | UPDATE | UPDATE |
DELETE | DELETE | DELETE |
2.2 REST API 를 활용한 데이터 제어
데이터 삽입하기(PUT)
- PUT으로 전송을 하면 아래와 같이 생성 및 여러가지 정보를 응답 받을 수 있습니다.
- 데이터를 처음 전송하면? result에는 created라고 값이 들어간 것을 볼 수 있으며,
- 데이터를 한번 더 전송하면? result에 updated라고 나오는것을 볼 수 있습니다.
- e.g.
- Kibana devtool: PUT /test/dog/1
- curl: curl -X PUT "http://localhost:9200/test/dog/1"
- result에는 created라고 값이 들어간 것을 볼 수 있습니다.
- 인덱스값으로 test가 입력되었습니다.
- 타입값으로 dog가 입력되었습니다.
데이터 조회(GET)
- GET을 통해 도큐먼트의 내용을 가져옵니다.
- e.g. GET http://localhost:9200/test/dog/1
데이터 삭제하기(DELETE)
- DELETE 메서드를 통해 삭제를 요청하면 됩니다.
- 도큐먼트나 인덱스 단위로 삭제가 가능합니다.
- e.g.
- Kibana devtool: DELETE /test/dog/1
- curl: curl -X DELETE http://localhost:9200/test/dog/1
- 먼저 id값이1이던 gamja 데이터를 삭제하며, 결과로 deleted를 받습니다.
- 또한 데이터 조회시 found속성에 false가 나오면서 찾을 수 없다는 결과를 받습니다.
데이터 요청하기 (POST)
- POST는 PUT메서드와 같이 삽입하는 기능처럼 유사하게 동작하지만 id값을 자동으로 생성시킵니다.
- PUT처럼 result속성에 created로 받았지만 id가 랜덤으로 들어간 것을 볼 수 있습니다.
- e.g.
- Kibana devtool: POST /test/dog
- curl: curl -X POST http://localhost:9200/test/dog
데이터 수정하기(_update)
- 'POST <인덱스>/_update/<도큐먼트 id>' 명령 형태를 통해 업데이트가 가능합니다.
- 해당 방법을 통해 수정시 변경할 필드명의 속성 값만 넣어주면 들어간 속성만 변경이 되며 지정자로 "doc"이 꼭 있어야합니다.
- 결과를 보면 "_version"이 1 증가한 것을 확인할 수 있습니다.
- Kibana devtool: POST test/_update/id
참고
- Elasticsearch - CRUD 진행해보기(조회, 삽입, 수정, 삭제): https://myhappyman.tistory.com/218
- 순천향대학교 elasticsearch 교육자료: http://cs.sch.ac.kr/lecture/BigData/2017/03-ElasticSearch-Introduction.pdf
- c++로 elasticsearch이용하기: https://stackoverflow.com/questions/13203436/c-api-for-elastic-search
반응형
'Study: DeveloperTools(DevTool) > DevTool: NoSQL(Elastic, Mongo)' 카테고리의 다른 글
[Elastic] Elasticsearch 구문 검색: 원하는 데이터를 삭제하자 (0) | 2022.08.03 |
---|---|
[Elastic] Elasticsearch 구문 검색(_search API): 대용량 데이터를 검색하자 (feat. scroll) (0) | 2022.08.02 |
[Elastic] Elasticsearch 구문 검색(_search API): 원하는 내용을 검색하자 (feat. dev tool(Kivana)) (0) | 2022.08.02 |
[Elastic] Elasticsearch 구문 검색: 'SQL Query' to 'Query DSL' (0) | 2022.08.02 |
[Elastic] Elasticsearch 구문 검색(_bulk API): 여러 명령을 배치로 수행하자 (0) | 2022.07.27 |