🔎 Elasticsearch란?

정의

Elasticsearch는 Apache Lucene 기반의 분산 검색 및 분석 엔진이다. 대용량 데이터를 빠르게 검색하고 집계할 수 있도록 설계되었다.

⚡ Elasticsearch의 주요 특징

  • 대용량 데이터를 빠르게 검색하고 분석할 수 있다.
  • 실시간 검색에 적합하다.
  • RESTful API를 사용한다.
  • JSON 문서를 기반으로 데이터를 저장한다.
  • 텍스트 분석과 복합 Query를 지원한다.

🧭 RDBMS와 Elasticsearch

항목 RDBMS Elasticsearch
저장소 Database Index
단위 Table Type
실제 데이터 Row Document
필드 Column Field
검색 방식 Index / SQL Analyze / Query DSL
기본 키 Primary Key _id
구조 Schema Mapping
관계 Relational Parent/Child
조회 SQL Query DSL

차이점

RDBMS는 정합성과 관계에 강하고, Elasticsearch는 검색과 분석에 강하다.

🏗️ Elasticsearch 아키텍처 및 용어

Cluster

  • 여러 노드가 모여 하나의 클러스터를 이룬다.
  • 데이터 저장과 조회를 분산 처리한다.

Node

Node Name 역할
Master-eligible 클러스터 상태 관리와 메타 정보 반영
Data CRUD와 검색 처리
Ingest 데이터 변환과 전처리 파이프라인 실행
Coordination only 요청 분산과 응답 처리

Index / Shard / Replica

  • Index는 RDBMS의 database에 대응한다.
  • Shard는 index를 분산하기 위한 단위이다.
  • Replica는 shard의 복제본이다.
  • Sharding은 데이터를 분산 저장하기 위한 방식이다.
  • Replica는 가용성검색 성능 향상에 도움이 된다.

용어 정리

Elasticsearch에서는 문서 중심 구조를 이해하는 것이 중요하다. 테이블보다 문서와 인덱스 관점으로 생각하면 구조가 더 잘 보인다.

🛠️ 함께 알아두면 좋은 개념

  • Mapping
  • Analyzer
  • Query DSL
  • Full-text Search
  • Aggregation

[!important] 주의 Elasticsearch는 검색에 강하지만, 관계형 데이터처럼 복잡한 조인에 최적화된 구조는 아니다.


연결문서

댓글남기기