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

Apache Doris vs Vertica: меншіктік DWH-дан кету

Масштабтау, лицензия, real-time, TCO: enterprise үшін объективті салыстыру.

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

1. Enterprise Vertica-дан неге кетеді: нақты мәселелер

Vertica — Майкл Стоунбрейкер жасаған меншіктік MPP-СУБД. Бүгін OpenText компаниясына тиесілі (Micro Focus/HPE арқылы). Vertica — аналитика үшін күшті қозғалтқыш, бірақ enterprise-пайдаланушылар масштабтау кезінде нақты мәселелерге тап болады.

Нақты мәселелерді қарастырайық — Авито-ның ашық кейсі негізінде (2 ПБ деректер, 50 нод, 50 000 кесте), Habr-да 2025 жылдың желтоқсанында жарияланған.

Масштабтау — апталық тоқтау

Vertica-ға нод қосу деректерді толық ребалансировкалауды талап етеді. Авито кейсінде: 1 ПБ деректер — ребалансировка ~1 апта, тағы бір апта қалу бойынша оқуға. Кластер шамамен екі апта бойы өзекті деректерсіз қалады.

Ресурстар үшін бәсекелестік

Барлық жүктемелер (ETL, ad-hoc, BI, anti-fraud) бір адрестік кеңістікте бір ресурстар үшін бәсекелеседі. Пик сағаттарда (03:00-15:00) барлық сұраныстарға ресурстар жетпейді. Resource Pools тек soft limits береді — нақты оқшаулау жоқ.

Сбойлардан кейін қалпына келтіру — сағат бойы аналитикасыз

Vertica құлағанда өте ұзақ көтеріледі. Бір нодтың бұзылуы өтеді. Бірақ кластердің толық сбойы — ~1 сағат аналитикасыз. SLA талаптары бар банктер мен телеком үшін қабылданбайды.

Vendor lock-in және лицензия

OpenText-тің меншіктік лицензиясы (бұрын Micro Focus/HPE). Авито кейсінде: Vertica Eon Mode қарастырылды, бірақ геосаяси жағдайға байланысты вендормен байланыс үзілді. Per-TB лицензия: деректер өскен сайын өседі. Орталық Азияда OpenText-тің жергілікті қатысуы мен SLA кепілдіктері жоқ.

Кең кестелерге кірістіру

Vertica кең кестелерге (100+ бағандар) кірістіру кезінде деректерді қайта сұрыптауды талап етеді. Жүздеген бағандары бар үлкен көлемді сұрыптау — қымбат және көп еңбек талап ететін операция.

2. Apache Doris осы мәселелердің әрқайсысын қалай шешеді

Vertica-ның әрбір мәселесінің Apache Doris архитектурасында нақты шешімі бар:

Vertica мәселесіApache Doris шешімі
Апталық ребалансировкаTablet-based sharding, BE-нодтар қосылғанда auto-balance. Жаңа нодтар минуттарда қосылады, деректер фонда блоктаусыз теңестіріледі.
Ресурстар үшін бәсекелестікCgroups бар Workload Groups: әр пайдаланушы тобы үшін CPU/Memory қатаң лимиттер. ETL ad-hoc-ты өлтірмейді.
Сбойда сағат бойы аналитикасызBE нодтар — репликалары бар stateless executor. FE — BDBJE арқылы consensus. Қалпына келтіру уақыты: секундтар, сағат емес.
Vendor lock-in, лицензияApache License 2.0: нөлдік лицензиялық шығындар, нөлдік санкция тәуекелі. VeloDB Enterprise — open-source-пен 100% үйлесімді.
Кең кестелер тежейдіМіндетті сұрыптаусыз columnar storage. Batch insert үшін Stream Load. Aggregate/Duplicate/Unique Key модельдері.
Compute/storage бөлінбейдіCompute-storage decoupled mode: есептеулерді сақтаудан бөлек масштабтаңыз.

3. Архитектуралық салыстыру

