ElasticSearch 정리(1)

jihunnit·2024년 11월 6일
0

ElasticSearch

목록 보기
1/3
  • lucene 기반 오픈소스 검색 엔진
    (json 기반 문서 저장, 검색 및 분석)

Elastic Search 특징

  • near real time 검색
  • 클러스터 구성
    • 한 대 이상의 노드로 클러스터 구성 - 부하 분산, 장애 대응
  • 동적 스키마 생성 - 입력 데이터에 대해 스키마 생성해 줌
    • 정적 스키마도 지정 가능
  • RestAPI 기반 인터페이스

클러스터와 노드

  • 클러스터 : 노드 여러개 모여서 이룬 군집
  • 노드 종류
    • 마스터 노드 :
      • 클러스터 상태, 메타데이터 관리
      • 마스터 노드와 마스터 후보 노드로 구성
    • 데이터 노드 : 문서 색인 및 검색 처리
    • 코디네이팅 노드 : 검색 처리
    • 인제스트 노드 : 색인(저장)되는 문서의 데이터 전처리
  • 클러스터이므로 어떤 노드에 어떤 요청을 해도 응답은 동일
  • 하지만 더 최적화된 작업을 할 수 있게(본인 역할에 충실하게) 구성해야 함

인덱스와 샤드

  • 인덱스 : 문서가 저장되는 논리적인 공간

    • 인덱스 설계 (하나의 큰 인덱스 vs 여러개로 쪼갠 인덱스) 중요
      • 하나의 큰 인덱스 : 관리 리소스 적게 발생 but 쿼리와 문서가 복잡해질 가능성
      • 여러개로 쪼갠 인덱스 : 각각의 경우에 대해 최적화된 쿼리 but 관리 어려움 증대
    • 추천 -> 하나의 인덱스로 단순하게 시작하고 경우에 따라 쪼개기
  • 샤드 : 인덱스에 색인되는 문서가 저장되는 공간

    • 하나의 인덱스는 반드시 하나 이상의 샤드 갖음
    • 샤드 종류
      • 프라이머리 샤드 : 문서 저장되는 원본 샤드, 색인 및 검색 성능에 모두 영향
      • 레플리카 샤드 : 프라이머리 샤드의 복제 샤드로써 검색에 영향
        프라이머리 샤드에 문제가 생기면 프라이머리 샤드로 승격함
    • 문서들은 모든 샤드에 고르게 저장됨
    • 인덱스 생성 이후 프라이머리 샤드 갯수는 변경 불가 - 신중하게 설정
profile
인간은 노력하는 한 방황한다

0개의 댓글