ClickHouse vs StarRocks vs Apache Doris

ClickHouse, StarRocks and Apache Doris are all Apache-2.0 real-time analytics databases, but they fit different jobs. This page shows which one suits log analytics, customer-facing dashboards or a lakehouse query layer.

On this page

Which of the three fits your real-time analytics workload

All three platforms are Apache-2.0 licensed and self-hosted, so the choice turns on the workload you need to serve and the operating model your team can sustain. ClickHouse, StarRocks and Apache Doris each handle real-time analytics, but they differ in where they are strongest. Logs and observability favor the team that wants a column store it runs with ClickHouse's MergeTree engine and ClickHouse Keeper coordination, provided it is comfortable operating replicas and backups itself. Customer-facing dashboards with joins and high concurrency are where StarRocks and Doris compete directly, and both speak the MySQL protocol, so existing BI tools connect without rework. A lakehouse query layer over Iceberg, Delta Lake or Hudi points more strongly to StarRocks, which queries those formats directly, or to Doris, which accelerates lakehouse queries and offers a decoupled mode on shared storage.

The fit statements are conditional. Choose ClickHouse if your data lives mainly in its own tables, you want a single, well-documented server and cluster model, and your team will own ReplicatedMergeTree replicas, Keeper nodes and tested restores. Choose StarRocks if you need shared-data operation on object storage with stateless compute nodes, or direct lakehouse access as a core requirement; confirm the shared-data setup and cache sizing against your own query patterns. Choose Apache Doris if you want hybrid structured, text and vector search alongside SQL analytics, or a choice between integrated and decoupled modes as your scale changes; confirm which index and update model your queries need.

The three are not interchangeable. Their update models, join behavior, cache behavior and FE or Keeper coordination differ enough that a benchmark on your own schema, data volume and query mix will tell you more than any feature table. Before you commit, run your heaviest dashboard queries, your largest backfill and one restore drill on each candidate, and record the operating hours each one needed. Check the current release lines and support windows at the time of your decision, because all three ship on frequent cycles.

Which platform fits which scenario

This table maps common self-hosted real-time analytics workloads to the platform that fits best, the condition that makes it the best choice, and the first test to run. Read it as a starting shortlist, then validate against your own data volumes, query shapes and team skills before committing.

ScenarioBest fit and conditionReasonable alternative and what to test first
Log and event analytics on a single retention windowClickHouse, when the workload is append-heavy log or event data queried with SQL and the team already operates Linux servers and wants a single engine with a documented backup path.StarRocks or Apache Doris if you also need MySQL-protocol BI tools on the same store. Test ingest rate and compression on a week of your real logs.
Customer-facing dashboards with frequent joinsStarRocks or Apache Doris, when dashboards join several large tables and need MySQL-protocol clients with a primary key or unique model for upserts.ClickHouse, when most queries hit one wide denormalized table. Test your top ten dashboard queries with realistic concurrency on each engine.
Lakehouse query layer over Iceberg, Delta Lake or HudiStarRocks or Apache Doris, when the main goal is querying open table formats in place with acceleration rather than copying data into a proprietary store.ClickHouse, when you mainly need to load data into its own tables. Test read performance and metadata catalog compatibility against your actual table format versions.
Object storage with elastic computeStarRocks shared-data mode, where stateless compute nodes cache data over S3, GCS, Azure Blob Storage, MinIO or HDFS, when compute must scale independently of storage.Apache Doris decoupled mode on shared storage, which the docs suggest for elastic scaling, or ClickHouse with its own backup target on object storage. Confirm cache behavior for cold queries.
Small team with limited database operations capacityClickHouse, when a single server or a small replicated cluster is enough and the team wants a narrow, well-documented operating model.Apache Doris integrated mode, which the docs suggest for manageable scale and simpler operations. Ask a partner to size the front-end and back-end node counts against your load.
Mixed workloads with tenant isolation in one clusterStarRocks, when resource management for isolating tenants in a shared cluster is a stated requirement.Apache Doris or ClickHouse with separate clusters per tenant. Confirm isolation behavior under peak load in your environment.
Teams that must confirm license and governance firstClickHouse and StarRocks both use Apache-2.0 licenses, and StarRocks describes itself as a Linux Foundation project, while Apache Doris is an Apache Software Foundation project.Check foundation governance, contributor base and commercial support options with each vendor before selection. Do not assume the license alone settles support or roadmap questions.

How ClickHouse, StarRocks and Doris split storage and compute

