공부/ElasticSearch
Elastic Search 사용 이유, RDB와 NoSQL과의 차이점
thegreatjy
2024. 6. 26. 22:52
728x90
Elastic Search - 사용이유, RDB와 NoSQL과의 차이점
사용이유
- 엘라스틱 스택은 모든 유형의 데이터를 실시간으로 검색, 분석 및 시각화 차세대 데이터 플랫폼
- ElasticSearch
- 검색·분석·데이터 저장소 역할
- Beats
- 경량 데이터 수집을 담당하는 비츠(Beats). 로그파일의 변화를 감지해 logstash, es로 전달한다.
- Logstash
- 정제·전처리를 수행하는 로그스태시(Logstash).
- 다양한 소스에서 동시에 데이터를 수집하여 변환한 후, 자주 사용하는 스태쉬stash(보관소, 저장소)로 전달
- Kibana
- 저장된 데이터의 시각화·관리 기능을 제공하는 키바나(Kibana)
ES와 RDB
기존 RDB를 ES로 대체해야하는가?
- ES는 정형, 비정형 데이터를 모두 수용할 수 있다.
- 단순 검색 엔진으로서 뿐만 아니라 빠른 데이터 확인이 필요할 때 ES를 사용한다.
- RDB는 행 기반으로 데이터를 저장하고, ES는 단어term을 기반으로 데이터를 저장한다.
RDB
행 기반으로 데이터를 저장
장점: 데이터 수정, 삭제 시, 빠른 속도 및 편의성
- RDB는 수정/삭제 시, 한 번의 요청으로 관계된 데이터가 처리되어 빠르다.
단점: 다양한 조건의 데이터를 검색, 집계 시 한계 존재
예) 단어 ‘MSA’ 검색
도큐먼트 개수만큼 반복하므로 비효율적
ES
- 단어 기반으로 데이터를 저장
- 장점
- 검색 시, 특정 단어가 어디 저장되어 있는지 알고 있어 모든 도큐먼트를 검색할 필요가 없기 때문에 빠르다.
- JSON 형식 문서 모델을 기반으로 저장하므로 스키마 변경 없이도 다양한 형태의 데이터를 유연하게 저장할 수 있다.
- 단점
- 수정/삭제 시에는 중복 데이터에 대한 많은 리소스가 소요되어 성능이 나쁘다.
- ES에서 갱신은 기존 문서를 삭제하고 다시 삽입한다.
- 트랙잭션과 롤백 기능이 없다. 따라서 무결성이 중요한 데이터의 저장소로 사용하기에 적합하지 않다. → ES가 DB의 기능을 하지만 메인 DB로 단독 사용되지 않는 이유이다.
- 엄격한 데이터 요구사항이 있는 경우 RDB가 적합하다.
- NoSQL과 같이 완전한 실시간성이 아니다. (Near 실시간성).
- 인메모리 버퍼를 사용하여 데이터를 저장(인덱싱)하므로, 쓰기와 동시에 데이터를 읽을 때는 검색할 수 없다.
- 수정/삭제 시에는 중복 데이터에 대한 많은 리소스가 소요되어 성능이 나쁘다.
ES와 NoSQL
NoSQL
- Key-Value로 데이터를 저장한다.
- 상품으로는 Redis, AQS DynamoDB, etc.
ES와 NoSQL의 차이점?
- ES는 애플리케이션이 생성하는 로그와 지표의 인덱스 작성, 집계, 검색을 한다.
- 이를 통해 생성된 데이터를 가지고 실시간에 가까운 시각화와 분석을 제공한다.
- 검색 엔진
728x90