Storage

elasticsearch 기본 개념

Prower 2022. 8. 20. 04:36
728x90
반응형

elasticsearch

  • 오픈소스 풀텍스트 검색 및 분석 엔진
  • 방대한 양의 데이터를 거의 실시간으로 저장, 검색, 분석할 수 있도록 지원하는 검색 엔진
  • 복잡한 검색 기능이 포함되어야 하는 어플리케이션에 사용

사용 예시

  • 자동완성 검색
  • 초성검색
  • 부분일치
  • 한영 변환
  • 오타 검색어 제안

역인덱스

  • elasticsearch는 저장, 검색, 분석에 특화된 저장소로 볼 수 있다.
  • 특히 방대한 양의 데이터에 대해서 거의 실시간으로 검색이 가능한데 이걸 가능하게 하는게 역인덱스(inverted index) 구조이다.
  • 역인덱스: 단어나 숫자 같은 정보에 대한 정보를 분할하여 매핑 정보를 저장하는 구조
    • 매핑정보를 통해 해쉬 테이블 방식으로 저장되어 검색하는데 O(1)의 시간이 소요된다.
  • elasticsearch는 예시의 문장을 다음과 같이 분할하여 저장한다.

역인덱스 예시

RDB

id text

1 오늘은 TIL을 적는다.
2 TIL 내용은 elasticsearch
3 elasticsearch에 대해 조사한다.

elasticsearch

token id

TIL 1,2
elasticsearch 2,3
오늘 1
조사 3
내용 2

여기서 text의 각단어에 대한 매핑 정보(id)를 저장하여 검색을 더 빠르게 한다.

구조

ref. https://nidhig631.medium.com/primary-shards-replica-shards-in-elasticsearch-269343324f86

document

  • elasticsearch에서 정보가 저장된 기본 단위.
    • rdb에서 각 row에 비유할 수 있다.
  • json형식으로 key - value 형태로 구성된다.

기본 정보

  • document에는 document에 대한 정보를 담고 있는 metadata가 포함되어 있다.
    • _index: document가 저장된 index
    • _type: document의 유형
    • _id: document를 식별하는 고유값

type

  • document를 유형별로 모아놓은 집합
    • rdb에서 테이블에 비유할수 있다.

index

  • elasticsearch의 가장 큰 데이터 단위. document를 모아놓은 집합
    • rdb에서 데이터베이스에 비유할 수 있다.

유형

  • index는 다음의 두가지 유형으로 분류할 수 있다.
  • shard: index의 데이터를 분산하여 저장한 조각
    • index 내부에서 document 생성에는 제한이 없으므로 node의 저장 한계 초과할 수도 있다.
    • 이런 경우 단일 node에서 수용하지 못하거나 검색 성능에 문제가 발생할 수 있으므로 index의 데이터를 shard로 분산하여 저장
  • replicas: shard를 복제한 데이터
    • node에 문제가 발생할 경우 백업용으로 사용
    • 가용성을 위해 원본 shard와 같은 node에 위치시킬 수 없다.

node

  • elasticsearch에서 데이터 저장, 인덱싱 등의 역할을 수행하는 elasticsearch의 인스턴스
  • node는 다음의 4가지 유형으로 나뉘어 각 역할을 수행한다.

유형

  • data node: 데이터 저장, 검색, 인덱싱 등 데이터 관련 역할
  • master node: node 추가, 제거 등 전체 node에 대한 관리 역할
  • ingestion node: 데이터를 인덱싱 하기 전 document를 전처리 하는 역할
  • machine learning node: 머신러닝 역할 수행

cluster

  • elasticsearch 기능을 수행하기 위한 여러개의 node의 집합
  • cluster는 최소 한개 이상의 node로 구성되어야 하며, 해당 node는 master node 여야 함

ref.

https://idea-sketch.tistory.com/59#recentComments

https://esbook.kimjmin.net/03-cluster

https://seungwoolog.tistory.com/m/99

728x90
반응형