1. Почему Elasticsearch перестаёт справляться
Elasticsearch создавался как поисковый движок: полнотекстовый поиск, инвертированные индексы, near-real-time доставка документов. Для этих задач он отличен.
Но когда на ES начинают строить аналитику — агрегации на миллиардах строк, многотабличные JOIN-ы, BI-дашборды — появляются системные проблемы:
- Агрегации на больших объёмах медленные: ES хранит данные в row-oriented формате, не оптимизированном для scan-heavy запросов.
- Нет SQL JOIN: Query DSL не поддерживает join между индексами. Денормализация — единственный путь, и она раздувает хранилище.
- Стоимость хранения: сжатие 1:1.5 против 1:5–1:10 у колоночных СУБД. На петабайтном масштабе разница в десятки серверов.
- Лицензионная нестабильность: переход с Apache 2.0 на SSPL, затем Elastic License, затем AGPL — три смены за 5 лет.
2. Архитектура: поисковый движок vs аналитическая СУБД
Ключевое различие — в модели хранения и обработки данных.
| Elasticsearch | Apache Doris |
|---|---|
| Inverted Index + row-based хранение | Columnar storage + MPP архитектура |
| Оптимизирован для full-text search и point lookups | Оптимизирован для агрегаций, scan, multi-table JOIN |
| Query DSL (JSON) — мощный для поиска, неудобный для аналитики | Стандартный SQL (MySQL-протокол, JDBC/ODBC) |
| Горизонтальное масштабирование через шарды | Vectorized execution engine с SIMD |
| Нет CBO (Cost-Based Optimizer) для сложных запросов | CBO + Runtime Filter для оптимизации JOIN |
Apache Doris с версии 2.0 также поддерживает inverted index для полнотекстового поиска и hybrid search (BM25 + vector). Это позволяет консолидировать сценарии поиска и аналитики в одной системе.
3. Производительность: цифры из реальных внедрений
Данные из публичных кейсов Apache Doris и VeloDB:
| Метрика | Elasticsearch | Apache Doris | Источник |
|---|---|---|---|
| Скорость запросов (полнотекст) | Базовый уровень | 2–3x быстрее | doris.apache.org |
| Скорость записи | Базовый уровень | 4x быстрее | doris.apache.org |
| Сжатие данных | 1:1.5 | 1:5 – 1:10 | doris.apache.org |
| Экономия хранилища | — | 50–65% | Кейсы миграции |
| Запросы (платёжная платформа) | Базовый уровень | 56x быстрее | Leading Payment Platform |
| Пропускная способность записи | Базовый уровень | +58% | Leading Payment Platform |
4. SQL вместо Query DSL
Elasticsearch использует JSON-based Query DSL — мощный для поиска, но неудобный для аналитики. Простая агрегация с GROUP BY требует вложенных JSON-структур, а JOIN невозможен вовсе.
Apache Doris работает по MySQL-протоколу. Любой BI-инструмент (Grafana, Superset, Tableau, Power BI) подключается через стандартный JDBC/ODBC без адаптеров.
// ПРИМЕР: АГРЕГАЦИЯ В DORIS SELECT region, risk_level,
COUNT(*) AS tx_count,
AVG(amount) AS avg_amount
FROM transactions t
JOIN merchants m ON t.merchant_id = m.id
WHERE tx_date >= CURRENT_DATE - INTERVAL 7 DAY
GROUP BY region, risk_level
ORDER BY tx_count DESC; В Elasticsearch этот запрос потребовал бы: денормализацию данных (merchant внутри transaction), nested aggregation с terms + avg, и отдельный pipeline для сортировки.
5. Стоимость владения (TCO)
Главные факторы экономии при переходе с ES на Doris:
| Хранилище | |
|---|---|
| Хранилище | Колоночное сжатие (Zstandard, LZ4) даёт 1:5–1:10 против 1:1.5 у ES. На 10 TB raw данных: Doris ~1–2 TB, ES ~6.7 TB. |
| Серверы | Lakala сократил серверный парк на 52% после миграции с ES/Hive/HBase на Doris. |
| Инженеры | Один SQL-движок вместо зоопарка: меньше специалистов по ES Mapping, Kibana, отдельной инфраструктуре. |
| Лицензии | Apache Doris — Apache License 2.0, без лицензионных платежей. ES AGPL требует раскрытия кода при SaaS-использовании. |
6. Лицензирование: стабильность vs три смены за 5 лет
История лицензий Elasticsearch:
- 2010–2018: Apache License 2.0 — полная свобода
- 2021: переход на SSPL / Elastic License — реакция на AWS OpenSearch
- 2024: смена на AGPL — ограничения для SaaS-провайдеров
Apache Doris: Apache License 2.0 с момента инкубации в Apache Foundation. Лицензия не менялась и не планирует меняться — это гарантия фонда Apache.
Для enterprise-компаний лицензионная стабильность — критичный фактор: юридические риски, compliance, долгосрочное планирование.
7. Кейсы миграции с Elasticsearch
Платёжная платформа (600M событий/день)
Миграция security-аналитики с Elasticsearch на Apache Doris: запросы ускорились в 56 раз, стоимость хранения снизилась на 50%, пропускная способность записи выросла на 58%.
Коммерческий банк (PB-масштаб)
Миграция петабайтного лог-хранилища с Elasticsearch на Doris. Ключевые драйверы: экономия на хранении, стандартный SQL для аналитиков, единая платформа для логов и бизнес-аналитики.
Kwai (триллионы строк рекламы)
Унификация ClickHouse + Elasticsearch в единый Apache Doris (платформа Bleem). Результат: почти 1 млрд запросов в день, упрощение архитектуры, снижение операционной сложности.
Lakala (финтех, 25M ритейлеров)
Консолидация Elasticsearch, Hive, HBase, TiDB, Oracle в Apache Doris: запросы в 15 раз быстрее, серверный парк сокращён на 52%.
8. Когда Elasticsearch всё ещё лучше
Elasticsearch остаётся лучшим выбором в конкретных сценариях:
- Pure full-text search без аналитики: каталоги товаров, поиск по документам, autocomplete.
- ELK-стек для DevOps: если уже развёрнут Logstash + Kibana и нет потребности в SQL-аналитике.
- Geo-search: специализированные geo-индексы ES (geo_point, geo_shape) глубже, чем у Doris.
- Fuzzy matching и highlighting: ES Highlight API нативнее для задач поиска с подсветкой.
Но если на Elasticsearch строится аналитика — агрегации, дашборды, отчётность, multi-table JOIN — Apache Doris решает эти задачи быстрее, дешевле и с меньшей сложностью.