본문 바로가기
Data/DB

Apache Druid 정의와 장단점 및 ES 와의 비교 | LIM

by forestlim 2022. 12. 30.
728x90
반응형

아파치 드루이드에 대한 소개는 다음과 같다.

 

Apache Druid is a high performance real-time analytics database

아파치 드루이드는 다차원 데이터를 빠른 쿼리 속도를 제공하기 위해 세그먼트 단위로 데이터를 인덱스하여 저장한다. 따라서 실시간 분석을 할 때 용이하다. 드루이드는 실시간 수집, 빠른 쿼리 성능 및 높은 가동 시간이 중요한 경우를 지원하기 위한 데이터베이스로 가장 자주 사용된다. 빠른 집계가 필요한 동시성 높은 API 백엔드로 사용된다.

 

요약하자면 이러한 기능을 갖고 있다고 생각하면 된다

  • High-Performance: Ingestion and Query
  • Column-Oriented
  • Horizontal Scalable
  • Distributed Data Source
  • Time-based partitioning

 

✔️ 전통적인 데이터 베이스 vs 아파치 드루이드

전통적인 데이터베이스: 데이터 적재 -> 쿼리 -> 프로세싱 -> 결과확인

아파치 드루이드: 데이터 적재 -> 프로세싱(인덱싱) -> 쿼리 -> 결과확인

 

빠르게 데이터를 취합해야하고 결과값을 통해 비즈니스의 발전을 창출해야할 경우에는 이전에 발생한 이벤트들에 대한 쿼리를 최대한 빠르게 가져오는 것이 중요하다. 따라서 드루이드는 빅데이터의 이벤트 처리에 강점을 가진다고 말할 수 있다. 

 

📚 Druid Architecture

 

💡 드루이드를 사용하면 좋은 경우 vs 사용하기 좋지 않은 경우

 👍 사용하면 좋은 경우

  • 데이터에 시간 관련 요소가 있는 경우. Druid에는 특히 시간과 관련된 최적화 및 디자인 선택이 포함된다.
  • 대부분의 쿼리가 집계(Group by), 검색, 스캔인 경우
    • 아래 참고한 네이버의 경우에도 검색어 트렌드와 쇼핑 인사이트에서 사용자가 원하는 조건을 선택하여 필터링 할 때 Druid 를 사용해서 효율을 높였다고 설명한다.
  • 빠른 응답속도를 원하는 경우

 👎 사용하기 좋지 않은 경우

  • Primary Key를 사용해 레코드의 지연 시간이 짧은 업데이트를 하는 경우
  • 쿼리 대기 시간이 중요하지 않은 오프라인 보고 시스템을 구축할 때 
  • 하나의 큰 테이블을 다른 테이블에 조인하는 경우

 

📚 Druid 와 Elastic Search 차이점

ElasticSearch

  • Full Text Search
  • Schema-Free Documents
  • 데이터 압축과 롤업을 ingestion 시 지원하지 않기 때문에 필요이상으로 큰 storage 를 필요로 한다.

 

Druid

  • Focus on OLAP work flow
  • Fast Aggregation & Ingestion at Low Cost
  • Schema 가 정의되어야 한다.
  • Basic Search Support for Structured Event Data, but does NOT support Full Text Search
  • 데이터 압축과 롤업을 지원하기 때문에 Elastic Search 보다 훨씬 작은 storage 를 필요로 한다.

 

📚 참고하면 좋을 자료들

https://tv.naver.com/v/4580063

 

Druid로 쉽고 빠르게 빅데이터 분석하기

NAVER Engineering | Druid로 쉽고 빠르게 빅데이터 분석하기

tv.naver.com

https://www.youtube.com/watch?v=l60tVs1FOdU 

 

728x90
반응형

댓글