DrawingProcess
드프 DrawingProcess
DrawingProcess
전체 방문자
오늘
어제
«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
  • 분류 전체보기 (968) N
    • Profile & Branding (25)
      • Career (18)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (98) N
      • Book (67) N
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • 인생을 살면서 (64)
      • 나의 취미들 (7)
      • 나의 생각들 (42)
      • 여행을 떠나자~ (10)
      • 분기별 회고 (5)

개발자 명언

“ 매주 목요일마다 당신이 항상 하던대로 신발끈을 묶으면 신발이 폭발한다고 생각해보라.
컴퓨터를 사용할 때는 이런 일이 항상 일어나는데도 아무도 불평할 생각을 안 한다. ”

- Jef Raskin

맥의 아버지 - 애플컴퓨터의 매킨토시 프로젝트를 주도

인기 글

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
DrawingProcess

드프 DrawingProcess

[Elastic] Elasticsearch CRUD 정리: 데이터 다루기
Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)

[Elastic] Elasticsearch CRUD 정리: 데이터 다루기

2022. 7. 27. 03:21
반응형

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
    'Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)' 카테고리의 다른 글
    • [Elastic] Elasticsearch 구문 검색(_search API): 대용량 데이터를 검색하자 (feat. scroll)
    • [Elastic] Elasticsearch 구문 검색(_search API): 원하는 내용을 검색하자 (feat. dev tool(Kivana))
    • [Elastic] Elasticsearch 구문 검색: 'SQL Query' to 'Query DSL'
    • [Elastic] Elasticsearch 구문 검색(_bulk API): 여러 명령을 배치로 수행하자
    DrawingProcess
    DrawingProcess
    과정을 그리자!

    티스토리툴바