ClickHouse keeps storage and compute on the same servers, and its high availability comes from replication rather than from a separate compute tier. Tables use ReplicatedMergeTree, and replicas coordinate through ClickHouse Keeper, which replaces ZooKeeper. The replication guide recommends at least three Keeper nodes on dedicated hosts in production, with about 4 GB of RAM each, so a replicated cluster carries those hosts in addition to the data servers. A recovered replica syncs missing data from a healthy replica automatically. Scaling out means adding replicas for read capacity and shards for more data, and each shard's disks grow with it. Replication does not protect against human error or corruption, so plan BACKUP and RESTORE to object storage and run restore tests on a spare cluster, as the backup documentation advises.

StarRocks offers two layouts. In shared-nothing mode, frontend (FE) nodes handle metadata, client connections, query planning and scheduling, and backend (BE) nodes both store and compute on local disks. In shared-data mode, stateless compute nodes (CNs) run queries and cache data while the data lives in object storage such as S3, GCS, Azure Blob Storage or MinIO, or in HDFS. Shared-data mode uses a tiered cache across memory, local disk and remote storage, so compute can be added or removed without moving data, but cache warmth and object storage latency then shape query performance. Confirm the shared-data version you need, since the README states that shared-data is supported from version 3.0, and test cold-cache queries against your own data before choosing this layout.

Doris runs in one of two modes. Integrated mode places storage and compute on the same backend nodes, and the Doris docs suggest it for manageable scale and simpler operations. Decoupled mode keeps data on shared storage such as S3, HDFS or OSS, and the docs suggest it for elastic scaling. Frontend nodes take Master, Follower and Observer roles, and backend nodes store data with multiple replicas. Choosing integrated mode keeps the operating model close to a conventional MPP cluster, while decoupled mode adds a dependency on the shared storage service and its availability. Ask your Doris team which mode the storage and compute split in your design requires, and confirm how the chosen mode handles backup and cluster rebuilds in your environment.

What each platform's license and foundation mean for you

ClickHouse server is open source under the Apache License 2.0, and the source is published in the ClickHouse GitHub repository. ClickHouse Inc. is the company behind the project and sells ClickHouse Cloud as a separate managed service. Running the open-source server on your own infrastructure does not require a commercial contract, but the vendor's roadmap, release decisions and support terms are set by the company rather than a foundation.

  • Single steward: The project is governed by ClickHouse Inc., so confirm how the company handles community contributions, release decisions and any change to the licensing of the server.
  • Release and support windows: Stable releases ship roughly monthly and LTS releases twice a year, with LTS releases supported for a year, so your upgrade plan depends on the lines you pick.
  • Separate commercial product: ClickHouse Cloud is a different offering with its own feature set, so features you rely on in the cloud may not match the self-hosted server.
  • Security support: The security policy lists currently supported versions, and any version outside that list receives no security updates.

Before signing with ClickHouse Inc. for support or Cloud, ask whether any paid support contract covers the open-source server, what it costs and how it is scoped, and whether the vendor commits to a notice period for changes to the license or to supported versions.

What drives the running cost of each cluster

Running a real-time analytics cluster costs more in staff time and standby capacity than in the software itself, which is Apache-2.0 for all three products. The cards below cover the layout, coordination nodes, storage and cache, recovery testing and upgrade work that set the bill, and what to request in a written scope before comparing quotes.

Compute and storage layout

ClickHouse replicas hold their own data on local disks, so each replica adds both compute and storage. StarRocks shared-nothing clusters pair backend (BE) nodes that store and compute together, while Apache Doris integrated mode works the same way. Ask the vendor or integrator to size the number of nodes for replicas, peak query load and retained data separately, and to state which of those drives the count.

Keeper and frontend node count

A replicated ClickHouse cluster needs ClickHouse Keeper, and the replication guide recommends at least three Keeper nodes on dedicated hosts in production, each with about 4 GB of RAM. StarRocks and Doris add frontend nodes for metadata and query planning, which run as leader, follower or observer roles. Confirm whether the quote counts these coordination hosts as extra machines, because they recur even when data volume is small.

Object storage and cache sizing

In StarRocks shared-data mode and Doris decoupled mode, the data sits in object storage such as S3, GCS, Azure Blob Storage, MinIO, HDFS or OSS, and stateless compute nodes cache hot data locally. Object storage bills per volume and request, while cache size decides how often queries pay the remote read cost. Ask for the cache tier sizing and the object storage request assumptions in writing, and test them against your own query mix.

Backup and restore testing

ClickHouse BACKUP and RESTORE can write full and incremental backups to local disk, S3-compatible storage or Azure Blob Storage. The backup documentation says replication does not protect against human error or corruption, and that a backup never test-restored will probably not restore when needed. Budget recurring restore tests on a spare cluster, and ask whether the quote includes them or only the initial backup job.

