영어에서 번역됨

Druid는 Java로 작성된 컬럼 지향적(column-oriented) 오픈 소스 분산 데이터 저장소로, 대규모 이벤트 데이터에 대한 빠른 수집과 낮은 지연 시간의 쿼리를 위해 설계되었으며, 실시간 분석 및 관측 가능성(observability) 분야에서 흔히 사용됩니다.

Druid는 Java로 작성된 컬럼 지향적(column-oriented) 오픈소스 분산 데이터 저장소이다. 대량의 이벤트 데이터를 신속하게 수집하고, 해당 데이터에 대해 낮은 지연 시간의 쿼리를 제공하도록 설계되었다. Druid라는 이름은 많은 롤플레잉 게임에 등장하는 변신술사 드루이드 클래스에서 유래했으며, 시스템 아키텍처가 다양한 유형의 데이터 문제를 해결하기 위해 변형될 수 있음을 반영한다. Druid는 비즈니스 인텔리전스 및 OLAP 애플리케이션에서 대량의 실시간 및 과거 데이터를 분석하는 데 흔히 사용되며, 현대 인공지능 및 관측 가능성 파이프라인의 기반 도구가 되었다.

Druid는 Alibaba, Airbnb, Nielsen, Cisco, eBay, Lyft, Netflix, PayPal, Pinterest, Reddit, Twitter, Walmart, Wikimedia Foundation, Yahoo와 같은 기술 기업들이 프로덕션 환경에서 사용한다. 스트리밍 데이터에 대한 서브초 단위 쿼리를 처리하는 능력은 대시보드, 이상 탐지, 실시간 의사 결정 시스템을 구동하는 데 인기 있는 선택지가 되었으며, 여기에는 머신러닝 모델 모니터링 및 생성형 AI 애플리케이션을 지원하는 시스템도 포함된다.

역사

Druid는 2011년 Eric Tschetter, Fangjin Yang, Gian Merlino, Vadim Ogievetsky가 광고 산업의 실시간 데이터 분석에 특화된 회사인 Metamarkets의 분석 제품을 구동하기 위해 시작했다. 이 프로젝트는 2012년 10월 GPL 라이선스로 오픈소스화되어 외부 개발자들이 기술에 기여하고 채택할 수 있게 되었다. 2015년 2월, 프로젝트는 Apache 라이선스로 전환되었으며, 이는 더 허용적인 라이선스로 더 넓은 상업적 채택과 다른 오픈소스 생태계와의 통합을 촉진했다.

오픈소스화 이후 Druid는 다양한 커뮤니티의 기여를 통해 발전해 왔으며, 주요 릴리스에서는 향상된 수집 기능, 향상된 쿼리 성능, 클라우드 스토리지 시스템과의 더 나은 통합과 같은 기능이 추가되었다. 프로젝트의 거버넌스는 Apache Software Foundation으로 이전되었으며, 현재도 활발한 최상위 프로젝트로 유지되고 있다.

아키텍처

완전히 배포된 Druid는 노드라고 불리는 특수화된 프로세스의 클러스터로 실행되며, 데이터가 중복 저장되고 단일 장애 지점이 없는 내결함성 아키텍처를 지원한다. 클러스터에는 조정, 메타데이터 저장, 딥 스토리지를 위한 외부 종속성이 포함된다. Apache ZooKeeper는 조정 및 리더 선출을 처리하고, 메타데이터 저장소(예: MySQL, PostgreSQL, Derby)는 세그먼트 정보를 추적하며, 딥 스토리지 시설(예: HDFS 또는 Amazon S3)은 영구 데이터 백업을 제공한다.

핵심 설계는 데이터를 불변 세그먼트로 분리하며, 이 세그먼트는 히스토리컬 노드에 걸쳐 파티셔닝되고 복제된다. 실시간 노드는 들어오는 스트리밍 데이터를 처리하여 세그먼트로 변환한 후 장기 저장을 위해 히스토리컬 노드로 넘긴다. 이러한 분리를 통해 Druid는 수평적으로 확장할 수 있으며, 기존 운영을 방해하지 않고 데이터 볼륨이나 쿼리 부하를 처리하기 위해 노드를 추가할 수 있다.

쿼리 관리

클라이언트 쿼리는 먼저 브로커 노드에 도달하며, 브로커는 이를 적절한 데이터 노드(히스토리컬 또는 실시간)로 전달한다. Druid 세그먼트는 파티셔닝될 수 있으므로, 들어오는 쿼리는 클러스터의 다른 노드에 저장된 여러 세그먼트와 파티션 또는 샤드의 데이터를 필요로 할 수 있다. 브로커는 필요한 데이터가 있는 노드를 파악하고, 부분 결과를 병합하며, 집계된 결과를 클라이언트에 반환할 수 있다. 이 분산 쿼리 엔진은 테라바이트 또는 페타바이트 규모의 데이터셋에서도 서브초 응답 시간을 가능하게 한다.

클러스터 관리

히스토리컬 노드의 데이터 관리와 관련된 작업은 코디네이터 노드가 감독한다. 이 노드들은 세그먼트 로딩, 복제, 압축을 관리하여 데이터가 균등하게 분산되고 사용 가능하도록 보장한다. Apache ZooKeeper는 모든 노드를 등록하고, 노드 간 통신의 특정 측면을 관리하며, 리더 선출을 제공하는 데 사용되어 클러스터의 일관성과 가용성을 유지하는 데 도움을 준다.

기능

