- 일래스틱서치와 같은 도큐먼트 지향 저장소는 데이터의 추상적 개념을 사용한다.
- 인덱스
- 타입
- 도큐먼트
- 클러스터
- 노드
- 샤드 및 복제본
- 매핑 및 타입
- 역색인
- 인덱스 : 단일 타입의 도큐먼트를 저장하고 관리하는 컨테이너이다. / 관계형 데이터베이스의 데이터베이스 스키마와 거의 유사하다.
- 일래스틱서치에서 타입은 테이블, 도큐먼트는 테이블 레코드와 같다.
- 일래스틱서치 6.0 이전 버전에서는 단일 인덱스에 여러 타입을 포함할 수 있었다. 6.0버전 부터는 인덱스에는 단 하나의 타입만 가질 수 있도록 변경됐다.
- 타입 : 논리적으로 인덱스 내에 같은 도큐먼트 종류를 그룹화하고 구성하는 데 유용하다.
- 도큐먼트 : JSON 도큐먼트는 일래스틱서치에서 일급 객체로 취급된다. / 도큐먼트는 인덱스와 타입 안에 포함된다.
- 노드 : 모든 일래스틱서치 노드는 시작할 때 고유 ID와 이름이 지정된다. config/elasticsearch.yml 환경 설정 파일에서 node.name 변수를 사용해 고정된 이름을 지정할 수도 있다. 노드는 가장 낮은 레벨에서 일래스틱서치 프로세스의 단일 인스턴스로 데이터 공유를 담당한다.
- 모든 일래스틱서치 노드 또는 인스턴스는 config라는 하위 디렉터리에 위치한 기본 환경 설정 파일을 갖고 있다. 파일은 “YML은 마크업 언어가 아니다”를 의미하는 YML(YAML Ain’t Markup Language)형식으로 작성한다. 환경 설정 파일을 사용해 노드 이름과 포트, 클러스터 이름 등 기본값을 변경할 수 있다.
- 샤드 : 클러스터에서 인덱스를 분배하고 단일 인덱스의 도큐먼트를 여러 노드로 분할하는 데 사용한다.
- 샤드에 위치한 데이터를 분할하는 과정을 샤딩이라고 한다. 샤딩은 일래스틱서치에 내장된 고유 기능이며 다음과 같이 확장 및 병렬화 기능을 담당한다.
- 클러스터에 위치한 여러 노드의 저장소 활용을 돕는다.
- 클러스터에 위치한 여러 노드의 처리 능력 활용을 돕는다.
- 기본적으로 모든 일래스틱서치에서 5개의 샤드를 갖도록 구성된다. 인덱스 생성 시점에 인덱스의 데이터를 나눌 샤드 개수를 지정할 수 있다. 인덱스를 생성하고 나면 샤드 개수는 변경 할 수 없다.
- 주 샤드는 녹색, 복제본은 노란색으로 표시한다. 노드1에 장애가 발생하더라도 노드2와 노드3이 사용할 수 있는 모든 샤드를 갖고 있다.
- 복제본은 고가용성 및 장애 조치 기능 외에도 쿼리 작업을 수행 할 수 있다.
- 주 샤드의 복제본을 통해 고가용성과 장애 조치를 지원한다.
- 샤드에 위치한 데이터를 분할하는 과정을 샤딩이라고 한다. 샤딩은 일래스틱서치에 내장된 고유 기능이며 다음과 같이 확장 및 병렬화 기능을 담당한다.
- 매핑 및 타입
- 일래스틱서치는 스키마가 존재하지 않는다. 즉, 필드와 필드 타입이 없어도 얼마든지 도큐먼트를 저장할 수 있다.
- 역색인 : 일래스틱서치와 전문 텍스트 검색을 지원하는 시스템에서 핵심 데이터 구조 / 책의 끝에 나오는 색인 목록과 유사
- 색인 API : 인덱스 내에서 타입에 도큐먼트를 추가하거나 생성하는 작업을 색인 연산 이라고 한다.
- 관계형데이터베이스가 일반적인 CRUD 연산에 적합한 B-트리를 만들고 관리하는 것과 달리, 일래스틱서치는 아파치 루씬 기능을 사용해 역색인이라는 완전히 다른 데이터 구조로 데이터를 관리하다는 점을 명심하자.
'Engineering WIKI > Book' 카테고리의 다른 글
기초부터 다지는 엘라스틱서치 운영 (5장) / ElasticSearch 클러스터 구축 (36) | 2024.03.28 |
---|---|
기초부터 다지는 엘라스틱서치 운영 (3 ~ 4장) / 모니터링 및 기본개념 (112) | 2023.09.29 |
[일래스틱 스택 6 입문] 3장. 유사도 검색 (84) | 2023.09.17 |
기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작 (58) | 2023.09.07 |
[일래스틱 스택 6 입문] 1장. 일래스틱 소개 (1) | 2023.08.22 |
리팩토링 2판 - Chapter 11 (API 리팩터링) (0) | 2022.10.20 |
리팩토링 2판 - Chapter 10 (조건부 로직 간소화) (0) | 2022.10.20 |
리팩토링 2판 - Chapter 9 (데이터 조직화) (0) | 2022.10.20 |