Elasticsearch는 http프로토콜로 접근이 가능한 REST API를 지원하는 RESTFul 시스템
자원별로 고유 URL로 접근 가능하다.
PostMan, curl, Kibana 등등을 통해 쿼리 요청을 보낼 수 있다.
CRUD
request body의 "id" 와 "name" : 임의로 설정한 field 명
Index는 매핑(mapping)과 설정(settings) 을 통해 구조와 설정을 정의한다.
index는 RDBMS의 테이블같은 개념이다.
Document는 JSON 형식으로 표현되며, 인덱스에 저장되는 각각의 데이터 항목이다.
RDBMS의 "행(row)" 또는 "레코드(record)"에 해당
{"id" : "tester" , "name" : "kim"} : json 형식의 doc 데이터이다.
id와 name은 각각의 field이며,
Field는 RDBMS의 column에 해당한다.
ip는 request를 받을 host의 ip이며, port는 elasticsearch 가 사용하는 port를 기입하면 된다. (default 9200)
localhost의 경우 http://127.0.0.1:9200/~~ 식으로 요청을 보낸다.
생성
인덱스 생성
PUT http://ip:port/<index>
<index> 에 기입한 이름을 가진 index를 생성한다.
document 생성
(URL)
POST http://ip:port/<index>/_doc/<doc_id>
(body)
{
"id" : "tester",
"name" = "kim"
}
(URL)
PUT http://ip:port/<index>/_create/<doc_id>
(body)
{
"id" : "tester",
"name" = "kim"
}
인덱스에 두가지 field를 가진 id는 tester이고 name은 kim 인 document를 생성한다.
URL에 들어있는 <doc_id>와 , body에 담아서 보낸 field의 "id" 는 완전히 다르다.
id 미지정 시 elasticsearch에서 자동으로 부여한다.
검색은 <doc_id> 기준으로 이뤄지고 "id" 는 index가 가진 필드의 이름이다.
PUT메소드에 _create 옵션을 주어도 데이터 생성이 가능하다.
PUT메소드에 -create 옵션 지정 시 새로운 document만 유효한 요청으로 받아들여진다. (데이터 수정 방지)
검색
GET http://ip:port/<index>/_doc/<doc_id>
쿼리에 기입한 인덱스에, tester라는 id를 가진 document를 검색한다.
수정
(URL)
PUT http://ip:port/<index>/_doc/<doc_id>
(body)
{
"id":"tester",
"name":"park"
}
쿼리에 기입한 인덱스에, <doc_id> 에 해당하는 document를 body에 담긴 document로 수정한다.
삭제
index 삭제
DELETE http://ip:port/<index>
쿼리에 기입한 인덱스를 삭제한다.
document 삭제
DELETE http://ip:port/<index>/<doc_id>
쿼리에 기입한 인덱스에, <doc_id>에 해당하는 document를 삭제한다.
'ELK stack' 카테고리의 다른 글
[ELK-JDBC-MySQL] ELK와 MySQL 연결 (ubuntu server) (0) | 2024.07.25 |
---|---|
[ELK Stack] 데이터 파이프라인 구축 (Linux) (0) | 2024.07.19 |
[ELK stack] 데이터 파이프라인 구축 (window) (0) | 2024.07.19 |
[ELK stack] Window 로컬 환경 구축 및 실습 (0) | 2024.07.16 |