[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 неделю плюс ещё неделя на вычитку отставания. Практически две недели кластер остаётся без актуальных данных. Enterprise не может расти динамически.

Конкуренция за ресурсы

Все нагрузки (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+ колонок). Сортировка большого объёма с сотнями колонок — дорогая и трудоёмкая операция. Feature Store и ML-пайплайны страдают.

2. Как Apache Doris решает каждую из этих проблем

Каждая боль Vertica имеет конкретное решение в архитектуре Apache Doris:

Боль VerticaРешение в Apache Doris
Ребалансировка неделямиTablet-based sharding, auto-balance при добавлении BE-нод. Новые ноды подключаются за минуты, данные балансируются в фоне без блокировки.
Конкуренция за ресурсыWorkload Groups с cgroups: жёсткие лимиты CPU/Memory для каждой группы пользователей. ETL не убивает ad-hoc.
Час без аналитики при сбоеBE ноды — stateless executor с репликами. FE — consensus через BDBJE. Время восстановления: секунды, не час.
Vendor lock-in, лицензияApache License 2.0: нулевые лицензионные расходы, нулевой риск санкций. VeloDB Enterprise — 100% совместим с open-source.
Широкие таблицы тормозятColumnar storage без обязательной сортировки. Stream Load для batch insert. 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)Unique Key с Delete Bitmap — нативный UPSERT
Full-text поискНет нативного (Flex Tables для semi-structured)Inverted Index + BM25 для full-text search
Vector SearchНетHNSW / IVFPQ для AI/RAG
Lakehouse FederationОграниченный (External Tables для S3/HDFS)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 в 3-5x быстрее традиционных DWH-движков. TPC-DS: Doris выполняет 99/99 запросов — enterprise-grade SQL completeness.

Real-time обновления: до 34x быстрее ClickHouse (который уже быстрее Vertica для записей). ClickBench: Doris в топ-3 для аналитических нагрузок.

Ключевой вывод: Vertica — сильный движок. Но Doris соответствует или превосходит его, при этом добавляя real-time, полнотекстовый поиск и векторные возможности.

Источники: публичные статьи Авито на Habr, бенчмарки VeloDB.

5. SQL миграция: что меняется

Маппинг SQL-конструкций при миграции с Vertica на Apache Doris:

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-based extensibility
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
ИнфраструктураDedicated серверы, coupledCommodity hardware, опционально cloud
ОбслуживаниеProjections tuning, statistics, DBAAuto Materialized Views, CBO, меньше DBA работы
МасштабированиеДорого: ребалансировка = downtimeДёшево: add nodes online, auto-balance
Vendor riskOpenText (acquisition uncertainty)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. Deploy Doris рядом с Vertica
  2. Репликация данных (Parquet export или JDBC)
  3. Параллельный запуск запросов, сравнение результатов
  4. Постепенный перевод read-трафика
  5. Вывод Vertica из эксплуатации

8. Когда Vertica может быть лучше

Честная оценка — Vertica имеет сильные стороны:

  • Если вы глубоко инвестировали в Vertica Projections и они идеально настроены под вашу нагрузку.
  • Если используете продвинутые ML-функции Vertica (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 поддерживает UDF на Java. Для сложных UDx потребуется переписать логику. В кейсе Авито аналогичная миграция показала сопоставимую производительность.

Насколько отличается SQL?

90%+ запросов работают без изменений. Основные различия: INTERVAL синтаксис, ILIKE / LIKE, некоторые аналитические функции. Существуют автоматические SQL-конвертеры.

Сколько длится миграция?

Зависит от объёма: 1-3 месяца для типичного enterprise. Стратегия parallel run позволяет мигрировать без downtime. Авито мигрировало 2+ года, но у них 2 ПБ и 50 000 таблиц.

Планируете уход с Vertica? Обсудим архитектуру.

./ОБСУДИТЬ_МИГРАЦИЮ.sh
© 2026 DATANOMIX.PRO — ЭКСКЛЮЗИВНЫЙ ПАРТНЁР VELODB В ЦЕНТРАЛЬНОЙ АЗИИ
VeloDB — Real-Time Analytics /ГЛАВНАЯ