Введение в APACHE DORIS / VELODB
MPP-хранилище данных реального времени: архитектура, сценарии использования, ключевые возможности
Apache Doris Documentation 4.x
Datanomix.pro
~12 мин
Что такое Apache Doris/VeloDB
Apache Doris/VeloDB — это MPP-хранилище данных в реальном времени, известное своей высокой скоростью запросов. Для запросов на больших наборах данных он возвращает результаты в подсекундах. Поддерживает как высококонкурентные точечные запросы, так и высокопроизводительный комплексный анализ. Его можно использовать для анализа отчётов, специальных запросов, унифицированного хранилища данных и ускорения запросов озера данных.
На базе Apache Doris/VeloDB пользователи могут создавать приложения для анализа поведения пользователей, платформы A/B тестирования, анализа журналов, анализа профиля пользователя и анализа заказов электронной коммерции.
Apache Doris/VeloDB, ранее известная как Palo, была изначально создана для поддержки рекламной аналитики Baidu. Проект был официально открыт в 2017 году и передан Baidu в Apache Software Foundation в июле 2018 года. В июне 2022 года Apache Doris успешно прошла инкубацию и стала проектом верхнего уровня Apache (Top-Level Project). К настоящему времени сообщество Apache Doris объединяет более 700 контрибьюторов из сотен компаний в различных отраслях, с более чем 120 ежемесячно активными участниками.
Apache Doris/VeloDB имеет широкую пользовательскую базу. Он используется в производственных средах более 5000 компаний по всему миру, включая гигантов, таких как TikTok, Baidu, Tencent и NetEase. Он также широко используется в различных отраслях от финансов, розничной торговли и телекоммуникаций до энергетики, производства, медицинского обслуживания и т.д.
Сценарии использования
Как показано на схеме ниже, после различных интеграций и обработки данных источники данных обычно поступают в хранилище данных в реальном времени Doris/VeloDB и офлайн-озёра данных (такие как Hive, Iceberg и Hudi).
Apache Doris/VeloDB широко используется в следующих сценариях:
Анализ данных в реальном времени
- Отчёты в реальном времени и принятие решений — Doris/VeloDB обеспечивает доставку обновлённых отчётов и информационных панелей для внутреннего и внешнего использования предприятия, поддержка принятия решений в режиме реального времени в автоматизированных процессах.
- Ad-hoc анализ — Doris/VeloDB предоставляет возможности анализа данных, позволяющие быстро анализировать бизнес-аналитику и специальные запросы.
- Профилирование пользователей и анализ поведения — Apache Doris/VeloDB может анализировать поведение пользователей: участие, удержание и конверсия, сегментация аудитории и таргетинг.
Аналитика Lakehouse
- Ускорение запросов Lakehouse — Doris/VeloDB ускоряет запросы данных Lakehouse с помощью его эффективного механизма запросов.
- Федеративная аналитика — Doris/VeloDB поддерживает федеративные запросы в нескольких источниках данных, упрощение архитектуры и устранение информационных силосов.
- Обработка данных в реальном времени — Doris/VeloDB сочетает потоки данных в реальном времени и возможности обработки пакетных данных для удовлетворения потребностей бизнеса с высокой конкурентностью и низкой задержкой.
SQL-ориентированная наблюдаемость (Observability)
- Анализ логов и событий — Apache Doris/VeloDB позволяет проводить анализ журналов и событий в режиме реального времени в распределённых системах.
Общая архитектура
Apache Doris/VeloDB использует протокол MySQL, хорошо совместим с синтаксисом MySQL и поддерживает стандартный SQL. Пользователи могут получить доступ к Apache Doris/VeloDB с помощью различных клиентских инструментов, и он легко интегрируется с BI-инструментами.
Интегрированная архитектура хранения и вычислений
Интегрированная архитектура Apache Doris/VeloDB оптимизирована и проста в обслуживании. Она состоит из двух типов процессов:
- Frontend (FE): Отвечает за обработку пользовательских запросов, парсинг и планирование запросов, управление метаданными и задачи управления узлами.
- Backend (BE): Отвечает за хранение данных и выполнение запросов. Данные разбиваются на шарды и хранятся с несколькими репликами в узлах BE.
| Роль | Функция |
|---|---|
| Master | Узел FE Master отвечает за операции чтения и записи метаданных. Когда изменения метаданных происходят в Master, они синхронизируются с узлами Follower или Observer по протоколу BDB JE. |
| Follower | Узел Follower отвечает за чтение метаданных. Если узел Master выходит из строя, Follower может быть выбран новым Master. |
| Observer | Узел Observer отвечает за чтение метаданных и используется для повышения параллелизма запросов. Он не участвует в выборах лидера кластера. |
Процессы FE и BE горизонтально масштабируемы, что позволяет одному кластеру поддерживать сотни машин и десятки петабайт ёмкости хранилища.
Разделение хранения и вычислений
Начиная с версии 3.0 можно выбрать архитектуру с разделением хранения и вычислений. Разделяя хранилище и вычисления, пользователи могут самостоятельно масштабировать ёмкость хранилища и вычислительные ресурсы.
- Слой метаданных — Отвечает за планирование запросов, парсинг запросов, а также за хранение и управление метаданными.
- Вычислительный слой — Состоит из нескольких вычислительных групп, каждая из которых может работать как независимый арендатор. В каждой группе несколько stateless BE-узлов, эластично масштабируемых.
- Слой хранения — Может использовать S3, HDFS, OSS, COS, OBS, Minio и Ceph для хранения файлов данных Doris/VeloDB.
Основные возможности Apache Doris/VeloDB
Высокая доступность
В Apache Doris/VeloDB метаданные и данные хранятся с несколькими репликами, синхронизируя журналы данных через протокол кворума. Кластер остаётся доступным, даже если несколько узлов выходят из строя. Поддерживает внутризонное и межрегиональное аварийное восстановление.
Высокая совместимость
Apache Doris/VeloDB обладает высокой совместимостью с протоколом MySQL и поддерживает стандартный синтаксис SQL. Позволяет беспрепятственно мигрировать и интегрировать существующие приложения и инструменты. Поддерживает экосистему MySQL для BI-инструментов и средств передачи данных.
Приём данных в реальном времени
Apache Doris/VeloDB предлагает возможности приёма данных с задержкой в секунды. Используя векторизованные движки, архитектуру MPP и Pipeline-движок выполнения, Doris/VeloDB обеспечивает подсекундные запросы и высокопроизводительную платформу реального времени.
Единое озёрное хранилище (Unified Lakehouse)
Apache Doris/VeloDB позволяет создавать унифицированную архитектуру озерного хранилища на основе озёр данных или реляционных баз данных. Обеспечивает бесшовную интеграцию и свободный поток данных между озёрами данных и хранилищами данных.
Гибкое моделирование
Apache Doris/VeloDB предлагает модели с широкими таблицами, модели с предварительной агрегацией, схемы звезд/снежинок. Данные могут быть денормализованы через Flink или моделированы через представления, материализованные представления или соединения в реальном времени.
Технический обзор
Doris/VeloDB обеспечивает поддержку SQL, предоставляет эффективный интерфейс и полностью совместим с протоколом MySQL. Его механизм запросов основан на архитектуре MPP, способной эффективно выполнять сложные аналитические запросы с низкой задержкой. Благодаря колоночному хранению он значительно оптимизирует производительность запросов и коэффициент сжатия.
Интерфейс
Apache Doris/VeloDB использует протокол MySQL, поддерживает стандартный SQL. Беспрепятственно интегрируется с BI-инструментами: Smartbi, DataEase, FineBI, Tableau, Power BI. Может работать источником данных для любых BI, поддерживающих MySQL.
Движок хранения
Колоночный движок хранения кодирует, сжимает и считывает данные по столбцу — высокий коэффициент сжатия и эффективное использование I/O и CPU. Поддерживает индексы:
- Sorted Compound Key Index — до трёх столбцов для формирования составного ключа сортировки
- Min/Max — фильтрация по равенству и диапазону для числовых типов
- BloomFilter — фильтрация столбцов с высокой кардинальностью
- Инвертированный индекс — быстрый поиск по любому полю
Модели данных:
- Duplicate Key Model — детальная модель данных для фактовых таблиц
- Unique Key Model — уникальность ключей, обновление на уровне строк
- Aggregate Key Model — предварительная агрегация для высокой производительности
Движок запросов
MPP движок для параллельных вычислений между узлами. Поддерживает распределённый shuffle join для больших таблиц.
Движок запроса полностью векторизован, все структуры данных в памяти организованы в колоночном формате. Apache Doris/VeloDB обеспечивает в 5–10 раз более высокую производительность в сценариях агрегации широких таблиц.
Apache Doris/VeloDB использует технологию адаптивного выполнения запросов для динамической корректировки плана выполнения. Runtime-фильтр поддерживает In/Min/Max/Bloom Filter.
Движок Pipeline разбивает запросы на подзадачи для параллельного выполнения, используя многоядерные ЦП. Оптимизатор использует комбинацию CBO, RBO и HBO для высокопроизводительных планов выполнения.
ХОТИТЕ УЗНАТЬ, КАК VELODB РЕШАЕТ ВАШИ ЗАДАЧИ?
> Консультация бесплатная, обязательств нет
./ЗАПРОСИТЬ_КОНСУЛЬТАЦИЮ.shData Warehouse vs Data Lake vs Lakehouse. Open table formats. Пять неочевидных преимуществ.
Vector + BM25 + RRF. Бенчмарк: 96% качества Reranker без GPU. SQL-примеры.
RBAC, Embedding Drift, Semantic Confusion, аудит, Prompt Injection. Решения и ссылки на исследования.
SuperSet, PowerBI, Tableau тормозит? Sub-100ms, Auto Query Rewrite, бесплатный пилот.
MySQL Protocol, три паттерна DAG, Stream Load. Job Scheduler vs Airflow.
Kafka -> Doris: standalone/distributed, SSL, DLQ, schema evolution и best practices.