Upgrade cadence and staff time

ClickHouse ships stable releases roughly monthly and LTS releases twice a year, with each LTS supported for a year, and its FAQ advises a pre-production test and changelog review before each upgrade. StarRocks and Doris each have their own release cycles, so the same test-and-roll work applies to each. Ask who performs and signs off each upgrade, and whether the retainer covers it, since this is the largest recurring line for most teams.

Licensing and support contracts

All three server projects are Apache-2.0, so the software itself carries no license fee. Paid spend comes from managed services, such as ClickHouse Cloud from ClickHouse Inc., or from an outside integrator's fixed-scope engagement and retainer. Ask each quote to separate one-time implementation, recurring support and any vendor subscription, so the three options compare on the same basis.

What implementing each platform involves

The sequence below takes a team from sizing to a tested, upgradable production cluster, and it ends with a documented restore and a dated upgrade plan for whichever engine you choose.

  1. Size the cluster against representative data and queries

    Your team, or DeployOpen under a fixed-scope agreement, loads a representative slice of real event or table data and runs the queries your dashboards and APIs will issue. Measure ingest rate, query latency at peak concurrency, and disk and memory per node. Record the results in writing. The step is done when you can show which node counts and memory sizes met your targets, and which assumptions still need a second test. Ask each vendor, in writing, for its own sizing guidance before you commit to hardware.

  2. Choose the layout and storage mode

    Decide whether the engine runs as a shared-nothing cluster on local disks, as ClickHouse replicas, as StarRocks shared-data compute nodes over object storage, or as Doris integrated or decoupled mode. Map each option to your data residency rules, storage budget and scaling pattern. Confirm which storage backends your environment supports. The output is a written architecture decision with a node inventory and a list of open questions for the vendor or your own platform team.

  3. Stand up replication or the FE and BE roles

    For ClickHouse, deploy ReplicatedMergeTree tables coordinated by ClickHouse Keeper. The replication guide recommends at least three Keeper nodes on dedicated hosts in production, each with about 4 GB of RAM. For StarRocks, deploy frontend nodes in leader, follower or observer roles and backend or compute nodes. For Doris, deploy FE nodes in Master, Follower or Observer roles and BE nodes with multiple replicas. Test a planned node failure and confirm the cluster keeps serving queries. You are finished when a replica or node restart completes without manual data copying, and you have the runbook.

  4. Configure authentication and network access

    Wire the engine into your identity estate. ClickHouse supports external authenticators including LDAP directories, Kerberos, SSL X.509 certificates, an HTTP authenticator and JWT. Confirm which of these your identity provider can supply, and check the access control documentation for role and grant modeling. StarRocks and Doris speak the MySQL protocol, so confirm how their user and role features map to your directory groups. Your security team validates the result by testing an account that should be denied and one that should succeed. The step is complete when authentication and role mapping are documented and tested.

  5. Prove backup and restore on a spare cluster

    Configure backups to local disk, S3-compatible storage or Azure Blob Storage, and schedule full and incremental runs. ClickHouse documents BACKUP and RESTORE for tables, partitions or databases, and it notes that replication does not protect against human error or corruption. Restore a backup to a spare cluster and compare row counts and sample query results against production. Repeat the test on a schedule. The vendor's documentation warns that a backup never test-restored will probably not restore when needed. Done means a successful restore is logged with its date and the reviewer's sign-off.

  6. Run a pre-production environment on the upgrade path

    Mirror production in a pre-production environment with representative data and queries. Pick a release line using each project's policy: ClickHouse publishes stable releases roughly monthly and LTS releases twice a year, supported for a year, and its security policy lists which versions receive security updates. Check StarRocks and Apache Doris release notes in the same way. Before each upgrade, read the changelog, since ClickHouse notes that minor backward-incompatible changes can occur. Rehearse the upgrade and the rollback. Done means a signed-off upgrade record exists for the chosen version.

  7. Document operations and hand over

    Write the operating manual your on-call team will use: monitoring thresholds, Keeper or FE quorum checks, backup schedules, restore steps, the authentication model and the upgrade calendar tied to supported versions. Schedule a handover session and walk through a simulated incident. Agree in writing who owns each recurring task after go-live, and whether ongoing support, upgrades or testing will run under a retainer. The output is a handover pack and a named owner for each runbook entry.

What buyers ask before choosing or hiring help

Can our team run ClickHouse, StarRocks or Apache Doris ourselves?

