# Apache Doris

> MPP analytical database with MySQL-compatible SQL

Apache Doris is an MPP analytical database for real-time reporting and ad-hoc analysis, speaking MySQL-compatible SQL over a Java front end and a C++ back end, and the project StarRocks was originally forked from.

Website: https://doris.apache.org

## Use it when

- Real-time reporting and user-facing analytics need seconds-fresh data from Kafka or CDC with high query concurrency.
- MySQL protocol compatibility matters: existing clients, drivers, and BI tools connect unchanged.
- Updates are part of the workload; the merge-on-write Unique Key model gives real UPDATE and DELETE.
- One engine should serve its own columnar store and also federate over Iceberg, Hive, Hudi, and Paimon.

## Think twice when

- You are also evaluating StarRocks; the projects share ancestry but have genuinely diverged, so benchmark your workload rather than assume parity.
- The team cannot operate FE and BE node groups; VeloDB and SelectDB sell the managed relief.
- Sub-second freshness at extreme per-user concurrency is the entire job; Pinot's indexing toolbox is purpose-built for exactly that.

## How it runs

Self-hosted as Java front ends (metadata, planning, failover) over C++ back ends (storage, execution), each scaling horizontally; version 3.0 adds a shared-storage mode with local cache over object storage. Routine Load ingests from Kafka and CDC streams. Managed options come from VeloDB Cloud and SelectDB.

## Details

### General

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

### OLAP Engines

| Attribute | Value |
| --- | --- |
| Specialization | Unified real-time warehouse and lakehouse query federation |
| SQL dialect | MySQL-compatible |
| Joins | Distributed joins, cost-based optimizer |
| Updates and deletes | Unique Key model, merge-on-write; UPDATE, DELETE, partial columns |
| Ingest to queryable | Seconds: second-level freshness from Kafka Routine Load and CDC |
| Storage format | Own columnar; reads Iceberg, Hive, Hudi, Paimon; writes Iceberg and Hive |
| Compute and storage | Coupled BE nodes; 3.0 adds shared storage with local cache |
| Indexes | Prefix and ZoneMap built in; inverted, Bloom and NGram optional |
| Pre-aggregation | Aggregate Key model at write; sync and async materialized views |
| Concurrent users | High: row store and short-circuit plans for point-query serving |

## Capabilities

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

---

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