Apache Doris

active

by Apache Software Foundation · since 2017 · also known as Doris, Palo

Real-time MPP analytical database with MySQL compatibility, search indexes and lakehouse access.

columnar / olaprelationaldocumentsearch enginevectordatabase engineopen source (permissive)mature

Overview

Apache Doris began as Baidu's Palo and is now an Apache top-level project: an MPP columnar database with a vectorized C++ engine, MySQL protocol compatibility and a simple two-component architecture (frontend and backend). It handles real-time ingestion with unique-key upserts, inverted indexes for log search, the VARIANT type for semi-structured data, vector indexes, and federated queries over Iceberg, Hudi, Paimon and Hive. A compute-storage separated mode runs on object storage. Doris overlaps heavily with StarRocks and ClickHouse; it is a good fit for real-time reporting and log analytics, with documentation and community still skewed toward China.

Strengths & trade-offs

Strengths

  • +Simple architecture: just frontend and backend processes, no external coordinator
  • +Inverted indexes and VARIANT type make it a credible log-analytics engine
  • +Real-time upserts with unique-key model and partial column updates
  • +Federated queries across Iceberg, Hudi, Paimon, Hive and JDBC sources
  • +MySQL compatibility for tools and drivers

Trade-offs

  • −Feature overlap and divergence with StarRocks confuses evaluations
  • −English docs and community are thinner than Chinese ones
  • −MySQL-dialect SQL rather than ANSI/Postgres
  • −Tuning bucketing and partitioning is still manual

Great for

  • +Real-time reporting and dashboards
  • +Log and observability analytics
  • +Lakehouse query acceleration
  • +User behavior and ad analytics

Think twice for

  • −OLTP
  • −Very small embedded analytics
  • −Teams needing a fully managed hyperscaler-native service

Capabilities

Native or official first-party support · 14 of 25 tracked

✓Joins
✓Secondary indexes
✓Full-text search
✓Vector search
✓Geospatial
✓JSON
✓Materialized views
✓TTL / expiry
✓Columnar storage
✓Durable persistence
✓Compression
✓Role-based access
✓Online schema changes
✓Streaming ingest
–Transactions
–Change data capture
–Triggers
–Stored procedures
–Pub/Sub
–In-memory
–Encryption at rest
–Time travel
–Branching
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Large · ≤ 1 PB
Horizontal scaling
Native
Multi-region
No
Transactions
Limited ACID
Consistency
Strong
Schema
Flexible
Architecture
Distributed, Shared storage
Query languages
SQL (MySQL dialect)

FE and BE nodes scale out; storage-compute separation mode stores data on object storage.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

compatible withMySQL
apis & protocolsMySQL wire protocol, HTTP Stream Load, Arrow Flight SQL
client languagesJava, Python, Go, JavaScript, C++
used byBaidu, Xiaomi

Alternatives to Apache Doris

Compare all→
StarRocksColumnar / OLAP15.6

MPP OLAP database with a fast vectorized engine, real-time upserts and native lakehouse queries.

apache-doris vs starrocks →
ClickHouseColumnar / OLAP69.8

Open-source columnar OLAP database known for very fast aggregations over billions of rows.

apache-doris vs clickhouse →
VeloDBColumnar / OLAP2.3

Commercial cloud and enterprise distribution of Apache Doris from its core maintainers.

apache-doris vs velodb →
Apache DruidColumnar / OLAP35.0

Real-time analytics database for sub-second slice-and-dice over streaming event data.

apache-doris vs apache-druid →
Apache PinotColumnar / OLAP29.9

Real-time OLAP store from LinkedIn for user-facing analytics at very high query rates.

apache-doris vs apache-pinot →
ElasticsearchSearch Engine75.1

Lucene-based distributed search and analytics engine for text, vectors, logs and metrics.

apache-doris vs elasticsearch →

Apache Doris FAQ

What is Apache Doris?

Apache Doris is a columnar / OLAP database by Apache Software Foundation, first released in 2017. Apache Doris began as Baidu's Palo and is now an Apache top-level project: an MPP columnar database with a vectorized C++ engine, MySQL protocol compatibility and a simple two-component architecture (frontend and backend). It handles real-time ingestion with unique-key upserts, inverted indexes for log search, the VARIANT type for semi-structured data, vector indexes, and federated queries over Iceberg, Hudi, Paimon and Hive. A compute-storage separated mode runs on object storage. Doris overlaps heavily with StarRocks and ClickHouse; it is a good fit for real-time reporting and log analytics, with documentation and community still skewed toward China.

Is Apache Doris open source?

Yes. Apache Doris is open source. License: Apache License 2.0.

Does Apache Doris support ACID transactions?

Partly. Apache Doris offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.

Does Apache Doris scale horizontally?

Apache Doris scales horizontally out of the box, with built-in sharding or partitioning. It is comfortable at large scale (≤ 1 PB).

How can I run Apache Doris?

You can self-host it. Managed offerings include VeloDB Cloud.

What is Apache Doris best for?

Apache Doris is a strong fit for real-time reporting and dashboards; log and observability analytics; and lakehouse query acceleration. Think twice for OLTP.

What are the best alternatives to Apache Doris?

Common alternatives to Apache Doris include StarRocks, ClickHouse, VeloDB, Apache Druid and Apache Pinot. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Apache Doris?

Apache Doris ranks #201 of 844 databases on the WhichDB Score (15.9/100), and #21 among columnar / OLAP databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.