Apache Druid vs Elasticsearch

Apache Druid vs Elasticsearch

Elasticsearch는 Lucene 기반 검색 엔진이고, Druid는 OLAP 워크플로를 위한 분석 엔진이에요. 이 문서는 둘의 설계 목적과 차이점을 설명합니다.

출처: 문서

본문

우리는 검색 시스템 전문가가 아니에요. 만약 우리의 설명이 틀렸다면 메일링 리스트나 다른 경로로 알려주세요.

Elasticsearch는 Apache Lucene 기반의 검색 시스템입니다. 스키마가 없는 문서에 대해 전문(full-text) 검색을 제공하고, 원시 이벤트 레벨 데이터에 접근할 수 있게 해줘요. Elasticsearch는 점점 더 분석과 집계 기능을 추가하고 있죠. 커뮤니티 일부에서는 Elasticsearch의 데이터 수집 및 집계에 필요한 리소스 요구량이 Druid보다 훨씬 높다는 점을 지적하기도 합니다.

Elasticsearch는 또 수집 시점의 데이터 요약/롤업(summarization/roll-up)을 지원하지 않아요. 실무 데이터셋에서는 이 기능이 저장할 데이터를 최대 100배까지 줄여줄 수 있는데, 그렇지 않은 Elasticsearch는 더 큰 저장 공간이 필요하게 됩니다.

Druid는 OLAP 워크플로에 집중합니다. Druid는 낮은 비용으로 높은 성능(빠른 집계와 수집)을 내도록 최적화돼 있고, 다양한 분석 연산을 지원해요. Druid는 구조화된 이벤트 데이터에 대한 기본적인 검색을 지원하지만 전문 검색(full-text search)은 지원하지 않습니다. 또한 완전히 비정형(unstructured) 데이터도 지원하지 않아요. Druid 스키마에는 측정값(measures)을 정의해야 요약/롤업을 수행할 수 있습니다.

더 알아보기 (Learn more)

  • Druid의 OLAP 설계 철학을 더 알고 싶다면 다른 비교 문서들도 함께 확인해 보세요.
  • Druid의 데이터 모델은 ingestion 문서에서 자세히 다룹니다.