반응형
Elasticsearch 주요 개념 요약
Elasticsearch는 데이터를 저장, 검색, 분석하는 분산형 검색 및 분석 엔진이다. Elasticsearch의 주요 구성 요소는 다양한 기능을 지원하고, 이를 통해 사용자는 데이터를 효율적으로 처리할 수 있다. 아래는 Elasticsearch의 주요 구성 요소와 각 구성 요소에 대한 설명이다.
1. 클러스터(Cluster)
- 정의 : 클러스터는 하나 이상의 노드(node)로 구성된 Elasticsearch의 기본 작업 단위이다. 클러스터는 데이터를 저장하고, 데이터를 색인화 및 검색하는 작업을 수행한다.
- 클러스터 이름: 클러스터는 고유한 이름을 가진다. 클러스터에 속한 모든 노드는 같은 클러스터 이름을 사용해야 한다.
- 특징 : 클러스터는 노드를 추가하거나 제거함으로써 수평적으로 확장할 수 있으며, 고가용성과 내결함성을 제공한다.
2. 노드(Node)
- 정의: 노드는 클러스터의 일부로, 데이터 저장과 검색, 분석 작업을 수행하는 물리적 또는 가상 머신이다.
- 유형:
- 마스터 노드(Master Node): 클러스터의 상태와 메타데이터를 관리하며, 클러스터 관리 작업(예: 샤드 할당, 인덱스 생성 등)을 수행한다.
- 데이터 노드(Data Node): 실제 데이터를 저장하고 CRUD(생성, 읽기, 업데이트, 삭제) 작업과 검색 쿼리를 처리한다.
- 코디네이팅 노드(Coordinating Node): 쿼리를 수신하고, 여러 데이터 노드로부터 결과를 집계하는 역할을 합니다. 일반적인 데이터 노드와 다르게 데이터를 저장하지 않는다.
- 인제스트 노드(Ingest Node): 데이터가 인덱스되기 전에 변환 및 처리 파이프라인을 실행하는 노드이다.
- 머신 러닝 노드(Machine Learning Node): 데이터의 이상 감지와 같은 머신 러닝 기능을 수행하는 노드이다.
3. 인덱스(Index)
- 정의: 인덱스는 Elasticsearch에서 데이터를 저장하는 논리적 구조입니다. 인덱스는 여러 문서(document)를 포함하며, 데이터베이스의 테이블과 유사하다.
- 구성 요소:
- 샤드(Shard): 인덱스는 여러 샤드로 분할되어 저장되며, 각 샤드는 데이터의 물리적 세그먼트이다. 샤드는 Elasticsearch의 분산 특성을 활용하여 데이터를 여러 노드에 분산 저장한다.
- 복제본(Replica): 샤드의 복사본으로, 고가용성과 데이터 복구를 위해 사용된다.
4. 문서(Document)
- 정의: 문서는 인덱스 내의 데이터 저장 단위로, JSON 형식으로 표현됩니다. 문서는 데이터베이스의 행(row)과 유사하다.
- 구성: 각 문서는 하나 이상의 필드(field)를 가지며, 각 필드는 특정한 데이터 유형을 갖는다(예: 문자열, 숫자, 날짜 등).
5. 매핑(Mapping)
- 정의: 매핑은 인덱스 내에 저장되는 문서의 구조를 정의한다. 매핑은 필드의 데이터 유형과 데이터가 어떻게 색인화될지를 설명하는 스키마이다.
- 특징:
- 정적 매핑(Static Mapping): 필드와 필드 유형을 명시적으로 정의한다.
- 동적 매핑(Dynamic Mapping): 미리 정의되지 않은 필드를 자동으로 추가하고 적절한 유형을 할당한다.
6. 샤드(Shard)와 복제본(Replica)
- 샤드(Shard):
- 정의: 샤드는 인덱스를 구성하는 기본 데이터 단위로, 물리적 세그먼트이다. 샤드는 데이터를 분할하여 저장함으로써 분산 및 병렬 처리 성능을 제공한다.
- 기능: 각 샤드는 독립적으로 색인화, 검색 및 집계 작업을 수행할 수 있다.
- 복제본(Replica):
- 정의: 복제본은 샤드의 복사본으로, 데이터의 중복 저장을 통해 고가용성과 내결함성을 제공한다.
- 기능: 복제본 샤드는 기본(primary) 샤드가 실패할 경우, 데이터의 지속성과 검색 기능을 유지한다.
7. 쿼리 DSL(Query DSL)
- 정의: Query DSL은 Elasticsearch에서 데이터를 검색하고 분석하기 위해 사용하는 도메인 특화 언어이다.
- 구성 요소:
- 매칭 쿼리(Match Query): 특정 필드에 대한 텍스트 검색을 수행한다.
- 부울 쿼리(Bool Query): 여러 조건을 조합하여 복합 검색을 수행한다.
- 범위 쿼리(Range Query): 숫자, 날짜 또는 문자열 범위를 기준으로 검색한다.
8. 집계(Aggregations)
- 정의: 집계는 데이터를 분석하고 요약 통계를 계산하는 강력한 도구입니다. 집계는 데이터의 메트릭 및 분포를 계산하는 데 사용된다.
- 유형:
- 메트릭 집계(Metric Aggregations): 수학적 계산(예: 합계, 평균, 최대값, 최소값)을 수행한다.
- 버킷 집계(Bucket Aggregations): 데이터를 그룹화한다(예: 날짜 히스토그램, 범위 기반 그룹화).
9. 분석기(Analyzer)
- 정의: 분석기는 텍스트를 인덱싱하거나 검색할 때 텍스트를 처리하는 방법을 정의합니다. 분석기는 토크나이저(tokenizer)와 토큰 필터(token filter)의 조합으로 구성됩니다.
- 기능:
- 토크나이저(Tokenizers): 텍스트를 단어 또는 문장과 같은 더 작은 단위로 분리한다.
- 토큰 필터(Token Filters): 토큰을 수정하거나 필터링한다(예: 소문자 변환, 불용어 제거 등).
10. 스냅샷 및 복구(Snapshot and Restore)
- 정의: 스냅샷은 인덱스 또는 클러스터 상태의 백업을 생성하는 기능이다. 복구는 이 스냅샷을 사용하여 데이터를 복구하는 과정이다.
- 기능: 데이터 손실을 방지하고, 클러스터를 이전 상태로 복구할 수 있다.
11. 파이프라인(Pipeline)
- 정의: 파이프라인은 데이터가 인덱스되기 전에 변환하고 처리하는 단계적 절차이다.
- 구성 요소:
- 프로세서(Processor): 데이터를 조작하는 개별 단계로, 예를 들어 데이터의 특정 필드를 수정하거나 추가할 수 있다.
12. 보안(Security)
- 정의: 보안은 Elasticsearch 클러스터와 데이터에 대한 접근을 제어하는 기능을 제공한다.
- 기능:
- 사용자 인증(Authentication): 클러스터에 접근할 수 있는 사용자를 확인한다.
- 권한 부여(Authorization): 사용자가 수행할 수 있는 작업을 제한한다.
- 암호화(Encryption): 네트워크 트래픽과 저장된 데이터를 암호화하여 보안을 강화한다.
요약
Elasticsearch는 고성능 검색 및 데이터 분석을 위해 여러 구성 요소가 유기적으로 결합된 시스템이다. 각 구성 요소는 데이터를 저장하고 처리하며, 클러스터의 내결함성과 확장성을 보장한다. 이러한 구성 요소들의 조합은 Elasticsearch를 강력하고 유연한 데이터 처리 플랫폼으로 만든다.
참조
https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro.html
반응형
'Elasticsearch' 카테고리의 다른 글
Elasticsearch - 검색(Search) #2 (0) | 2024.09.04 |
---|---|
Elasticsearch - 검색(Search) #1 (0) | 2024.09.03 |
Elasticsearch - 매핑(Mapping) (0) | 2024.09.03 |
Kibana란 무엇인가? (0) | 2024.08.27 |
Elasticsearch란 무엇인가? (0) | 2024.08.27 |