Apache Doris
Apache Doris — это простая в использовании, высокопроизводительная и аналитическая база данных реального времени, основанная на архитектуре MPP. Она известна своей исключительной скоростью и простотой использования. Apache Doris требует меньше секунды для ответа на запрос при работе с большими объёмами данных и может поддерживать не только сценарии с высокой параллельностью точечных запросов, но и сценарии со сложным анализом и высокой пропускной способностью.
Всё это делает Apache Doris идеальным инструментом для таких сценариев, как анализ отчётов, специальные запросы, унифицированные хранилища данных и ускорение запросов к озеру данных. На Apache Doris пользователи могут создавать различные приложения, такие как анализ поведения пользователей, платформа для A/B-тестирования, анализ извлечения журналов, анализ портрета пользователя и анализ заказов.
🎉 Выпущена версия 2.1.0. Ознакомьтесь с 🔗 примечаниями к выпуску здесь. Версия 2.1 обеспечивает исключительную производительность: результаты тестов TPC-DS 1 ТБ показывают увеличение на 100% по сравнению с готовыми запросами. Улучшена аналитика озера данных, которая в 4–6 раз быстрее, чем у Trino и Spark. Обеспечена надёжная поддержка анализа полуструктурированных данных с новыми типами Variant и набором аналитических функций. Асинхронные материализованные представления для ускорения запросов, оптимизированная запись в реальном времени в масштабе и улучшенное управление рабочими нагрузками со стабильностью и отслеживанием ресурсов SQL во время выполнения.
👀 Посмотрите на официальном сайте 🔗Официальный сайт полный список основных функций Apache Doris, блогов и примеров использования.
Как показано на рисунке ниже, после различной интеграции и обработки данные обычно хранятся в хранилище данных реального времени Apache Doris. И офлайн-озеро данных или хранилище данных (в Apache Hive, Apache Iceberg или Apache Hudi)
<Рисунок 1>
Apache Doris широко используется в следующих сценариях:
Анализ отчётности:
Специальные запросы. Аналитическая самообслуживание с нерегулярными шаблонами запросов и высокими требованиями к пропускной способности. Компания Xiaomi создала платформу аналитики роста (Growth Analytics, GA), основанную на Doris, используя данные о поведении пользователей для анализа роста бизнеса. Средняя задержка запроса составляет 10 секунд, а задержка 95-го процентиля — 30 секунд или меньше. Платформа обрабатывает десятки тысяч SQL-запросов в день.
Создание унифицированного хранилища данных. Apache Doris позволяет пользователям создавать унифицированное хранилище данных через единую платформу и избежать сложностей с управлением сложными программными стеками. Китайская сеть ресторанов Haidilao построила унифицированное хранилище данных с Doris вместо старой сложной архитектуры, включающей Apache Spark, Apache Hive, Apache Kudu, Apache HBase и Apache Phoenix.
Запросы к озеру данных. Apache Doris избегает копирования данных путём объединения данных в Apache Hive, Apache Iceberg и Apache Hudi с использованием внешних таблиц и таким образом достигает выдающейся производительности запросов.
Общая архитектура Apache Doris показана на следующем рисунке. Архитектура Doris очень проста и включает только два типа процессов:
![Общая архитектура Apache Doris](Рисунок 2)
Что касается интерфейсов, Apache Doris использует протокол MySQL, поддерживает стандартный SQL и хорошо совместим с диалектом MySQL. Пользователи могут получить доступ к Doris через различные клиентские инструменты, и он поддерживает бесшовное соединение с инструментами бизнес-аналитики (BI).
Doris использует столбцовый механизм хранения, который кодирует, сжимает и считывает данные по столбцам. Это обеспечивает очень высокий коэффициент сжатия и значительно сокращает ненужные сканирования данных, что делает более эффективным использование ресурсов ввода-вывода и процессора. Doris поддерживает различные структуры индексов для минимизации сканирования данных:
Doris поддерживает множество моделей хранения и оптимизирует их для различных сценариев:
Doris также поддерживает строго непротиворечивые материализованные представления. Материализованные представления выбираются и обновляются автоматически, что значительно снижает затраты на обслуживание для пользователей.
В механизме запросов Doris использует модель MPP для параллельного выполнения между узлами и внутри них. Он также поддерживает распределённое перемешивание при объединении нескольких больших таблиц для обработки сложных запросов.
Doris использует векторизованный механизм запросов, где все структуры памяти расположены в столбчатом формате. Это позволяет значительно сократить количество вызовов виртуальных функций, повысить частоту попаданий в кэш и эффективно использовать инструкции SIMD. Doris обеспечивает в 5–10 раз более высокую производительность в сценариях агрегирования широких таблиц по сравнению с не векторизованными механизмами.
Apache Doris применяет технологию адаптивного выполнения запросов для динамической настройки плана выполнения на основе статистики времени выполнения. Например, он может генерировать фильтр времени выполнения, передавать его на сторону зондирования и автоматически внедрять его в узел сканирования внизу, что резко сокращает объём данных в зондировании и повышает производительность объединения. Фильтр времени выполнения в Doris поддерживает фильтры In/Min/Max/Bloom.
Что касается оптимизаторов, Doris использует комбинацию CBO и RBO. RBO поддерживает постоянное свёртывание, переписывание подзапросов, спуск предикатов, а CBO — перестановку объединений. Оптимизатор CBO в Doris постоянно оптимизируется для более точного сбора и вывода статистической информации и более точного прогнозирования модели затрат.
Технический обзор: 🔗Введение в Apache Doris
🎯 Простота использования: два процесса, никаких других зависимостей; онлайн масштабирование кластера, автоматическое восстановление реплик; совместимость с протоколом MySQL и использование стандартного SQL.
🚀 Высокая производительность: чрезвычайно высокая производительность для запросов с низкой задержкой и высокой пропускной способностью благодаря столбчатому механизму хранения, современной архитектуре MPP, векторизованному механизму запросов, предварительно агрегированным материализованным представлениям и индексу данных.
🖥️ Единая система: одна система может поддерживать обслуживание данных в реальном времени, интерактивный анализ данных и сценарии автономной обработки данных.
⚛️ Федеративное выполнение запросов: поддерживает федеративное выполнение запросов к таким озерам данных, как Hive, Iceberg, Hudi, и базам данных, таким как MySQL и Elasticsearch.
⏩ Различные методы импорта данных: поддерживает пакетный импорт из HDFS/S3 и потоковый импорт из MySQL Binlog/Kafka; поддерживает микропакетную запись через HTTP-интерфейс и запись в реальном времени с использованием Insert в JDBC.
🚙 Богатая экосистема: Spark использует Spark-Doris-Connector для чтения и записи в Doris; Flink-Doris-Connector позволяет Flink CDC точно записывать данные в Doris один раз; предоставляется DBT Doris Adapter для преобразования данных в Doris с помощью DBT.
Apache Doris успешно завершил инкубацию Apache и стал проектом верхнего уровня в июне 2022 года.
В настоящее время сообщество Apache Doris собрало более 400 участников почти из 200 компаний в различных отраслях, и число активных участников приближается к 100 в месяц.
Мы глубоко ценим 🔗 участников сообщества за их вклад в Apache Doris.
У Apache Doris теперь широкая пользовательская база в Китае и во всём мире, и на сегодняшний день Apache Doris используется в производственных средах... Тысячи компаний по всему миру. Более 80% из 50 крупнейших интернет-компаний Китая по рыночной капитализации или оценке уже давно используют Apache Doris, включая Baidu, Meituan, Xiaomi, Jingdong, Bytedance, Tencent, NetEase, Kwai, Sina, 360, Mihoyo и Ke Holdings. Он также широко используется в некоторых традиционных отраслях, таких как финансы, энергетика, производство и телекоммуникации.
Пользователи Apache Doris: пользователи.
Добавьте логотип вашей компании на веб-сайт Apache Doris: добавьте логотип вашей компании.
Вся документация: документация.
Все версии релизов и двоичные версии: загрузка.
Узнайте, как скомпилировать: компиляция.
Узнайте, как установить и развернуть: установка и развёртывание.
Doris поддерживает Spark/Flink для чтения данных, хранящихся в Doris через Connector, а также поддерживает запись данных в Doris с помощью Connector. Apache/Doris-Flink-Connector: [ссылка] Apache/Doris-Spark-Connector: [ссылка]
Список рассылки — наиболее признанная форма общения в сообществе Apache. Узнайте, как: подписка на почтовые рассылки.
Если у вас возникнут вопросы, не стесняйтесь подать запрос на GitHub или опубликовать его в дискуссии на GitHub и исправить это, отправив запрос на вытягивание.
Мы приветствуем ваши предложения, комментарии (включая критику), отзывы и вклады. Смотрите как внести свой вклад и руководство по отправке кода.
Предложения по улучшению Doris (DSIP) можно рассматривать как сборник проектных документов для всех основных обновлений функций или улучшений.
Необходимо строго следовать спецификации кодирования на C++ для бэкенда, что поможет нам достичь лучшего качества кода.
Свяжитесь с нами через следующий список рассылки.
Название | Сфера | |||
---|---|---|---|---|
dev@doris.apache.org | Обсуждение вопросов разработки | Подписаться | Отменить подписку | Архивы |
Примечание Некоторые лицензии сторонних зависимостей несовместимы с лицензией Apache 2.0. Поэтому вам нужно отключить некоторые функции Doris, чтобы соответствовать лицензии Apache 2.0. Подробнее см. в файле
thirdparty/LICENSE.txt
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )