공부/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