1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/baidu-apache-doris

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 широко используется в следующих сценариях:

  • Анализ отчётности:

    • панели мониторинга в реальном времени;
    • отчёты для внутренних аналитиков и менеджеров;
    • анализ отчётов, ориентированных на большое количество пользователей или клиентов, например, анализ веб-сайта и отчётность по рекламе, обычно требующие тысячи запросов в секунду (QPS) и быстрого времени отклика, измеряемого в миллисекундах. Пример успешного использования — применение Doris китайским гигантом электронной коммерции JD.com в отчётности по рекламе. Система получает 10 миллиардов строк данных в день, обрабатывает более 10 000 QPS и обеспечивает задержку запроса в 99-м процентиле 150 мс.
  • Специальные запросы. Аналитическая самообслуживание с нерегулярными шаблонами запросов и высокими требованиями к пропускной способности. Компания 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

Общая архитектура Apache Doris показана на следующем рисунке. Архитектура Doris очень проста и включает только два типа процессов:

  • Frontend (FE): доступ к пользовательским запросам, разбор и планирование запросов, управление метаданными, управление узлами и т. д.
  • Backend (BE): хранение данных и выполнение плана запросов. Оба типа процессов горизонтально масштабируемы, и один кластер может поддерживать до сотен машин и десятков петабайт ёмкости хранения. Эти два типа процессов гарантируют высокую доступность сервисов и высокую надёжность данных через протоколы согласованности. Такая высокоинтегрированная архитектура значительно снижает стоимость эксплуатации и обслуживания распределённой системы.

![Общая архитектура Apache Doris](Рисунок 2)

Что касается интерфейсов, Apache Doris использует протокол MySQL, поддерживает стандартный SQL и хорошо совместим с диалектом MySQL. Пользователи могут получить доступ к Doris через различные клиентские инструменты, и он поддерживает бесшовное соединение с инструментами бизнес-аналитики (BI).

Механизм хранения

Doris использует столбцовый механизм хранения, который кодирует, сжимает и считывает данные по столбцам. Это обеспечивает очень высокий коэффициент сжатия и значительно сокращает ненужные сканирования данных, что делает более эффективным использование ресурсов ввода-вывода и процессора. Doris поддерживает различные структуры индексов для минимизации сканирования данных:

  • Сортированный составной ключевой индекс: пользователи могут указать не более трёх столбцов для формирования составного ключа сортировки. Это эффективно отсеивает данные для лучшей поддержки сценариев высококонкурентной отчётности.
  • MIN/MAX индексирование: это позволяет эффективно фильтровать эквивалентные и диапазонные запросы для числовых типов.
  • Фильтр Блума: очень эффективен при фильтрации эквивалентности и отсеве столбцов с высокой мощностью.
  • Инверсный индекс: это обеспечивает быстрый поиск по любому полю.

Модели хранения

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

🎆 Почему стоит выбрать 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 Connector

Doris поддерживает Spark/Flink для чтения данных, хранящихся в Doris через Connector, а также поддерживает запись данных в Doris с помощью Connector. Apache/Doris-Flink-Connector: [ссылка] Apache/Doris-Spark-Connector: [ссылка]

Сообщество и поддержка

Подписка на почтовые рассылки

Список рассылки — наиболее признанная форма общения в сообществе Apache. Узнайте, как: подписка на почтовые рассылки.

Сообщение о проблемах или отправка запроса на вытягивание

Если у вас возникнут вопросы, не стесняйтесь подать запрос на GitHub или опубликовать его в дискуссии на GitHub и исправить это, отправив запрос на вытягивание.

Как внести свой вклад

Мы приветствуем ваши предложения, комментарии (включая критику), отзывы и вклады. Смотрите как внести свой вклад и руководство по отправке кода.

Предложения по улучшению Doris (DSIP)

Предложения по улучшению Doris (DSIP) можно рассматривать как сборник проектных документов для всех основных обновлений функций или улучшений.

Спецификация кодирования на C++ для бэкенда

Необходимо строго следовать спецификации кодирования на C++ для бэкенда, что поможет нам достичь лучшего качества кода.

Контакты

Свяжитесь с нами через следующий список рассылки.

Название Сфера
dev@doris.apache.org Обсуждение вопросов разработки Подписаться Отменить подписку Архивы

Ссылки

Лицензия Apache, версия 2.0

Примечание Некоторые лицензии сторонних зависимостей несовместимы с лицензией Apache 2.0. Поэтому вам нужно отключить некоторые функции Doris, чтобы соответствовать лицензии Apache 2.0. Подробнее см. в файле thirdparty/LICENSE.txt.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/baidu-apache-doris.git
git@gitlife.ru:oschina-mirror/baidu-apache-doris.git
oschina-mirror
baidu-apache-doris
baidu-apache-doris
master