Elastic Search

유수민·2022년 9월 5일
0

지식창고

목록 보기
52/64

📌Elastic Search란?

  • 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 검색 및 분석 엔진
  • Apache Lucene(아파치 루씬) 기반의 java 오픈소스 분산 검색 엔진
  • 방대한 양의 데이터를 신속하고 거의 실시간으로 저장, 검색, 분석한다.
  • Log 및 데이터 분석 도구인 ELK 중 E에 해당한다.
    • 분석 및 저장 기능을 담당한다.
    • Logstatsh로 부터 받은 데이터를 검색 및 집계를 하여 필요한 관심 있는 정보를 획득한다.

📌장단점

📖장점

  • 샤드를 통해 규모가 수평적으로 늘어날 수 있다. (Scale out)
  • Replica를 통해 데이터의 안전성을 보장한다. (고가용성)
  • Json 문서를 통해 데이터 검색을 수행하므로 스키마 개념이 없다.
  • 데이터 CRUD 작업은 HTTP Restful API를 통해 수행한다.

📖단점

  • elasticsearch는 인메모리 버퍼를 사용하므로 쓰기와 동시에 읽기 작업을 할 경우, 세그먼트가 생성되기 전까지는 해당 데이터를 검색할 수 없다.
  • 트랜잭션을 지원하지 않는다.
  • 진정한 의미의 업데이트를 지원하지 않는다.
    • 세그먼트에서 데이터가 삭제될 경우 Soft-Delete를 한다. (삭제 flag = true)
    • 세그먼트에서 데이터가 수정될 경우 Soft-Delete를 하고, 수정된 데이터를 새로운 세그먼트로 생성한다.

📌비교

📖 Elasticsearch vs RDBMS vs MongoDB

📚Elasticserarch의 특징

1) Elasticsearch는 JSON 문서로 비교적 복잡한 데이터 구조로 저장한다.
2) 인덱스는 최적화 된 문서의 모음으로 생각될 수 있으며 각 문서는 데이터를 포함하는 키-값(key-value) 쌍인 필드의 모음이다.
3) 기본적으로 Elasticsearch는 모든 필드의 모든 데이터를 인덱싱하고 각 인덱싱 된 필드에는 최적화 된 전용 데이터 구조가 존재한다.→ Elasticsearch가 매우 빠른 이유

📖 Elasticsearch vs RDBMS

📚차이점

  • RDBMS : 하나의 데이터베이스에 여러 테이블을 가진다.
  • Elasticsearch : 7.0 이상부터는 하나의 인덱스에는 하나의 타입만 가질 수 있도록 바뀌었다.

📖 CRUD vs Elasticsearch vs RDBMS

Elasticsearch도 클러스터 상태 확인, 인덱스에 대한 CRUD(생성, 읽기, 업데이트 삭제) 및 검색 작업 실행, 필터링 및 집계 같은 고급 검색 작업 수행을 위해 REST API를 제공한다.

📌 사용처

  • 애플리케이션 검색
  • 웹사이트 검색
  • 엔터프라이즈 검색
  • 로깅과 로그 분석
  • 보안 분석
  • 비즈니스 분석

참고 )
https://neulpeumbomin.tistory.com/19?category=999563
https://steady-coding.tistory.com/573

profile
배우는 것이 즐겁다!

0개의 댓글