Apache Druid vs Spark
Apache Druid vs Spark
Druid와 Spark는 상호 보완적인 관계예요. Spark로 데이터를 처리하고 Druid로 OLAP 쿼리를 가속하는 구성이 일반적입니다. 이 문서는 둘의 역할 차이를 설명합니다.
출처: 문서
본문
Druid와 Spark는 상호 보완적 솔루션입니다. Druid는 Spark에서 OLAP 쿼리를 가속하는 데 사용될 수 있어요.
Spark는 Resilient Distributed Datasets(RDD) 개념을 중심으로 처음 설계된 범용 클러스터 컴퓨팅 프레임워크입니다. RDD는 중간 결과를 메모리에 유지해 데이터 재사용을 가능하게 하고, Spark가 반복 알고리즘에 대해 빠른 계산을 제공하게 해줘요. 이는 머신러닝처럼 어떤 결과가 수렴할 때까지 같은 연산을 반복 적용하는 워크플로에 특히 유용합니다. Spark의 범용성은 데이터를 처리(정제 또는 변환)하는 엔진으로 매우 적합하게 만듭니다. Spark가 Spark SQL을 통해 데이터를 쿼리하는 능력을 제공하긴 하지만, Hadoop과 마찬가지로 쿼리 지연 시간이 인터랙티브(서브초)하도록 맞춰지지는 않았어요.
Druid는 극도로 낮은 지연 시간의 쿼리에 집중하며, 수천 명의 사용자가 사용하는 애플리케이션을 지원하는 데 이상적입니다. 이때 각 쿼리는 사용자가 인터랙티브하게 데이터를 탐색할 수 있을 만큼 충분히 빨리 반환되어야 해요. Druid는 모든 데이터를 완전히 인덱싱하고, Spark와 애플리케이션 사이의 미들 레이어 역할을 할 수 있습니다. 실제 운영에서 흔히 보는 구성 중 하나는 Spark로 데이터를 처리한 다음, 더 빠른 접근을 위해 처리된 데이터를 Druid로 로드하는 것입니다.
Druid와 Spark를 함께 사용하는 방법, 두 시스템의 벤치마크를 포함한 자세한 내용은 다음을 참고하세요:
https://www.linkedin.com/pulse/combining-druid-spark-interactive-flexible-analytics-scale-butani
더 알아보기 (Learn more)
- Spark와 함께 Druid를 쓰는 실제 사례는 위 링크를 확인해 보세요.
- Druid의 쿼리 지연 시간 최적화는 querying 문서를 참고하세요.