Vertica мен Apache Doris архитектурасын егжей-тегжейлі салыстыру:

Vertica (Enterprise Mode)Apache Doris
АрхитектураShared-nothing MPP, coupled compute+storageMPP, coupled немесе decoupled (опционалды)
МасштабтауНод қосу + ребалансировка (күндер-апталар)BE-нод қосу + auto-balance (минуттар)
Сақтау модельдеріProjections (материализацияланған сұрыпталған көшірмелер)3 модель: Duplicate Key, Unique Key, Aggregate Key + Materialized Views
Real-time UPSERTШектеулі (DELETE + INSERT)Delete Bitmap бар Unique Key — нативті UPSERT
Full-text іздеуНативті жоқ (semi-structured үшін Flex Tables)Full-text search үшін Inverted Index + BM25
Vector SearchЖоқAI/RAG үшін HNSW / IVFPQ
Lakehouse FederationШектеулі (S3/HDFS үшін External Tables)Multi-Catalog: Iceberg, Hudi, Delta, Hive, JDBC
SQL протоколыӨзіндік протокол + JDBC/ODBCMySQL protocol — кез келген BI құрал бірден жұмыс істейді
Workload IsolationResource Pools (soft limits)Workload Groups + cgroups (hard limits)
ЛицензияProprietary (OpenText), per-TBApache 2.0 (тегін), VeloDB Enterprise — per-core

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

Авито 2022 жылы өз тестілеуін жүргізді: Trino күрделі аналитикалық сұраныстарда Vertica-мен паритетті көрсетті. Контекст үшін: Apache Doris сол жүктемелерде Trino-дан тұрақты жылдам.

TPC-H SF100: Doris дәстүрлі DWH-қозғалтқыштардан 3-5x жылдам. TPC-DS: Doris 99/99 сұранысты орындайды — enterprise-grade SQL толықтығы.

Real-time жаңартулар: ClickHouse-тан 34x дейін жылдам (ол Vertica-дан жазу бойынша жылдамырақ). ClickBench: Doris аналитикалық жүктемелер бойынша топ-3-те.

Негізгі қорытынды: Vertica — күшті қозғалтқыш. Бірақ Doris оған сәйкес келеді немесе асады, сонымен қатар real-time, толық мәтінді іздеу және векторлық мүмкіндіктерді қосады.

Дереккөздер: Авито-ның Habr-дағы жариялы мақалалары, VeloDB бенчмарктары.

5. SQL көшу: не өзгереді

Vertica-дан Apache Doris-ке көшу кезінде SQL-конструкцияларды маппинг:

Vertica SQLApache Doris SQLТүсініктеме
COPY FROMStream Load / Broker LoadHTTP API немесе S3/HDFS load
ProjectionsMaterialized Views + auto rewriteMV автоматты түрде CBO қояды
MERGE INTOINSERT INTO ... ON DUPLICATE KEY UPDATEUnique Key кестелері
Flex TablesVARIANT деректер типіSemi-structured деректер
UDx (C++)UDF (Java)Java негіздегі кеңейтімділік
Resource PoolsWorkload GroupsҚатаңырақ оқшаулау
Partitioning by expressionRANGE/LIST PartitionҰқсас мүмкіндіктер
ANALYZE_STATISTICSANALYZE TABLEAutomatic statistics collection
// SQL КӨШУ МЫСАЛЫ -- Vertica: SELECT customer_id, SUM(amount) FROM transactions WHERE tx_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY customer_id HAVING SUM(amount) > 10000; -- Apache Doris: SELECT customer_id, SUM(amount) FROM transactions WHERE tx_date >= CURRENT_DATE - INTERVAL 30 DAY GROUP BY customer_id HAVING SUM(amount) > 10000;

Минималды айырмашылықтар: INTERVAL синтаксисі, кейбір тип түрлендірулер. 90%+ сұраныстар өзгеріссіз жұмыс істейді.

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

