[VELODB.IO]
DATANOMIX.PRO // САЛЫСТЫРУ // DORIS vs CLICKHOUSE

Apache Doris vs ClickHouse: аналитика үшін толық салыстыру

JOIN, real-time updates, SQL-үйлесімділік: екі OLAP-қозғалтқышты бенчмарктар мен көшу кейстерімен толық салыстыру.

Дайындаған:
Datanomix.pro
Оқу уақыты:
~14 мин

1. ClickHouse қашан жеткіліксіз болады

ClickHouse — single-table scan және агрегациялар үшін керемет қозғалтқыш: колоночтық сақтау, векторландырылған орындау, қарапайым сұраныстарда әсерлі жылдамдық. Яндексте жасалған ол лог-аналитика мен метрикалар стандартына айналды.

Бірақ тапсырмалар күрделенгенде — баламалар іздеуге мәжбүр ететін мәселелер пайда болады:

  • JOIN-өнімділігі: ClickHouse multi-table JOIN-да тарихи түрде әлсіз. Жақында ғана толық CBO пайда болды.
  • Real-time updates: ReplacingMergeTree фондық merge арқылы eventual дедупликация қамтамасыз етеді. Нағыз UPSERT жоқ, partial update жоқ.
  • Дедупликация: FINAL кілт сөзі ReplacingMergeTree-де оқу өнімділігін құртады — on-the-fly merge іске қосады.
  • SQL-толықтығы: TPC-DS сұраныстарының ~50% орындалмайды — correlated subqueries, күрделі CTE қолдау көрсетілмейді.
  • Операциялық күрделілік: ClickHouse Keeper/ZooKeeper арқылы қолмен шардтау, деректерді автоматты ребалансинг жоқ.

2. Архитектура: append-only қозғалтқыш vs unified lakehouse

Негізгі айырмашылық — жаңартуларды өңдеу және кластерді басқару моделінде.

ClickHouseApache Doris
MergeTree family — фондық merge-мен append-onlyColumnar MPP, FE+BE архитектурасы автобалансирлеумен
ClickHouse Keeper / ZooKeeper арқылы қолмен шардтауMySQL-протоколы — адаптерсіз JDBC/ODBC қосылу
Өз SQL-диалектісі (MySQL/PostgreSQL-мен үйлесімсіз)Unique Key (real-time UPSERT) + Aggregate Key + Duplicate Key
Нативтік UPSERT жоқ — тек ReplacingMergeTree + FINALVectorized engine + CBO + Runtime Filter JOIN үшін
Distributed кестелер қолмен баптауды қажет етедіШардтар мен репликаларды автоматты басқару

Apache Doris бастапқыда деректер real-time жаңартылатын сценарийлер үшін жобаланған. Үш кілт моделі (Unique, Aggregate, Duplicate) әр кесте үшін оңтайлы стратегияны таңдауға мүмкіндік береді.

3. Өнімділік: бенчмарктар

VeloDB Engineering және Apache Doris жариялаған бенчмарктардан деректер:

БенчмаркClickHouseApache DorisДереккөз
TPC-H SF100Бастапқы деңгей3x жылдамVeloDB Engineering
TPC-DS (99 сұраныс)~50% сұраныс fail99/99 сұранысVeloDB Engineering
SSB + 25% updatesБастапқы деңгей5–34x жылдамVeloDB Engineering
ClickBench (single-table)Сәйкес келедіСәйкес келедіClickBench.com
CoffeeBench (real-world)Бастапқы деңгей8x жылдам, 8x арзанVeloDB Engineering
Write throughput (updates)ReplacingMergeTree + FINALDelete Bitmap — тұрақты жылдамVeloDB Engineering

4. SQL: стандарт vs диалект

ClickHouse MySQL және PostgreSQL-мен үйлесімсіз өз SQL-диалектісін қолданады. BI-құралдарды қосу арнайы адаптерлерді қажет етеді. Correlated subqueries, кейбір window functions, күрделі CTE қолдау көрсетілмейді.

Apache Doris MySQL-протоколы бойынша жұмыс істейді. Кез келген BI-құрал (Grafana, Superset, Tableau, Power BI) стандартты JDBC/ODBC арқылы адаптерсіз қосылады. Толық TPC-DS SQL қолдау.

// МЫСАЛ: MULTI-TABLE JOIN + WINDOW FUNCTION SELECT department, employee, SUM(revenue) AS total, RANK() OVER (PARTITION BY department ORDER BY SUM(revenue) DESC) AS rnk FROM sales s JOIN employees e ON s.emp_id = e.id WHERE sale_date >= '2026-01-01' GROUP BY department, employee;

Бұл JOIN және RANK() OVER бар сұраныс Doris-те дайын жұмыс істейді. ClickHouse-та correlated subqueries мен кейбір window functions қайта жазуды қажет етуі мүмкін.

