# Apache Druid

> Real-time analytics database for fast slice-and-dice queries

Apache Druid is a real-time analytics database combining ideas from data warehouses, time-series databases, and log search systems, with columnar storage, time-based partitioning, and bitmap indexes serving sub-second queries over streaming data.

Website: https://druid.apache.org

## Use it when

- Dashboards over streaming events need sub-second slice-and-dice, with rows queryable as they ingest.
- Time is the primary axis: time-partitioned segments and bitmap indexes make time-range filters cheap over trillions of rows.
- Uptime matters: the cluster self-heals and self-balances, and deep storage keeps segments safe past node loss.
- Ingest runs to millions of events per second.

## Think twice when

- Rows change after landing: there is no UPDATE, only replacing a time range or dropping segments; upsert workloads fit Pinot or Doris better.
- Queries join large tables at query time; the native engine only broadcasts, so either denormalize at ingest or pick StarRocks.
- The ops surface is real: several node roles plus ZooKeeper and deep storage, which is why Imply exists.

## How it runs

Self-hosted as specialized services (Brokers for queries, Historicals for segments, tasks for ingest) over deep storage such as S3 or HDFS, each role scaling independently, with ZooKeeper coordinating. Streaming ingest from Kafka or Kinesis is exactly-once into time-partitioned columnar segments. Imply offers the managed platform.

## Details

### General

| Attribute | Value |
| --- | --- |
| License | Open source (permissive) |
| SPDX identifier | Apache-2.0 |
| Deployment | Self-hosted, Managed, Hybrid |
| Workload | Interactive, Streaming |
| Operational complexity | High |
| Pricing | Free, Subscription |
| Language | Java |
| Repository | https://github.com/apache/druid |
| Documentation | https://druid.apache.org/docs/latest/ |
| Stars | 14.1k |

### OLAP Engines

| Attribute | Value |
| --- | --- |
| Specialization | Real-time event and time-series analytics |
| SQL dialect | Druid SQL (Calcite), plus native JSON queries |
| Joins | Broadcast in the native engine; sort-merge via MSQ and Dart |
| Updates and deletes | None: REPLACE overwrites a time range; drop segments to delete |
| Ingest to queryable | Sub-second: streaming rows queryable as the task ingests them |
| Storage format | Own segments in deep storage |
| Compute and storage | Deep storage of record; Historicals cache segments on local disk |
| Indexes | Roaring bitmap indexes on string dimensions; per-column opt-out |
| Pre-aggregation | Ingest-time rollup; in-segment projections (experimental) |
| Concurrent users | High: built for user-facing apps; scale out Brokers and Historicals |

## Capabilities

- [OLAP Engines](https://matca.io/capabilities/olap-engine)

---

Source: https://matca.io/apache-druid
Last updated: 2026-08-31T11:40:47.735Z