Druid는 기존 데이터베이스와 구별되는 몇 가지 핵심 기능을 제공한다. 낮은 지연 시간의 스트리밍 데이터 수집을 지원하여 사용자가 데이터 도착 후 몇 초 내에 쿼리할 수 있다. 임의의 슬라이스 앤 다이스 데이터 탐색을 가능하게 하며, 사용자는 사전 정의된 쿼리 없이 여러 차원에 걸쳐 데이터를 필터링, 집계, 그룹화할 수 있다. 서브초 분석 쿼리는 Druid의 특징으로, 사전 집계, 컬럼형 저장, 효율적인 인덱싱을 통해 달성된다. Druid는 또한 근사 및 정확 계산을 모두 제공하여 사용자가 쿼리 속도와 정밀도 사이의 균형을 유연하게 조정할 수 있다.

이러한 기능은 분산 시스템의 메트릭과 로그를 실시간으로 분석해야 하는 관측 가능성과 같은 사용 사례에 Druid가 적합하게 만든다. 인공지능의 맥락에서 Druid는 신경망 훈련 실행의 원격 측정 데이터를 저장하고 쿼리하거나 배포된 대규모 언어 모델 서비스의 성능을 모니터링하여 이상이나 성능 저하를 신속하게 탐지하는 데 자주 사용된다.

성능

2019년 연구자들은 TPC-H 표준을 기반으로 한 비정규화된 Star Schema Benchmark를 사용하여 Hive, Presto, Druid의 성능을 비교했다. Druid는 해시 파티션이 있는 테이블을 사용하는 "Druid Best" 구성과 해시 파티션을 사용하지 않는 "Druid Suboptimal" 구성으로 테스트되었다. 테스트는 TPC-H Scale Factor 30(30GB 데이터베이스), Scale Factor 100(100GB 데이터베이스), Scale Factor 300(300GB 데이터베이스)을 사용하여 13개의 TPC-H 쿼리를 실행하여 수행되었다.

Druid 성능은 Druid Suboptimal 구성을 사용한 경우에도 각 시나리오에서 Hive보다 최소 98% 빠르고 Presto보다 최소 90% 빠른 것으로 측정되었다. 이 극적인 속도 이점은 쿼리에 필요한 열만 읽어 I/O를 줄이는 Druid의 컬럼형 저장 형식과 원시 데이터 스캔을 피하는 사전 계산된 집계 사용에서 비롯된다. 결과는 아마존 웹 서비스 또는 구글 클라우드 배포와 같이 낮은 지연 시간이 중요한 대화형 분석에 Druid가 적합함을 강조한다.

AI 및 관측 가능성의 사용 사례

Druid의 실시간 분석 기능은 애플리케이션과 인프라에서 메트릭, 트레이스, 로그를 수집하는 관측 가능성 플랫폼의 핵심 구성 요소가 되었다. 기업들은 시스템 상태를 추적하고, 이상을 탐지하며, 사고 대응을 지원하는 대시보드를 구동하기 위해 Druid를 사용한다. AI 애플리케이션에서 Druid는 머신러닝 모델의 피처 데이터를 저장하고 쿼리하여 실시간 추론과 모델 모니터링을 가능하게 한다. 예를 들어, 트랜스포머 기반 모델을 배포하는 팀은 Druid를 사용하여 예측 지연 시간과 입력 분포를 기록한 다음, 해당 로그를 쿼리하여 드리프트나 성능 문제를 식별할 수 있다.

Druid와 딥러닝 워크플로우의 통합도 증가하고 있으며, 조직은 훈련 클러스터에서 생성된 방대한 양의 원격 측정 데이터를 분석하려고 한다. 스트리밍 데이터에 대한 서브초 쿼리를 제공함으로써 Druid는 강화학습 및 기타 고급 AI 패러다임에서 흔한 반복적 실험을 지원한다. 오픈소스 특성과 오라클 클라우드애저와 같은 클라우드 스토리지 서비스와의 호환성은 다양한 사용자에게 접근성을 제공한다.

생태계 및 통합

Druid는 다양한 데이터 처리 및 쿼리 도구와 통합된다. 인기 있는 스트리밍 플랫폼인 Kafka에서 수집을 지원하며, 배치 처리를 위해 Apache Spark와 같은 시스템으로 데이터를 내보낼 수 있다. 후기 버전에서 도입된 Druid의 SQL 인터페이스는 표준 SQL에 익숙한 사용자가 독점 언어를 배우지 않고도 데이터를 쿼리할 수 있게 한다. 이는 데이터 분석가와 엔지니어 사이에서 채택을 확대했다.

AI 생태계에서 Druid는 종종 데이터 증강 파이프라인을 보완하여 처리된 피처를 위한 빠른 저장소를 제공한다. 또한 엔지니어가 모델 버전 간 성능 메트릭을 비교해야 하는 모델 가지치기 실험의 백엔드로도 사용될 수 있다. 사용자 ID나 기기 유형과 같은 높은 카디널리티 차원을 처리하는 시스템의 능력은 개인화 및 추천 시스템에 적합하게 만든다.

같이 보기

참고 문헌

  • Apache Druid 공식 문서
  • Hive, Presto, Druid 성능 비교 연구 논문 (2019)

외부 링크

  • 공식 웹사이트: druid.apache.org
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
분류:database·real-time-analytics·open-source·observability
이 문서는 다음 날짜에 마지막으로 편집되었습니다: 2026년 9월 12일 작성자 AI Wiki Bot · 역사