- [ElasticSearch] 기본개념2020년 06월 27일
- 홀쑥
- 작성자
- 2020.06.27.:29
Elasticsearch는 아파치 루씬(Apache Lucene)기반의 JAVA 오픈소스 분산 검색엔진
검색을 위해 단독으로 사용되기도 하며, ELK(Elasticsearch / Logstash / Kibana) 스택으로 사용되기도 함
Logstash
- 다양한 소스의 로그 또는 데이터를 수집, 집계, 파싱해서 Elasticsearch로 전달
Elasticsearch
- Logstash가 준 데이터를 검색 및 집계하여 필요한 정보 획득
Kibana
- Elasticsearch의 집계된 정보를 시각화 및 모니터링
Elasticsearch 용어
- 클러스터 ( cluseter)
Elasticsearch에서 가장 큰 시스템 단위
최소 하나 이상의 노드로 이루어진 '노드'들의 집합
서로 다른 클러스터끼리는 데이터의 접근과 교환을 할 수 없는 독립 시스템 유지
여러 대의 서버가 하나의 클러스터를 구성할 수도 있고 한 서버에 여러 클러스터를 구성할 수도 있음- 노드
Elasticsearch를 구성하는 하나의 단위 프로세스
종류
- master-eligible node
클러스터를 제어하는 마스터로 선택할 수 있는 노드
master 노드의 역할은 인덱스 생성or삭제, 클러스터 노드들의 추적과 관리, 데이터 입력 시 어느 샤드에 할당할 지
- Data node
데이터와 관련된 CRUD작업을 하는 노드
Data node는 CPU와 메모리 등 자원을 많이 소모하므로 모니터닝이 필요하며, master 노드와 분리되는 것이 좋음
- Ingest node
데이터를 변환하는 등 전처리 파이프라인을 실행하는 역할
- Coordination only node
data node와 master-eligible node의 일을 대신하는 노드
대규모 클러스터에 이점이 있음, 로드 밸런서와 비슷한 역할- 인덱스(index), 샤드(Shard), 복제(Replica)
- 인덱스
RDBMS의 인덱스와 비슷한 개념
-샤딩(Sharding)
데이터를 분산해서 저장하는 방법
즉, Elasticsearch에서 스케일 아웃을 위해 인덱스를 여러 샤드로 쪼갠 것
기본적으로 1개가 존재하며, 검색 성능 향상을 위해 클러스터의 샤드 개수를 조정하는 튜닝을 함
- 복제(Replica)
또 다른 형태의 샤드
노드를 손실했을 경우 데이터의 신뢰성을 위해 샤드들을 복제
따라서 복제는 서로 다른 노드에 존재할 것을 권장Elasticsearch의 특징
- Salce out : 샤드를 통해 규모가 수평적으로 늘어날 수 있음
- 고가용성 : 복제를 통해 데이터의 안정성 보장
- Schema Free : Json 문서를 통해 검색을 수행해 스키마 개념이 없음
- Restful : CRUD작업은 Http Restful API를 통해 수행
Data CRUD Elasticsearch Restful
SELECT -> GET
INSERT -> POST
UPDATE -> PUT
DELETE -> DELETE역색인(Elasticsearch가 빠른 이유)
index(색인)와 inverted index(역색인)의 차이
색인은 책의 맨 앞에 목차
역색인은 책의 맨 뒤에 키워드 별 페이지(찾아보기)
Elasticsearch는 텍스트를 파싱해서 검색어 사전을 만든 다음, 역색인 방식으로 텍스트를 저장함
'ELK STACK > ElasticSearch' 카테고리의 다른 글
[Elasticsearch] 설치 및 시작 (0) 2020.06.28 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)