Elastic Search

엘라스틱 서치 Elasticsearch 단위

이소금 2020. 4. 9. 15:48
반응형

엘라스틱서치는 REST API를 이용한 http 통신을 통해서 데이터를 처리합니다. 그렇기 때문에 http 메소드인 PUT/POST/GET/DELETE를 이용해서 문서를 입력, 조회, 삭제할 수 있습니다. 그래서 API를 호출할 때 다른 HTTP 클라이언트를 사용해도 가능합니다. 

HTTP CRUD SQL
GET Read Select
PUT Update Update
POST Create Insert
DELETE Delete Delete

 

Relational DB Elasticsearch
데이터베이스(DB) 타입(Type)
테이블(Table) 인덱스(Index)
열(Row) 문서(Document)
행(Column) 필드(Field)
스키마(Schema) 매핑(Mapping)

 

엘라스틱서치의 단위

클러스터 Cluster

  • 엘라스틱 서치 시스템의 가장 큰 단위
  • 연관이 있는 node의 묶음
  • 각 클러스터는 독립적이나 보통 하나면 충분
  • node를 생성하면 클러스터는 자동생성 혹은 이미 존재하는 클러스터에 귀속
  • node는 항상 클러스터에 귀속되어야 한다
  • 클러스터 하나에 노드 하나도 존재 가능하나 유효성과 확장성에 문제가 생김
  • 무한으로 확장 가능 -> 확장성 Scalability

노드 Node

  • 데이터를 저장하는 엘라스틱 서치의 인스턴스
  • 원하는 만큼 생성 가능하고 데이터를 각각 저장할 수 있음
  • 각각의 node는 데이터의 부분들을 저장 -> 이런 방식으로 가상머신이나 하드웨어에 저장함으로써 데이터를 원하는만큼 용량 크기에 상관없이 저장 가능 
  • node를 각각 다른 환경에서 구현 가능: 컨테이너, 가상머신, 하드웨어에 저장
    • master node: 클러스터 안의 노드 중 하나가 대표로 master node가 될 수 있음
      • master node는 index를 생성하고 삭제할 수 있음
      • 후보 node들 중 하나가 투표로 선정됨
      • 클러스터의 사이즈가 커질수록 master node의 중요도가 커짐 -> 클러스터의 안정화
    • data role:데이터를 저장하는 node
      • 데이터의 저장은 곧 쿼리
      • 소-중 사이즈의 클러스터에서는 꼭 필요함
      • data role이 활성화 되어있지 않으면 node는 shard를 저장하지 않음
      • 클러스터의 사이즈가 커지면 master node 권장
      • CRUD, 검색, 집합(aggregation)에 관련된 데이터를 다룸
    • ingest node (흡수)
      • Ingest pipeline을 문서에 적용할 수 있게함
        • ingest pipeline: 문서 document를 인덱싱 할 때 진행되는 일련의 과정(=프로세서)
        • ingest란? document를 index에 넣는 것
    • Tribe node
      • tribe를 통해 구성되는 노드

인덱스 Indices 

  • 데이터를 저장 및 색인 Index 하는 곳
  • 인덱스는 여러 노드에 분산되어 저장, 관리 -> 분산 처리의 장점
  • document는 index 안에 저장
  • 비슷한 특성의 로직끼리 묶인 document의 묶음
  • index는 저장 수 제한 없음
  • 검색 쿼리는 index 기반으로 한다

샤드 Shard

  • Index를 작은 단위로 분할한 단위
  • index가 저장할 수 있는 document의 수를 늘려줌
  • 독립적임, 각각 완전한 기능을 함
  • 정해진 사이즈가 없음
  • 기본값으로 index는 하나의 shard를 가짐
    • 인덱스 사이즈가 증가할 경우 여러개의 물리서버에 나누어 보관하기 위해 여러개의 샤드로 구성함
  • index 생성 후에 shard 갯수를 바꿀 수 없음
    • index 생성 시에만 shard 갯수 지정 가능

복제 Replication

  • 데이터가 저장된 하드드라이브는 데이터의 유실 가능성이 있음
  • 엘라스틱서치는 결함 내성을 위한 복제 체계를 가지고 있음 (Replica)
    • Fault Tolerance 결함 내성: 시스템의 결함이 고장로 이어지지 않게 해줌
  • Shard의 카피 = Replica shard
  • 오리지널 shard  = primary shard
    • 복제 shard는 primary shard와 같은 공간에 존재하지 않음 = 유실 최소화의 목적

문서 Document

  • 데이터 유닛
  • JSON File

 

반응형