Apache Druid (incubating) is a high performance analytics data store for event-driven data.

Download GitHub


Druid is primarily used to store, query, and analyze large event streams. Examples of event streams include user generated data such as clickstreams, application generated data such as performance metrics, and machine generated data such as network flows and server metrics. Druid is optimized for sub-second queries to slice-and-dice, drill down, search, filter, and aggregate this data. Druid is commonly used to power interactive applications where performance, concurrency, and uptime are important.

Druid was initially created to power a scalable, visual, multi-tenant application where users could not only rapidly slice and dice data to create ad-hoc reports, but also interactively explore data to quickly determine the root cause of patterns and anomalies. Druid is designed from the ground up for sub-second queries, which are critical in interactive applications as usability studies have shown that humans get distracted and lose their train of thought if responses take longer than a second.


Druid’s core design combines ideas from OLAP/analytic databases, timeseries databases, and search systems to create a unified system for operational analytics. Core design ideas include:

Column-oriented storage

Druid stores and compresses each column individually, and only needs to read the ones needed for a particular query, which supports fast scans, rankings, and groupBys.

Native search indexes

Druid creates inverted indexes for string values for fast search and filter.

Streaming and batch ingest

Out-of-the-box connectors for Apache Kafka, HDFS, AWS S3, stream processors, and more.

Flexible schemas

Druid gracefully handles evolving schemas and nested data.

Time-optimized partitioning

Druid intelligently partitions data based on time and time-based queries are significantly faster than traditional databases.

SQL support

In addition to its native JSON based language, Druid speaks SQL over either HTTP or JDBC.

Horizontally scalable

Druid has been used in production to ingest millions of events/sec, retain years of data, and provide sub-second queries.

Easy to operate

Scale up or down by just adding or removing servers, and Druid automatically rebalances. Fault-tolerant architecture routes around server failures.

To learn more, read our Technology page.

Use cases

Druid is proven in production at the world’s leading companies, with the largest installations having more than a thousand servers, ingesting over 10 million events per second, and supporting thousands of concurrent queries per second. Druid is used to:

Analyze performance

Create interactive dashboards with full drill down capabilities. Analyze performance of digital products, track mobile app usage, or monitor site reliability.

Diagnose problems

Find the root cause of issues. Troubleshoot netflow bottlenecks, analyze security threats, or diagnose software crashes.

Find commonalities

Find common attributes among events. Identify shared components in defective products, or determine patterns in top performing products.

Increase efficiency

Improve product engagement. Optimize ad-spend in digital marketing campaigns or increase user engagement in online products.

To learn more, read our Use Cases page.

Learn more


Get started with Druid in minutes. Load your own data and query it.


Visualize data in Druid with Pivot and Superset.


Learn about some of the most common questions about Druid.

Disclaimer: Apache Druid is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.