[ 구조 개괄 ]
기본적인 용어
- 문서 : 엘라스틱서치가 저장하고 색인을 생성하는 JSON 문서
- 인덱스 : 문서를 모아 놓은 단위, 인덱스 단위로 검색을 요청
- 샤드 : 인덱스는 그 내용을 여러 샤드로 분리하여 분산 저장하여 고가용성을 제공
- _id : 인덱스 내 문서에 부여되는 고유한 구분자
- 노드 : 엘라스틱서치 프로세스 하나가 노드 하나를 구성
- 노드의 역할 : 데이터노드, 마스터노드, 조정노드 등 하나의 역할을 맡아 수행
- 클러스터를 관리하는 역할을 마스터노드에서 진행
- 샤드를 보유하고 샤드에 읽기 쓰기 작업을 수행하는 노드는 데이터노드
- 클라이언트의 요청을 받아서 노드에 요청을 분배하는 노드는 조정노드

엘라스틱 클러스터

[ 내부 구조와 루씬 ]
루씬 flush
문서 색인 요청이 들어오면 루씬은 문서를 분석해서 역색인을 생성한다.
최초 메모리 버퍼에 들어가며 주기적으로 디스크에 flush한다.
루씬 commit
디스크에 파일이 기록하는 것까지 보장하지는 않으므로
fsync 시스템콜을 통해 주기적으로 싱크를 맞추는 작업을 수행한다.

세그먼트
디스크에 기록된 파일들이 모이면 세그먼트라는 단위가 된다.
루씬의 검색 대상이며 불변(immutable)인 데이터로 구성된다.
중간중간 세그먼트 병합을 수행해 검색 성능의 향상시킨다.
루씬 인덱스와 엘라스틱서치 인덱스
여러 세그먼트가 모이면 하나의 루씬 인덱스가 된다.
엘라스틱 샤드는 루씬인덱스의 래핑(wrap)한 단위이며 여러개 보이면 엘라스틱 인덱스가 된다.

'DataPipeline > Elasticsearch' 카테고리의 다른 글
| Elasticsearch 바이블 - 4장 검색 및 집계 API (0) | 2025.05.11 |
|---|---|
| Elasticsearch 바이블 - 3장 인덱스 설계 (0) | 2025.04.27 |
| Logstash - pipelines.yml을 통한 다중 파이프라인 (0) | 2024.11.26 |
| Logstash - Json, Mutate, Roby, Date (0) | 2024.11.26 |
| Logstach - dissect, grok 필터 예제 (0) | 2024.11.13 |