ФакторVerticaApache Doris / VeloDB
ЛицензияPer-TB (деректерге пропорционалды өсу)Apache 2.0 тегін / VeloDB per-core
ИнфрақұрылымАрнайы серверлер, coupledCommodity hardware, опционалды cloud
Қызмет көрсетуProjections tuning, statistics, DBAAuto Materialized Views, CBO, аз DBA жұмысы
МасштабтауҚымбат: ребалансировка = downtimeАрзан: add nodes online, auto-balance
Vendor riskOpenText (сатып алу белгісіздігі)Apache Foundation (community-governed)

Кейс: VeloDB Enterprise Client (қаржы секторы) — Oracle + Teradata алмастыру, TCO 60% төмендету, сұраныстар 8x жеделдету. Меншіктік DWH-дан көшу кезіндегі типтік үнемдеу: 40-70%.

7. Көшу құралдары

Vertica-дан Apache Doris-ке көшу құралдарының экожүйесі:

X2Doris

Автоматты көшу: схемаларды конвертация, деректерді тасымалдау.

Parquet/ORC export → Broker Load

Vertica EXPORT → S3 → Doris Broker Load.

JDBC Catalog

Doris Vertica-дан JDBC арқылы тікелей оқиды — параллель валидация үшін.

Flink CDC

Dual-run кезеңіндегі инкременталды синхрондау үшін.

SQL Converter

Vertica SQL → Doris SQL автоматты аудармасы.

5 фазалы көшу стратегиясы:

  1. Doris-ті Vertica жанына deploy ету
  2. Деректерді репликациялау (Parquet export немесе JDBC)
  3. Сұраныстарды параллель іске қосу, нәтижелерді салыстыру
  4. Read-трафикті біртіндеп ауыстыру
  5. Vertica-ны пайдаланудан шығару

8. Vertica қашан жақсырақ болуы мүмкін

Әділ бағалау — Vertica-ның күшті жақтары бар:

  • Vertica Projections-ке терең инвестиция жасап, олар жүктемеңізге тамаша бапталған болса.
  • Vertica-ның озық ML-функцияларын пайдалансаңыз (in-database machine learning).
  • Команда Vertica-да терең тәжірибеге ие болса және өзгерістерге мотивация болмаса.
  • Vertica Eon Mode пайдаланып, OpenText-пен жұмыс қатынасы болса.

Бірақ real-time жаңартулар, full-text іздеу, vector search, lakehouse federation немесе ашық лицензия қажет болса — Doris осы тапсырмаларды шешеді. Ал vendor risk маңызды болса (санкциялар, OpenText белгісіздігі) — Apache 2.0 бұл тәуекелді толық жояды.

Дереккөздер

FAQ

Vertica Projections-ді Doris-ке көшіруге бола ма?

Projections Materialized Views-ке маппталады. Doris CBO негізгі кестелер орнына MV-ды автоматты қояды (transparent query rewrite). SQL қайта жазуды қажет етпейді.

Vertica UDx (C++) Doris-ке қалай көшіреді?

Doris Java-дағы UDF қолдайды. Күрделі UDx үшін логиканы қайта жазу қажет. Авито кейсінде ұқсас көшу салыстырмалы өнімділікті көрсетті.

SQL қаншалықты ерекшеленеді?

90%+ сұраныстар өзгеріссіз жұмыс істейді. Негізгі айырмашылықтар: INTERVAL синтаксисі, ILIKE / LIKE, кейбір аналитикалық функциялар. Автоматты SQL-конвертерлер бар.

Көшу қанша уақыт алады?

Көлемге байланысты: типтік enterprise үшін 1-3 ай. Parallel run стратегиясы downtime-сыз көшуге мүмкіндік береді. Авито 2+ жыл көшірді, бірақ оларда 2 ПБ және 50 000 кесте.

Vertica-дан кетуді жоспарлап жатырсыз ба? Архитектураны талқылайық.

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