■ 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 |
댓글