오늘의 공부
오늘은 ElasticSearch 에 대해 조사하고 공부하였다.
아래처럼 정리 하였다. 나중에 더 정리하여 실제로 적용해보고 다시 글을 써볼 예정이다.
ElasticSearch
- 모든 사람이 필요한 것을 더 빨리 찾도록
- 광범위한 개방형 검색 플랫폼
- HTTP 의 JSON 인터페이스 지원
- 다양한 프로그래밍 언어 지원
- 머신러닝도 포함되어 있음.
용도
- 검색 엔진
- 분석 및 인사이트 제공
- 로그 분석
- 이벤트 분석
- 성능 분석
- 머신러닝
특징
용도 : 검색 및 집계
스키마 : 자동생성
인터페이스 : REST API
분산 적재 : 샤딩
트랜잭션 : 미지원
JOIN : 미지원
ElasticStack
- ElasticSearch 가 개발될 무렵 진행된 오픈소스 프로젝트
- 로그 수집 - Logstash
- 시각화 UI - Kibana
- ElasticStack
- ElasticSearch + Logstash + Kibana
- 비츠 포함 ( 네트워크 데이타, 시스템 지표, 성능, 로그 )
ElasticSearch 용어
- index : Document를 모은 논리적 구조
- Document를 저장하는 논리적 단위
- 기존 RDB 의 테이블과 유사
- 모든 Document는 Index 에 포함
- 하나의 Index 에는 많은 Document 포함
- 하나의 Index 에는 동일한 스키마
- 스키마에 따라 Index 가 달라야 한다.
- Document : 데이터가 저장되는 기본 단위
- 데이터 저장 기본 단위
- JSON 형식
- 필드와 값
- Mapping : 스키마 구조
- 관계형 데이터베이스의 스키마와 유사
- 매핑의 종류
- 동적 매핑
- ES 가 데이터 타입을 보고 자동으로 매핑
- 인덱스 규모가 커지면 성능에 영향을 받는다.
- 직접 매핑
- 인덱스 매핑을 직접 한다.
- 인덱스 생성시 매핑 설정
- 매핑 API 이용
인덱스 템플릿
- 동일한 다수의 인덱스를 만들 때 주로 사용
- 인덱스 파티셔닝에서 동일한 인덱스를 매번 설정의 문제
- 템플릿 생성
- 직접 생성
- 동적 템플릿
- 기본 설정
- 매핑
- 세팅
- 템플릿은 새 인덱스부터 적용 된다.
ElasticSearch RDB
index 테이블
Document 행
필드 컬럼
Mapping 스키마
분석기
- 역인덱싱
- 긴 텍스트를 잘게 나눠서 인덱싱 하는 기술
- 분석기 = 토크나이너 + 캐릭터 필터 + 토큰 필터
Elasticsearch 시스템 용어와 기능
• 클러스터
• 노드
• 샤드
• 백업
노드
- ElasticSearch 클라우드를 구성하는 하나의 인스턴스
- 노드는 여러 역할을 담당
- 노드 종류
• 마스터 노드 - 클러스터의 모든 정보를 관리 담당
• 데이터 노드 - 데이터의 CRUD, 검색, 집계 담당
• 투표 전용 노드 - 마스터 노드 선정에 투표 참여 담당
• 인제스트 노드 - 문서의 가공과 처리 담당
• 머신러닝 노드 - 머신러닝 기능을 담당
• 코디네이터 노드 - REST API 요청의 처리 담
샤드
• 데이터를 나눠 분산 저장, 수평적 확장, 분산 처리
• 고가용성, 성능 향상, 처리량, 처리 속도를 높이는 장점
• Primary 샤드 - 데이터의 원본
• Replica 샤드 - 데이터의 복제본
• 샤드의 상태
• UNASSGINED
• INITIALIZING
• STARTED
• RELOCATING
백업
• 백업은 기본적으로 자주하는 것이 중요.
• Elasticsearch의 백업은 증분 백업이라 자주 백업 가능.
• 리포지터리
• 백업을 위한 저장소. 예) AWS S3, MS 애저, 파일 시스템, 구글 스토리지
• 스냅샷
• 모든 데이터 저장 또는 특정 인덱스의 데이터만 저장
• 이후에는 증분만 저장
• 스냅샷 복원
• 찍어둔 스냅샷을 이용해서 데이터 복원
내일은?
ElasticSearch 직접 깔아보고 실행하여 써보는 연습을 하고,
면접질문을 마저 쓸 예정이다.
'TIL' 카테고리의 다른 글
| 2023.09.05 (0) | 2023.09.06 |
|---|---|
| 2023.08.28 (0) | 2023.08.29 |
| 2023.08.25 면접 질문 (0) | 2023.08.26 |
| 2023.08.19 (0) | 2023.08.19 |
| 2023-08-17 - JMeter / 성능 개선 (0) | 2023.08.17 |