How apache/druid works
Apache Druid is a real-time analytics database for ingesting, managing, and querying data. A principal query path runs from a user or console through query-state handling and SQL planning, then through segment access and query-specific execution to results; gRPC offers a separate query entry point. The README also highlights streaming and batch ingestion and cluster management, but the sampled tree does not expose their central implementations, so those capabilities are represented without speculative wiring. Query-engine and multi-stage details reflect the sampled files; links between unsampled subsystems are omitted.
Main entry points: ClientQuerySegmentWalker.java Segment walker · QueryHandler.java SQL handler · ControllerQueryKernel.java MSQ controller kernel · query-manager.ts Query manager
Components 15
Query entry
- Web console
web-console/src/hooks/use-query-manager.ts - Query manager
web-console/src/utils/query-manager/query-manager.ts - gRPC service
extensions-contrib/grpc-query/src/main/java/org/apache/druid/grpc/server/QueryService.java - Query results
Planning and dispatch
- SQL handler
sql/src/main/java/org/apache/druid/sql/calcite/planner/QueryHandler.java - Segment walker
server/src/main/java/org/apache/druid/server/ClientQuerySegmentWalker.java
Query execution
- GroupBy engine
processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/GroupByQueryEngine.java - Scan engine
processing/src/main/java/org/apache/druid/query/scan/ScanQueryEngine.java - Timeseries engine
processing/src/main/java/org/apache/druid/query/timeseries/TimeseriesQueryEngine.java - TopN engine
processing/src/main/java/org/apache/druid/query/topn/TopNQueryEngine.java - MSQ controller kernel
multi-stage-query/src/main/java/org/apache/druid/msq/kernel/controller/ControllerQueryKernel.java - MSQ data handler
multi-stage-query/src/main/java/org/apache/druid/msq/indexing/IndexerDataServerQueryHandler.java
Data and cluster
- Streaming and batch ingestion
- Cluster management
Other components
- Analyst or client
Connections 19
- Analyst or client → Web console: submits query
- Web console → Query manager: runs query
- Query manager → SQL handler: processes query
- Analyst or client → gRPC service: submits query
- gRPC service → SQL handler: delegates query
- SQL handler → Segment walker: dispatches plan
- Segment walker → GroupBy engine: runs query
- Segment walker → Scan engine: runs query
- Segment walker → Timeseries engine: runs query
- Segment walker → TopN engine: runs query
- SQL handler → MSQ controller kernel: plans stages
- MSQ controller kernel → MSQ data handler: requests segment data
- GroupBy engine → Query results: produces rows
- Scan engine → Query results: produces rows
- Timeseries engine → Query results: produces rows
- TopN engine → Query results: produces rows
- MSQ controller kernel → Query results: produces results
- Query results → Query manager: updates state
- Streaming and batch ingestion → Cluster management