Druid는 Coordinator, Overlord, Broker, Router, Historical, MiddleManager로 프로세스가 구성되며, Master, Query, Data로 서버가 구성된다.
-
Master: Manages Data Availability and Ingestion
-
Coordinator: manage data availability
-
Overlord: control the assignment of data ingestion workloads
-
-
Query: Handles Queries from External Clients
-
Broker: handle queries from external clients
-
Router(Optional): route requests to Brokers, Coordinators, and Overlords
-
-
Data: Executes Ingestion Workloads and Stores All Queryable data
-
MiddleManager: Responsible for ingesting data
-
Historical: Store queryable data
-
-
External Dependencies
-
Deep Storage: Shared file storage accessible by every Druid server
-
Metadata Storage: Holds various shared system metadata such as segment availability information and task information (PostgreSQL or MySQL)
-
ZooKeeper: Internal service discovery, coordination, and leader election
-
Data 서버군의 MiddleManager와 Historical로 신규 유입 데이터 및 파티션 별 데이터가 저장되면, Query 서버군 Broker로 Client Query를 요청 받고 해당 데이터를 사용자에게 전달한다.
- 유입되는 데이터는 MiddleManager로 계속해서 색인되고 시간 기준으로 파티셔닝된 Segment는 Deep Storage로 전송된다.
- 이후에는 Historical이 저장된 Segment 파일을 Deep Storage로부터 local cache로 다운 받음으로써 Query 요청이 탐색 가능한 상태가 된다.
- 이 때, 유입되는 데이터 즉, Ingestion과 Segment 관리는 Coordinator와 Overlord에 의해 수행된다.
- Coordinator는 Historical 서버들에 생성 완료된 Segment들을 로드 밸런싱을 통해 배치하거나 제외시키며, Overlord는 MiddleManager로 유입되는 데이터와 Segment를 관리한다.
- MiddleManager는 태스크 당 하나의 Peon을 구동시켜 유입 데이터를 처리하며, Peon은 MiddleManager와 같은 호스트 내 별도 JVM에서 구동된다.
- Router는 선택적으로 수행 가능한 프로세스로 Broker/Coordinator/Overlord에 대한 통합 API를 제공한다.
'Development > DB' 카테고리의 다른 글
Apache Druid Ingestion (0) | 2019.12.31 |
---|---|
Apache Druid Segment (0) | 2019.12.29 |
Apache Druid 개요 (0) | 2019.12.29 |
PostgreSQL에서 CSV 파일 Import하기 (0) | 2017.01.05 |