Favicon of Apache Druid

Apache Druid

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.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hostedManagedHybrid
PricingFreeSubscription
Operational complexityHigh
WorkloadInteractiveStreaming
LanguageJava

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

Compare

How Apache Druid answers the questions OLAP Engines turns on.

OLAP Engines
How it works
SpecializationReal-time event and time-series analytics
SQL dialectDruid SQL (Calcite), plus native JSON queries
JoinsBroadcast in the native engine; sort-merge via MSQ and Dart
Updates and deletesNone: REPLACE overwrites a time range; drop segments to delete
Ingest to queryableSub-second: streaming rows queryable as the task ingests them
Storage formatOwn segments in deep storage
Compute and storageDeep storage of record; Historicals cache segments on local disk
IndexesRoaring bitmap indexes on string dimensions; per-column opt-out
Pre-aggregationIngest-time rollup; in-segment projections (experimental)
Running it
Concurrent usersHigh: built for user-facing apps; scale out Brokers and Historicals

Share:

Alternatives to Apache Druid

Favicon

 

  
  
Favicon

 

  
  
Favicon