[VELODB.IO]
DATANOMIX.PRO // TAQQOSLASH // DORIS vs CLICKHOUSE

Apache Doris vs ClickHouse: analitika uchun toʼliq taqqoslash

JOIN, real-time updates, SQL-mosliklik: ikki OLAP-dvigatelni benchmarklar va koʼchish keyslari bilan batafsil taqqoslash.

Tayyorlagan:
Datanomix.pro
Oʼqish vaqti:
~14 min

1. ClickHouse qachon yetarli boʼlmay qoladi

ClickHouse — single-table scan va agregatsiyalar uchun ajoyib dvigatel: kolonchali saqlash, vektorizatsiyalangan bajarish, oddiy soʼrovlarda taʼsirchan tezlik. Yandexda yaratilgan u log-analitika va metrikalar standarti boʼldi.

Lekin vazifalar murakkablashganda — alternativlar izlashga majburlagan muammolar paydo boʼladi:

  • JOIN-unumdorlik: ClickHouse multi-table JOIN da tarixiy jihatdan zaif. Yaqinda gacha toʼliq CBO yoʼq edi.
  • Real-time updates: ReplacingMergeTree fondagi merge orqali eventual deduplikatsiya taʼminlaydi. Haqiqiy UPSERT yoʼq, partial update yoʼq.
  • Deduplikatsiya: FINAL kalit soʼzi ReplacingMergeTree da oʼqish unumdorligini yoʼq qiladi — on-the-fly merge ishga tushiradi.
  • SQL-toʼliqlik: TPC-DS soʼrovlarining ~50% bajarilmaydi — correlated subqueries, murakkab CTE qoʼllab-quvvatlanmaydi.
  • Operatsion murakkablik: ClickHouse Keeper/ZooKeeper orqali qoʼlda shardlash, maʼlumotlarni avtomatik rebalansing yoʼq.

2. Arxitektura: append-only dvigatel vs unified lakehouse

Asosiy farq — yangilanishlarni qayta ishlash va klasterni boshqarish modelida.

ClickHouseApache Doris
MergeTree family — fondagi merge bilan append-onlyColumnar MPP, FE+BE arxitekturasi avtobalanslanish bilan
ClickHouse Keeper / ZooKeeper orqali qoʼlda shardlashMySQL-protokol — adaptersiz JDBC/ODBC ulanish
Oʼz SQL-dialekti (MySQL/PostgreSQL bilan mos emas)Unique Key (real-time UPSERT) + Aggregate Key + Duplicate Key
Nativ UPSERT yoʼq — faqat ReplacingMergeTree + FINALVectorized engine + CBO + Runtime Filter JOIN uchun
Distributed jadvallar qoʼlda sozlashni talab qiladiShardlar va replikalarni avtomatik boshqarish

Apache Doris dastlab maʼlumotlar real-time yangilanadigan ssenariylar uchun loyihalangan. Uchta kalit modeli (Unique, Aggregate, Duplicate) har bir jadval uchun optimal strategiyani tanlash imkonini beradi.

3. Unumdorlik: benchmarklar

VeloDB Engineering va Apache Doris eʼlon qilgan benchmarklardan maʼlumotlar:

BenchmarkClickHouseApache DorisManba
TPC-H SF100Boshlangʼich daraja3x tezroqVeloDB Engineering
TPC-DS (99 soʼrov)~50% soʼrov fail99/99 soʼrovVeloDB Engineering
SSB + 25% updatesBoshlangʼich daraja5–34x tezroqVeloDB Engineering
ClickBench (single-table)TengTengClickBench.com
CoffeeBench (real-world)Boshlangʼich daraja8x tezroq, 8x arzonroqVeloDB Engineering
Write throughput (updates)ReplacingMergeTree + FINALDelete Bitmap — barqaror tezroqVeloDB Engineering

4. SQL: standart vs dialekt

ClickHouse MySQL va PostgreSQL bilan mos boʼlmagan oʼz SQL-dialektidan foydalanadi. BI-asboblarni ulash maxsus adapterlarni talab qiladi. Correlated subqueries, baʼzi window functions, murakkab CTE qoʼllab-quvvatlanmaydi.

Apache Doris MySQL-protokol boʼyicha ishlaydi. Har qanday BI-asbob (Grafana, Superset, Tableau, Power BI) standart JDBC/ODBC orqali adaptersiz ulanadi. Toʼliq TPC-DS SQL qoʼllab-quvvatlanadi.

// MISOL: 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;

Bu JOIN va RANK() OVER bilan soʼrov Doris da tayyor ishlaydi. ClickHouse da correlated subqueries va baʼzi window functions qayta yozishni talab qilishi mumkin.

5. Real-time updates: Delete Bitmap vs ReplacingMergeTree