Yes, all three are open source and can be self-hosted, but the answer depends on whether you already operate distributed databases and can staff on-call for them. ClickHouse uses ReplicatedMergeTree tables coordinated by ClickHouse Keeper, which the replication guide suggests running on at least three dedicated nodes in production. StarRocks splits work between frontend (FE) and backend (BE) nodes, or between FE and stateless compute nodes in shared-data mode. Doris uses Master, Follower and Observer FE roles plus BE nodes. Each adds moving parts you must monitor, patch and back up. Confirm your staffing against that node topology before committing.

What drives the effort and cost of self-hosting real-time analytics?

Effort is driven mostly by data volume, query concurrency, the number of replicas and shards, and how much of the stack you must build yourself. Costs are mainly your own infrastructure and staff time. Software licenses are zero for all three under Apache-2.0, so the recurring cost is hardware, storage, network egress to object storage, and the engineers who run upgrades and incidents. One-time costs include schema design, ingestion pipelines, and BI connections. When requesting a quote from an implementation partner, ask for the written scope split into deployment, integration, hardening, backup testing and handover, and ask which items recur as retainers.

What does the work need from our internal team?

You need people who own the data model, the query workload and the operating environment. Plan for a platform owner who understands replication or shard placement, a data engineer who knows your ingestion sources, and a security contact who can review authentication and network exposure. ClickHouse offers LDAP, Kerberos, X.509, HTTP and JWT external authenticators, so identity integration is a design decision your team must make. Your team must also run restore tests, because ClickHouse's backup documentation warns that a backup never test-restored will probably not restore properly. Make sure those responsibilities are named before work starts.

How long does a proof of concept take to scope?

A proof of concept is scoped from your data volume, query shapes and target latency, so there is no fixed duration that applies across environments. Larger volumes need more time to load, partition and test, and concurrency tests need representative traffic. The ClickHouse production FAQ recommends a pre-production environment with representative data and queries, which is a useful baseline for all three engines. Ask any provider to state the scope, the data sample to be used, the success criteria and the sign-off process in writing before quoting duration.

Is migrating from our existing store to one of these databases feasible?

Migration is feasible when your analytical queries are stable and you can rebuild the schema for a columnar or MPP engine. The main work is re-modeling tables, choosing sort keys or data models (ClickHouse MergeTree, StarRocks primary key and related models, or Doris Duplicate, Aggregate and Unique models), rewriting SQL where dialects differ, and rebuilding ingestion. All three speak SQL, and StarRocks and Doris advertise MySQL protocol compatibility, which eases BI reconnection. Run both systems in parallel and validate results before cutover. Confirm each engine's SQL differences against your query inventory.

How does each project's release cadence affect upgrade work?

Release cadence sets how often you must test and apply upgrades. ClickHouse ships stable releases roughly monthly and LTS releases twice a year, supported for a year, and its security policy lists 26.9, 26.8, 26.7 and 26.3 as currently supported. The production FAQ advises reading the changelog because minor backward-incompatible changes can occur. StarRocks 4.1.3 was published on September 17, 2026, and Apache Doris 4.1.5 on October 15, 2026, so check each project's support policy and release notes before choosing a line. Budget upgrade testing as recurring work in any retainer or internal plan.

Does DeployOpen run these platforms for us, and how is the work priced?

DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure, and most engagements are fixed-scope with scope, deliverables and timelines agreed in writing before work starts. Ongoing support, upgrades and continuous testing are available as retainers. DeployOpen does not publish a price list, so a quote follows from the written scope. Ask for the scope items, the assumptions about data volume and environment, what is one-time and what recurs, and who is responsible for backup restore tests.

How DeployOpen helps choose and implement a real-time analytics platform

DeployOpen plans, implements, hardens and documents self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For ClickHouse vs StarRocks vs Apache Doris, we start from your query shapes, data volumes and team skills, then build and hand over the option you choose.

How we scope

  • Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.
  • The written scope names the workloads to test, such as log analytics, customer-facing dashboards or a lakehouse query layer.
  • Scope also covers node layout, object storage or local disk, the lakehouse sources to query and the BI tools that connect.

How we build

  • We deploy the chosen engine in your environment, with replication or shared-data settings matched to your scope.
  • We load representative data and run your own queries and concurrency tests against the candidate platforms before you decide.
  • We integrate authentication, BI connections and ingestion pipelines, then harden the cluster and configure backups.

How we hand over

  • Deliverables include deployment documentation, runbooks for upgrades, backup and restore, and the test results behind the choice.
  • We document the release and support lifecycle of the selected platform so your team can plan version upgrades.
  • We include restore tests on a spare cluster, since an untested backup may not restore when needed.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • A retainer can cover version upgrades, security patch reviews and periodic restore exercises on your own infrastructure.
  • Ask any provider to confirm which support windows, versions and security policies apply before you commit to a platform.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.