5. Real-time updates: Delete Bitmap vs ReplacingMergeTree

ClickHouse ReplacingMergeTree: деректер тек фондық merge кезінде дедуплицирленеді. Merge-ге дейін сұраныстар дубликаттарды қайтарады. FINAL кілт сөзі оқу кезінде merge іске қосады — өнімділікті құртады.

Apache Doris Unique Key + Delete Bitmap: жаңартулар жазғаннан кейін бірден көрінеді. Partial column update қолдау көрсетіледі. FINAL қажет емес — деректер әр оқуда консистентті.

25% жаңартулары бар SSB бенчмаркінде Apache Doris ClickHouse-тан 5–34 есе жылдам нәтиже көрсетті — толығырақ «34x faster real-time updates» мақаласында.

CDC-интеграция: Flink CDC → Doris нативтік жұмыс істейді. ClickHouse-та ұқсас pipeline Kafka + materialized views + ReplacingMergeTree қажет етеді — баптау мен қолдау едәуір күрделірек.

6. Иелену құны (TCO)

TCO салыстырудағы негізгі факторлар:

Лицензиялар
ЛицензияларЕкі жоба да — Apache License 2.0. Лицензиялық төлемдер жоқ.
ИнфрақұрылымClickHouse: қолмен шардтау, ClickHouse Keeper, қолмен ребалансинг. Doris: шардтар мен репликаларды автоматты басқару — ops-жұмыс аз.
ИнженерлерClickHouse арнайы сараптама қажет етеді: merge саясаттары, шардтау, FINAL. Doris MySQL-үйлесімді — мамандар пулы кеңірек.
СақтауСығымдау сәйкес (екеуі де колоночтық). Бірақ Doris merge-ге дейінгі ReplacingMergeTree-ге тән деректер дублирлеуін болдырмайды.
ЭкожүйеClickHouse community үлкен, бірақ тулинг фрагменттелген. Doris кез келген MySQL-үйлесімді құралға қосылады — әмбебап BI-экожүйе.

7. ClickHouse-тен көшу кейстері

Kwai / Bleem (триллиондаған жарнама жолдары)

ClickHouse + Elasticsearch-ті бір Apache Doris-ке біріктіру (Bleem платформасы). Нәтиже: күніне ~1 млрд сұраныс, архитектура жеңілдеуі.

Enterprise-компаниялар (жариялы кейстер)

doris.apache.org-та көптеген enterprise-кейстер: финтех, ритейл, телеком. Көшудің типтік себебі — бір жүйеде JOIN + real-time updates қажеттілігі.

Көшу тәсілі

SQL негізінен үйлесімді. Негізгі өзгерістер: кесте қозғалтқыштарын маппинг (MergeTree → Duplicate Key, ReplacingMergeTree → Unique Key, AggregatingMergeTree → Aggregate Key).

8. ClickHouse қашан жақсырақ

ClickHouse нақты сценарийлерде тамаша таңдау болып қала береді:

  • Append-only деректердегі таза single-table агрегациялар: логтар, метрикалар, time-series жаңартусыз.
  • Multi-table JOIN немесе real-time updates қажеттілігі жоқ.
  • Materialized views дедупликацияны шешіп тұрған бар кластер.
  • ClickHouse-та терең сараптамасы бар және жүйелерді біріктіру жоспары жоқ команда.

Бірақ: JOIN + updates + SQL-толықтығы қажет болса → Doris жеңеді.

Дереккөздер

FAQ

Doris single-table сұраныстарда ClickHouse-тан баяу ма?

JOIN-сіз таза scan/aggregate-те — сәйкес келеді. ClickBench-те Doris пен ClickHouse жақын нәтижелер көрсетеді. Алшақтық JOIN мен updates-те басталады.

MergeTree кестелерін Doris-ке көшіруге бола ма?

Иә. Schema mapping: MergeTree → Duplicate Key, ReplacingMergeTree → Unique Key, AggregatingMergeTree → Aggregate Key.

ClickHouse экожүйесі ше? Community үлкенірек.

ClickHouse community үлкенірек, бірақ Doris кез келген MySQL-үйлесімді құралға адаптерсіз қосылады — BI-экожүйе кеңірек.

ClickHouse Cloud vs VeloDB Cloud ше?

Екеуі де managed service ұсынады. Негізгі айырмашылық: VeloDB бұлтта Doris-тің барлық артықшылықтарын (JOIN, updates, SQL completeness) сақтайды.

Doris пен ClickHouse-ты деректеріңізде салыстырғыңыз келе ме?

./САЛЫСТЫРУ_СҰРАУ.sh
© 2026 DATANOMIX.PRO — VELODB-НЫҢ ОРТАЛЫҚ АЗИЯДА ЭКСКЛЮЗИВТІК СЕРІКТЕСІ
VeloDB — Real-Time Analytics /БАСТЫ