Real-time analytics powered by Apache Pinot™ provides superior results to Apache Druid™
Users are increasingly turning to a new generation of databases designed for the demands of real-time Online Analytical Processing (OLAP), but which one is right for your use case?
High Queries Per Second (QPS)
Low Query Latencies
Flexible Indexing Strategies
Support for Upserts
Tiered Storage
Apache Pinot™, is a free open-source software (FOSS) database designed for real-time analytics. Apache Pinot is capable of supporting a high rate of queries per second (QPS) with low latencies — often as low as single digit millisecond or submillisecond results. Apache Pinot can perform fast ingestion and produce fresh results against massive datasets in the terabytes to petabytes scale.
Apache Druid is another free, open-source software (FOSS) database that makes similar claims of real-time analytics at speed and scale. Which one is the better choice for you?
While Apache Pinot and Apache Druid share many architectural similarities, it is in performance where their specific differences become immediately apparent. Apache Pinot can sustain thousands — even hundreds of thousands — of queries per second, allowing it to support user-facing analytics, where high concurrency of queries is a strict requirement. Apache Pinot supports this level of concurrency while exhibiting far lower query latencies for you to meet your strict Service Level Agreements (SLAs).
User-facing analytics is a special case of real-time analytics that requires ingesting streaming data, serving high concurrency QPS while maintaining low latencies (lower latencies are better). This is where Apache Pinot excels compared to Apache Druid. Traditional data warehouses were not designed for user-facing, real-time analytics; queries on data warehouses can take hours or even days to produce results.
Upserts Upserts are database operations that combine attributes of an update and an insert on a record. Upserts can update an existing row, or will add a row if it doesn’t already exist. This saves a lot of database work if you are commonly updating existing rows. Upserts are common in time series and data streaming use cases. Imagine how frequently the price of a commodity or the stock level, or how the quantity of sales or availability of a product may change in real-time. Apache Pinot deals with real-time upserts elegantly and seamlessly. Apache Druid cannot do real-time upserts. |
Flexible Indexing Apache Pinot has a wide variety of indexing types to support various use cases and data query patterns: forward, inverted, range, Bloom filter, geospatial, JSON, text, timestamp, and of course, its unique star-tree index. Apache Druid supports only the inverted index and Bloom filter. |
Query-Time Joins Apache Pinot has a multi-stage query engine that supports distributed query-time JOINs across data. Otherwise data has to be pre-joined prior to ingestion, such as through stream processing or batch jobs. Apache Druid does not support query-time SQL JOINs. |
YouGov got results 5× - 7× as fast with Apache Pinot versus Apache Druid
Confluera found that Apache Pinot was 2× - 4× faster than Apache Druid
Zomato found Apache Pinot was 2× as fast as Apache Druid
Performance results and relative improvements for your particular use case will depend on many factors. Yet over and over users have cited that Apache Pinot can perform the same queries as Apache Druid in a fraction of the time.
Apache Pinot was created specifically to address the performance deficiencies found in Apache Druid. When given multiple queries to handle simultaneously Druid rapidly sees query responsiveness rise to 10 seconds or even more — making it unsuitable for many real-time use cases such as web or mobile applications that require blink-of-an-eye responsiveness for user bases measured in the millions of data consumers. Apache Pinot can provide latencies measured in milliseconds, even at 1000 QPS or more.
In this benchmark published by Confluera, Apache Druid often exhibited latencies as high as 2 to 4 seconds or more, whereas Apache Pinot ran the same queries in a single second. Even in cases where Apache Druid latencies were subsecond, Apache Pinot latencies were lower — at times up to an order of magnitude faster. (Lower results are better.)
YouGov tried various databases to meet their needs for fast analytics. This shows the clear advantage of using a real-time Online Analytical Processing (OLAP) database compared to traditional Online Transactional Processing (OTLP) databases like PostgreSQL (SQL) or Cassandra (NoSQL). Even amongst real-time OLAP databases Apache Pinot handily out-performed Apache Druid and Clickhouse. (Lower results are better.)
It’s no surprise leading companies across many industries have been in the forefront of adopting Apache Pinot. Social media and collaboration platforms, delivery and ridesharing services, financial services, retail and telecommunications companies — many use cases benefit from providing real-time analytics and insights from your enterprise’s streaming data.
Compare the features of Apache Pinot to Apache Druid and you’ll see that Apache Pinot offers far more flexible indexing and ingestion capabilities to perform real-time analytics.
|
![]() |
![]() |
---|---|---|
SQL |
||
Query-Time JOINs |
![]() |
![]() |
Indexing Strategies |
||
Inverted Index |
![]() |
![]() |
Sorted Index |
![]() |
![]() |
Range Index |
![]() |
![]() |
JSON Index |
![]() |
![]() |
Geospatial Index |
![]() |
![]() |
Star-Tree Index |
![]() |
![]() |
Bloom Filter |
![]() |
![]() |
Text Index |
![]() |
![]() |
Timestamp Index |
![]() |
![]() |
Sparse Index |
Via StarTree Cloud |
![]() |
Ingestion |
||
Upserts (Full-row and partial-row) |
![]() |
![]() |
Change Data Capture (CDC) |
![]() |
![]() |
Out-of-Order Handling |
![]() |
![]() |
Real-Time Deduplication |
![]() |
![]() |
Event Streaming Integration |
||
Apache Kafka |
|
|
Amazon Kinesis |
|
|
Apache Pulsar |
|
Via Kafka-on-Pulsar (KoP) |
Google PubSub |
|
|
Data Warehouse Connectors (Batch Ingestion) |
||
Snowflake |
Via StarTree Cloud |
|
Delta Lake |
Via StarTree Cloud |
|
Google BigQuery |
Via StarTree Cloud |
|
Object Store Support (Batch Ingestion) |
||
Amazon S3 |
|
|
Google Cloud Storage (GCS) |
|
|
Azure Data Lake Storage (ADLS) gen2 |
|
|
Hadoop Distributed File System (HDFS) |
|
|
Batch Ingestion File Formats |
||
Avro |
|
|
CSV |
|
|
FlattenSpec |
|
|
JSON |
|
|
ORC |
|
|
Parquet |
|
|
Protocol Buffers (Protobuf) |
|
|
Thrift |
|
|
TSV |
|
|
Data Analytics Integration |
||
Apache Spark |
|
|
Tiered Storage |
||
Multi-volume tiering |
|
|
Compute node separation |
Via multiple tenants |
|
Cloud Object Storage |
Via StarTree Cloud |
|
OLAPAnalytics
In this article, we attempt to provide a fair comparison of the three technologies, along with areas of strength and opportunities for improvement for each.
Resources
Discover more about Apache Pinot, and how it supports user-facing, real-time analytics.
StarTree Cloud is our fully-managed, cloud-native Database-as-a-Service (DBaaS), powered by Apache Pinot. StarTree Cloud automates data ingestion and relieves you of administrative tasks, allowing you and your team to focus on building your applications and gaining insights out of your data.
Apache Pinot, Apache Druid, Apache Kafka, and Apache Pulsar are registered trademarks or trademarks of the Apache Software Foundation (ASF). No endorsement by The Apache Software Foundation is implied by the use of these marks.