ClickHouse ReplacingMergeTree: maʼlumotlar faqat fondagi merge paytida deduplikatsiya qilinadi. Merge gacha soʼrovlar dublikatlarni qaytaradi. FINAL kalit soʼzi oʼqish paytida merge ishga tushiradi — unumdorlikni yoʼq qiladi.

Apache Doris Unique Key + Delete Bitmap: yangilanishlar yozilgandan keyin darhol koʼrinadi. Partial column update qoʼllab-quvvatlanadi. FINAL kerak emas — maʼlumotlar har bir oʼqishda izchil.

25% yangilanishli SSB benchmarkida Apache Doris ClickHouse dan 5–34 barobar tezroq natija koʼrsatdi — batafsil «34x faster real-time updates» maqolasida.

CDC-integratsiya: Flink CDC → Doris nativ ishlaydi. ClickHouse da oʼxshash pipeline Kafka + materialized views + ReplacingMergeTree talab qiladi — sozlash va qoʼllab-quvvatlash ancha murakkab.

6. Egalik qilish narxi (TCO)

TCO taqqoslashdagi asosiy omillar:

Litsenziyalar
LitsenziyalarIkkala loyiha ham — Apache License 2.0. Litsenziya toʼlovlari yoʼq.
InfratuzilmaClickHouse: qoʼlda shardlash, ClickHouse Keeper, qoʼlda rebalansing. Doris: shardlar va replikalarni avtomatik boshqarish — ops-ish kamroq.
MuhandislarClickHouse maxsus tajriba talab qiladi: merge siyosatlari, shardlash, FINAL. Doris MySQL-mos — mutaxassislar puli kengroq.
SaqlashSiqish teng (ikkalasi ham kolonchali). Lekin Doris merge gacha ReplacingMergeTree ga xos maʼlumotlar dublikatlanishini oldini oladi.
EkotizimClickHouse community katta, lekin tooling parchalangan. Doris har qanday MySQL-mos asbobga ulanadi — universal BI-ekotizim.

7. ClickHouse dan koʼchish keyslari

Kwai / Bleem (trillionlab reklama qatorlari)

ClickHouse + Elasticsearch ni bitta Apache Doris ga birlashtirish (Bleem platformasi). Natija: kuniga ~1 mlrd soʼrov, arxitektura soddalashishi.

Enterprise-kompaniyalar (ommaviy keyslar)

doris.apache.org da koʼplab enterprise-keyslar: fintech, riteyler, telekom. Koʼchishning tipik sababi — bitta tizimda JOIN + real-time updates zaruriyati.

Koʼchish yondashuvi

SQL asosan mos. Asosiy oʼzgarishlar: jadval dvigatellarini mapping (MergeTree → Duplicate Key, ReplacingMergeTree → Unique Key, AggregatingMergeTree → Aggregate Key).

8. ClickHouse qachon yaxshiroq

ClickHouse aniq stsenariylarda ajoyib tanlov boʼlib qoladi:

  • Append-only maʼlumotlardagi sof single-table agregatsiyalar: loglar, metrikalar, time-series yangilanishsiz.
  • Multi-table JOIN yoki real-time updates zaruriyati yoʼq.
  • Materialized views deduplikatsiyani hal qilayotgan mavjud klaster.
  • ClickHouse da chuqur tajribaga ega va tizimlarni birlashtirish rejasi yoʼq jamoa.

Lekin: JOIN + updates + SQL-toʼliqlik kerak boʼlsa → Doris gʼolib chiqadi.

Manbalar

FAQ

Doris single-table soʼrovlarda ClickHouse dan sekinroqmi?

JOIN siz sof scan/aggregate da — teng. ClickBench da Doris va ClickHouse yaqin natijalar koʼrsatadi. Farq JOIN va updates da boshlanadi.

MergeTree jadvallarini Doris ga koʼchirsa boʼladimi?

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

ClickHouse ekotizimi-chi? Community kattaroq.

ClickHouse community kattaroq, lekin Doris har qanday MySQL-mos asbobga adaptersiz ulanadi — BI-ekotizim kengroq.

ClickHouse Cloud vs VeloDB Cloud-chi?

Ikkalasi ham managed service taklif qiladi. Asosiy farq: VeloDB bulutda Doris ning barcha afzalliklarini (JOIN, updates, SQL completeness) saqlaydi.

Doris va ClickHouse ni maʼlumotlaringizda taqqoslamoqchimisiz?

./TAQQOSLASH_SOʼRASH.sh
© 2026 DATANOMIX.PRO — MARKAZIY OSIYODA VELODB EKSKLUZIV HAMKORI
VeloDB — Real-Time Analytics /BOSH SAHIFA