[Elasticsearch] Elasticsearch(엘라스틱서치)란? :: ELK, Elastic Stack
by 캐떠린저번 엘라스틱서치 개발 환경 셋팅 포스트에서 짧게 엘라스틱서치가 무엇인지 정리했는데 이번 시간에 엘라스틱서치가 과연 어떤건지 제대로 알아보자!
엘라스틱서치(Elasticsearch)란?
- Elasticsearch is a distributed, RESTful search and analytics engine capable of addressing a growing number of use cases. (엘라스틱서치는 분산형 RESTful 검색 및 분석 엔진이다.)
- 속도 등의 이유로 주로 리눅스 계열에서 구동한다. → CentOS, Ubuntu 등
그러나 리눅스 계열 외에 Windows, Mac OS 에서도 구동은 가능하다. (수업에서는 Ubuntu 사용) - 루씬 기반의 자바 오픈 소스 검색 엔진
- 방대한 양의 데이터를 신속하고 거의 실시간으로 저장/검색/분석할 수 있다.
- REST API를 제공한다.
- JSON 형태로 데이터를 저장/조회한다.
ELK or Elastic Stack
- 엘라스틱서치는 단독으로도 사용 가능 하며, ELK 스택으로 사용이 가능하다. → 다른 프로그램과 엮어서 사용
- E : Elasticsearch
- L : Logstash
- K : Kibana
- B : Beats
- 위 4가지를 ELK 스택이라고 부른다.
1. Logstash/Beats
- 역할: Ingest
- 다양한 소스(DB, CSV, Log..)로부터 데이터를 가져다가 조작(추가 작업) 후 Elasticsearch에게 전달하는 역할
2. Elasticsearch
- 역할: Store, Search, Analyze
- 직접 수집한 데이터 or Logstash의 수집 데이터를 관리 및 조작(검색)하는 역할
3. Kibana
- 역할: Visualize & Manage
- Elasticsearch의 데이터를 시각화 or 편리하게 조작할 수 있는 기능을 제공하는 역할
- GUI 환경 제공
Elasticsearch 핵심 개념
1. 클러스터
- 노드의 집합(ex. 3대의 컴퓨터. 3개의 노드를 하나의 집합으로 묶은 단위)
- 하나 이상의 노드 집합
2. 노드
- 엘라스틱서치가 설치된 컴퓨터(분산된 환경에 있는 각각의 컴퓨터를 보통 노드라고 한다.)
3. 인덱스
- 비슷한 특성을 가진 문서의 집합
- 데이터베이스 역할(모든 데이터를 모아놓은 최상위 집합이라고 생각하면 된다.)
4. 타입 → Elasticsearch 7.XX ver. 로 넘어가며 거의 없어진거나 다름 없다.
- 도큐먼트 집합
- 테이블 역할
5. 도큐먼트
- 데이터 저장 단위
- 레코드 역할(★★★)
- JSON 포맷
6. 샤드&리플리카
- 분산 환경을 위한 요소
RDBMS와 Elasticsearch 비교하여 요약 정리
RDBMS(관계형 DBMS) | Elasticsearch |
Scheme(스키마) | Mapping |
Database | Index(★★★) |
Table | Type |
Row | Document(★★★) |
Column | Field |
SQL | QueryDSL |
*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] Index CRUD, Document CRUD :: curl 및 kibana 사용 (3) | 2024.01.29 |
---|---|
[Elasticsearch] 리눅스(Linux) 명령어 미리보기 (1) | 2024.01.29 |
[Elasticsearch] 개발 환경 Settings :: WSL, Ubuntu, Elasticsearch, Kibana, Logstash 설치 (3) | 2024.01.29 |
블로그의 정보
All of My Records
캐떠린