본문 바로가기
IT

Druid

by ¢Å‰¤㏄ 2021. 11. 5.

■ Druid란?

Time Series 데이터에 대한 통계를 탄력적으로 처리(시간 단위 aggregation)할수 있는 Solution

 

① Apache open source license 이며 현재 Apache Project는 아니다. Imply와 Metamarket이라는 기업이 주도하여 개발되고 있다.

② 시간별로  사용자를 count하는 연산을 post aggregation을 통해 탄력적으로 질의하는 것이 가능

③ 원본을 저장하지 않으며 기존 데이터에서 OLAP질의가 가능하도록 indexing하는 구조를 가지고 있다

④ 실시간 아키텍처와 배치 아키텍처를 모두 수용

⑤ Druid관련 메타정보는 mysql등 RDBMS 저장할 수있다

 

■ Druid 구조

■ Druid 용어

① Segment

druid는 segment file에 index를 저장한다.

기본적으로 druid는 timeseries 기반으로 timestamp가 중요

Dimension - filter/group by 가능 필드

Metric - 수치 데이터로 timestamp기준에 따라 pre-aggregation/post-aggregation 가능

 

② Historical Node

Deep storage로부터 Segment를 다운받아 broker 노드로 들어온 query에 대해 결과를 리턴한다.

Zookeeper를 이용하여 새로운 segment를 로딩할 것인지 drop 할것인지 결정

 

③ Coordinator

데이터 가용성을 위하여 historical node 집합을 모니터링

meta data storage에서 meta 정보를 읽어와서 어떤 Segment가 클러스터에 로딩 되어야 하는지

zookeeper를 이용하여 어떤 historical node가 존재해야 하는지 결정한다.

 

④ Broker

외부 client로부터 query를 받아 historical node로 전달

결과값을 historical node로부터 받아 merge 작업 수행후 query를 보낸대상에게 리턴

 

④ Zookeeper

분산 애플리케이션을 위한 코디네이션 시스템. 분산 애플리케이션이 안정적인 서비스를 할 수 있도록 분산되어 있는 각 애플리케이션의 정보를 중앙에 집중함. 컨슈머 혹은 카프카와 직접 통신하면서 구성 관리, 그룹 관리 네이밍, 동기화 등의 서비스를 제공

 

⑤ Indexing Service

  • Peon : 단일 jvm에서 수행되는 하나의 task를 말하며 Middle Manager에 의해 생성된다.
  • Middle Manager : 요청된 작업 분배 등의 Peon을 관리하는 역할을 수행
  • Overload : task의 분산을 관리하며 local 또는 remote의 다수의 Middle Manager를 구성할수 있다.

'IT' 카테고리의 다른 글

Apache Spark란?  (0) 2021.11.08
Cookie vs Local Storage vs Session Storage  (0) 2021.11.05
ELK stack이란?  (0) 2021.11.05
Druid (S3 direct 연동)  (0) 2021.11.05
Apache Kafka  (0) 2021.11.05

댓글