## 🌍 Читати іншими мовами [العربية](../ar-SA/README.md) • [বাংলা](../bn-BD/README.md) • [Deutsch](../de-DE/README.md) • [English](../../README.md) • [Español](../es-ES/README.md) • [فارسی](../fa-IR/README.md) • [Français](../fr-FR/README.md) • [हिन्दी](../hi-IN/README.md) • [Bahasa Indonesia](../id-ID/README.md) • [Italiano](../it-IT/README.md) • [日本語](../ja-JP/README.md) • [한국어](../ko-KR/README.md) • [Polski](../pl-PL/README.md) • [Português](../pt-BR/README.md) • [Română](../ro-RO/README.md) • [Русский](../ru-RU/README.md) • [Slovenščina](../sl-SI/README.md) • [ไทย](../th-TH/README.md) • [Türkçe](../tr-TR/README.md) • [Українська](README.md) • [Tiếng Việt](../vi-VN/README.md) • [简体中文](../zh-CN/README.md) • [繁體中文](../zh-TW/README.md)
# Apache Doris [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) [![GitHub release](https://img.shields.io/github/release/apache/doris.svg)](https://github.com/apache/doris/releases) [![OSSRank](https://shields.io/endpoint?url=https://ossrank.com/shield/516)](https://ossrank.com/p/516) [![Commit activity](https://img.shields.io/github/commit-activity/m/apache/doris)](https://github.com/apache/doris/commits/master/) [![EN doc](https://img.shields.io/badge/Docs-English-blue.svg)](https://doris.apache.org/docs/gettingStarted/what-is-apache-doris) [![CN doc](https://img.shields.io/badge/文档-中文版-blue.svg)](https://doris.apache.org/zh-CN/docs/gettingStarted/what-is-apache-doris)
[![Official Website]()](https://doris.apache.org/) [![Quick Download]()](https://doris.apache.org/download)
     
---

apache%2Fdoris | Trendshift

Apache Doris — це проста у використанні, високопродуктивна аналітична база даних у реальному часі на основі архітектури MPP, відома своєю надзвичайною швидкістю та простотою використання. Вона потребує лише субсекундного часу відгуку для повернення результатів запитів при роботі з масивними даними і може підтримувати не лише сценарії точкових запитів з високою паралельністю, але й сценарії складного аналізу з високою пропускною здатністю. Все це робить Apache Doris ідеальним інструментом для сценаріїв, що включають аналіз звітів, спеціальні запити, єдине сховище даних і прискорення запитів до озера даних. На Apache Doris користувачі можуть створювати різні додатки, такі як аналіз поведінки користувачів, платформа AB-тестування, аналіз пошуку логів, аналіз профілю користувача та аналіз замовлень. 🎉 Ознайомтеся з 🔗[Усіма релізами](https://doris.apache.org/docs/releasenotes/all-release), де ви знайдете хронологічне резюме версій Apache Doris, випущених за останній рік. 👀 Дослідіть 🔗[Офіційний веб-сайт](https://doris.apache.org/), щоб детально дізнатися про основні функції, блоги та приклади використання Apache Doris. ## 📈 Сценарії використання Як показано на малюнку нижче, після різних інтеграцій та обробки даних джерела даних зазвичай зберігаються в сховищі даних реального часу Apache Doris та автономному озері даних або сховищі даних (в Apache Hive, Apache Iceberg або Apache Hudi).

Apache Doris широко використовується в наступних сценаріях: - **Аналіз даних у реальному часі**: - **Звітність та прийняття рішень у реальному часі**: Doris надає оновлювані в реальному часі звіти та панелі моніторингу як для внутрішнього, так і для зовнішнього корпоративного використання, підтримуючи прийняття рішень у реальному часі в автоматизованих процесах. - **Спеціальний аналіз**: Doris пропонує можливості багатовимірного аналізу даних, забезпечуючи швидкий аналіз бізнес-аналітики та спеціальні запити, щоб допомогти користувачам швидко виявити інсайти зі складних даних. - **Профілювання користувачів та аналіз поведінки**: Doris може аналізувати поведінку користувачів, таку як участь, утримання та конверсія, а також підтримує сценарії, такі як демографічні інсайти та вибір груп для аналізу поведінки. - **Аналітика озера даних**: - **Прискорення запитів до озера даних**: Doris прискорює запити до даних озера даних за допомогою свого ефективного механізму запитів. - **Федеративна аналітика**: Doris підтримує федеративні запити по кількох джерелах даних, спрощуючи архітектуру та усуваючи ізоляцію даних. - **Обробка даних у реальному часі**: Doris поєднує можливості обробки потоків даних у реальному часі та пакетної обробки даних для задоволення потреб високої паралельності та низької затримки складних бізнес-вимог. - **Спостережуваність на основі SQL**: - **Аналіз логів та подій**: Doris забезпечує аналіз логів та подій у реальному часі або пакетний аналіз у розподілених системах, допомагаючи виявляти проблеми та оптимізувати продуктивність. ## Загальна архітектура Apache Doris використовує протокол MySQL, має високу сумісність з синтаксисом MySQL і підтримує стандартний SQL. Користувачі можуть отримати доступ до Apache Doris через різні клієнтські інструменти, і він безшовно інтегрується з інструментами BI. ### Інтегрована архітектура зберігання та обчислень Інтегрована архітектура зберігання та обчислень Apache Doris спрощена та проста в обслуговуванні. Як показано на малюнку нижче, вона складається лише з двох типів процесів: - **Frontend (FE):** В основному відповідає за обробку запитів користувачів, розбір та планування запитів, управління метаданими та завдання управління вузлами. - **Backend (BE):** В основному відповідає за зберігання даних та виконання запитів. Дані розділяються на сегменти та зберігаються з кількома репліками на вузлах BE. ![Загальна архітектура Apache Doris](https://cdn.selectdb.com/static/What_is_Apache_Doris_adb26397e2.png)
У виробничому середовищі можна розгорнути кілька вузлів FE для аварійного відновлення. Кожен вузол FE підтримує повну копію метаданих. Вузли FE розділені на три ролі: | Роль | Функція | | --------- | ------------------------------------------------------------ | | Master | Вузол FE Master відповідає за операції читання та запису метаданих. Коли зміни метаданих відбуваються в Master, вони синхронізуються з вузлами Follower або Observer через протокол BDB JE. | | Follower | Вузол Follower відповідає за читання метаданих. Якщо вузол Master виходить з ладу, вузол Follower може бути обраний як новий Master. | | Observer | Вузол Observer відповідає за читання метаданих і в основному використовується для збільшення паралельності запитів. Він не бере участі у виборах лідера кластера. | Як процеси FE, так і BE масштабуються горизонтально, що дозволяє одному кластеру підтримувати сотні машин і десятки петабайтів ємності зберігання. Процеси FE та BE використовують протокол узгодженості для забезпечення високої доступності сервісів та високої надійності даних. Інтегрована архітектура зберігання та обчислень високо інтегрована, значно зменшуючи операційну складність розподілених систем. ## Основні функції Apache Doris - **Висока доступність**: В Apache Doris як метадані, так і дані зберігаються з кількома репліками, синхронізуючи журнали даних через протокол кворуму. Запис даних вважається успішним, коли більшість реплік завершили запис, гарантуючи, що кластер залишається доступним, навіть якщо кілька вузлів виходять з ладу. Apache Doris підтримує аварійне відновлення як в межах одного міста, так і між регіонами, забезпечуючи режими master-slave з подвійним кластером. Коли деякі вузли зазнають збоїв, кластер може автоматично ізолювати несправні вузли, запобігаючи впливу на загальну доступність кластера. - **Висока сумісність**: Apache Doris має високу сумісність з протоколом MySQL і підтримує стандартний синтаксис SQL, охоплюючи більшість функцій MySQL та Hive. Ця висока сумісність дозволяє користувачам безшовно мігрувати та інтегрувати існуючі додатки та інструменти. Apache Doris підтримує екосистему MySQL, дозволяючи користувачам підключатися до Doris за допомогою інструментів клієнта MySQL для зручніших операцій та обслуговування. Він також підтримує сумісність протоколу MySQL для інструментів звітності BI та інструментів передачі даних, забезпечуючи ефективність та стабільність у процесах аналізу даних та передачі даних. - **Сховище даних у реальному часі**: На основі Apache Doris можна побудувати сервіс сховища даних у реальному часі. Apache Doris пропонує можливості прийому даних на рівні секунд, захоплюючи інкрементальні зміни з вищестоящих онлайн-транзакційних баз даних у Doris протягом секунд. Використовуючи векторизовані рушії, архітектуру MPP та рушії виконання Pipeline, Doris забезпечує можливості запитів даних на рівні субсекунд, тим самим створюючи високопродуктивну платформу сховища даних у реальному часі з низькою затримкою. - **Єдине озеро даних**: Apache Doris може побудувати єдину архітектуру озера даних на основі зовнішніх джерел даних, таких як озера даних або реляційні бази даних. Рішення єдиного озера даних Doris забезпечує безшовну інтеграцію та вільний потік даних між озерами даних та сховищами даних, допомагаючи користувачам безпосередньо використовувати можливості сховища даних для вирішення проблем аналізу даних у озерах даних, при цьому повною мірою використовуючи можливості управління даними озера даних для підвищення цінності даних. - **Гнучке моделювання**: Apache Doris пропонує різні підходи до моделювання, такі як моделі широких таблиць, моделі попередньої агрегації, схеми зірки/сніжинки тощо. Під час імпорту даних дані можуть бути сплющені в широкі таблиці та записані в Doris через обчислювальні рушії, такі як Flink або Spark, або дані можуть бути безпосередньо імпортовані в Doris, виконуючи операції моделювання даних через подання, матеріалізовані подання або з'єднання кількох таблиць у реальному часі. ## Технічний огляд Doris надає ефективний інтерфейс SQL і повністю сумісний з протоколом MySQL. Його механізм запитів заснований на архітектурі MPP (масово паралельна обробка), здатної ефективно виконувати складні аналітичні запити та досягати запитів у реальному часі з низькою затримкою. Завдяки технології колонкового зберігання для кодування та стиснення даних він значно оптимізує продуктивність запитів та коефіцієнт стиснення зберігання. ### Інтерфейс Apache Doris приймає протокол MySQL, підтримує стандартний SQL і має високу сумісність з синтаксисом MySQL. Користувачі можуть отримати доступ до Apache Doris через різні клієнтські інструменти та безшовно інтегрувати його з інструментами BI, включаючи, але не обмежуючись Smartbi, DataEase, FineBI, Tableau, Power BI та Apache Superset. Apache Doris може працювати як джерело даних для будь-яких інструментів BI, які підтримують протокол MySQL. ### Механізм зберігання Apache Doris має колонковий механізм зберігання, який кодує, стискає та читає дані по стовпцях. Це забезпечує дуже високий коефіцієнт стиснення даних і значно зменшує непотрібне сканування даних, що робить більш ефективне використання ресурсів IO та CPU. Apache Doris підтримує різні структури індексів для мінімізації сканування даних: - **Індекс відсортованого складеного ключа**: Користувачі можуть вказати максимум три стовпці для формування складеного ключа сортування. Це може ефективно обрізати дані для кращої підтримки сценаріїв звітності з високою паралельністю. - **Індекс Min/Max**: Це забезпечує ефективну фільтрацію даних у запитах еквівалентності та діапазону числових типів. - **Індекс BloomFilter**: Це дуже ефективно при фільтрації еквівалентності та обрізанні стовпців з високою кардинальністю. - **Зворотний індекс**: Це забезпечує швидкий пошук для будь-якого поля. Apache Doris підтримує різноманітні моделі даних і оптимізував їх для різних сценаріїв: - **Модель деталей (Модель дублюючого ключа):** Модель даних деталей, розроблена для задоволення детальних вимог до зберігання таблиць фактів. - **Модель первинного ключа (Модель унікального ключа):** Забезпечує унікальні ключі; дані з тим самим ключем перезаписуються, що дозволяє оновлювати дані на рівні рядків. - **Модель агрегації (Модель ключа агрегації):** Об'єднує стовпці значень з тим самим ключем, значно покращуючи продуктивність завдяки попередній агрегації. Apache Doris також підтримує строго узгоджені матеріалізовані подання з однією таблицею та асинхронно оновлювані матеріалізовані подання з кількома таблицями. Матеріалізовані подання з однією таблицею автоматично оновлюються та підтримуються системою, не вимагаючи ручного втручання користувачів. Матеріалізовані подання з кількома таблицями можуть періодично оновлюватися з використанням планування всередині кластера або зовнішніх інструментів планування, зменшуючи складність моделювання даних. ### 🔍 Механізм запитів Apache Doris має механізм запитів на основі MPP для паралельного виконання між вузлами та всередині вузлів. Він підтримує розподілене перемішування з'єднань для великих таблиць для кращої обробки складних запитів.
![Query Engine](https://cdn.selectdb.com/static/What_is_Apache_Doris_1_c6f5ba2af9.png)
Механізм запитів Apache Doris повністю векторизований, з усіма структурами пам'яті, розташованими в колонковому форматі. Це може значно зменшити віртуальні виклики функцій, збільшити частоту попадань у кеш і ефективно використовувати інструкції SIMD. Apache Doris забезпечує продуктивність у 5-10 разів вищу в сценаріях агрегації широких таблиць порівняно з невекторизованими механізмами.
![Doris query engine](https://cdn.selectdb.com/static/What_is_Apache_Doris_2_29cf58cc6b.png)
Apache Doris використовує технологію адаптивного виконання запитів для динамічної корекції плану виконання на основі статистики часу виконання. Наприклад, він може генерувати фільтр часу виконання та передавати його на сторону зонда. Конкретно, він передає фільтри на вузол сканування найнижчого рівня на стороні зонда, що значно зменшує обсяг даних для обробки та збільшує продуктивність з'єднання. Фільтр часу виконання Apache Doris підтримує In/Min/Max/Bloom Filter. Apache Doris використовує механізм виконання Pipeline, який розбиває запити на кілька підзадач для паралельного виконання, повною мірою використовуючи можливості багатоядерного процесора. Він одночасно вирішує проблему вибуху потоків, обмежуючи кількість потоків запитів. Механізм виконання Pipeline зменшує копіювання та спільне використання даних, оптимізує операції сортування та агрегації, тим самим значно покращуючи ефективність запитів та пропускну здатність. З точки зору оптимізатора, Apache Doris використовує комбіновану стратегію оптимізації CBO (оптимізатор на основі вартості), RBO (оптимізатор на основі правил) та HBO (оптимізатор на основі історії). RBO підтримує згортання констант, переписування підзапитів, проштовхування предикатів та інше. CBO підтримує переупорядкування з'єднань та інші оптимізації. HBO рекомендує оптимальний план виконання на основі історичної інформації про запити. Ці множинні заходи оптимізації забезпечують, що 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 року**. Ми глибоко цінуємо 🔗[учасників спільноти](https://github.com/apache/doris/graphs/contributors) за їхній внесок у Apache Doris. [![contrib graph](https://contrib.rocks/image?repo=apache/doris)](https://github.com/apache/doris/graphs/contributors) ## 👨‍👩‍👧‍👦 Користувачі Apache Doris тепер має широку базу користувачів у Китаї та по всьому світу, і станом на сьогодні **Apache Doris використовується у виробничих середовищах у тисячах компаній по всьому світу.** Понад 80% з 50 провідних інтернет-компаній Китаю з точки зору ринкової капіталізації або оцінки довго використовують Apache Doris, включаючи Baidu, Meituan, Xiaomi, Jingdong, Bytedance, Tencent, NetEase, Kwai, Sina, 360, Mihoyo та Ke Holdings. Він також широко використовується в деяких традиційних галузях, таких як фінанси, енергетика, виробництво та телекомунікації. Користувачі Apache Doris: 🔗[Користувачі](https://doris.apache.org/users) Додайте логотип вашої компанії на веб-сайт Apache Doris: 🔗[Додати вашу компанію](https://github.com/apache/doris/discussions/27683) ## 👣 Почати роботу ### 📚 Документація Вся документація 🔗[Документація](https://doris.apache.org/docs/gettingStarted/what-is-apache-doris) ### ⬇️ Завантаження Всі версії релізів та бінарні версії 🔗[Завантаження](https://doris.apache.org/download) ### 🗄️ Компіляція Див. як скомпілювати 🔗[Компіляція](https://doris.apache.org/community/source-install/compilation-with-docker)) ### 📮 Встановлення Див. як встановити та розгорнути 🔗[Встановлення та розгортання](https://doris.apache.org/docs/install/preparation/env-checking) ## 🧩 Компоненти ### 📝 Doris Connector Doris надає підтримку для Spark/Flink для читання даних, збережених у Doris, через Connector, а також підтримує запис даних у Doris через Connector. 🔗[apache/doris-flink-connector](https://github.com/apache/doris-flink-connector) 🔗[apache/doris-spark-connector](https://github.com/apache/doris-spark-connector) ## 🌈 Спільнота та підтримка ### 📤 Підписка на списки розсилки Список розсилки — це найбільш визнана форма спілкування в спільноті Apache. Див. як 🔗[Підписатися на списки розсилки](https://doris.apache.org/community/subscribe-mail-list) ### 🙋 Повідомити про проблеми або надіслати Pull Request Якщо у вас є запитання, не соромтеся створити 🔗[GitHub Issue](https://github.com/apache/doris/issues) або опублікувати його в 🔗[GitHub Discussion](https://github.com/apache/doris/discussions) та виправити, надіславши 🔗[Pull Request](https://github.com/apache/doris/pulls) ### 🍻 Як внести внесок Ми вітаємо ваші пропозиції, коментарі (включаючи критичні зауваження), коментарі та внески. Див. 🔗[Як внести внесок](https://doris.apache.org/community/how-to-contribute/) та 🔗[Керівництво з надсилання коду](https://doris.apache.org/community/how-to-contribute/pull-request/) ### ⌨️ Пропозиції щодо покращення Doris (DSIP) 🔗[Пропозиція щодо покращення Doris (DSIP)](https://cwiki.apache.org/confluence/display/DORIS/Doris+Improvement+Proposals) можна розглядати як **Колекцію проектних документів для всіх основних оновлень або покращень функцій**. ### 🔑 Специфікація кодування Backend C++ 🔗 [Специфікація кодування Backend C++](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=240883637) повинна суворо дотримуватися, що допоможе нам досягти кращої якості коду. ## 💬 Зв'яжіться з нами Зв'яжіться з нами через наступний список розсилки. | Ім'я | Область | | | | |:------------------------------------------------------------------------------|:--------------------------------|:----------------------------------------------------------------|:--------------------------------------------------------------------|:-----------------------------------------------------------------------------| | [dev@doris.apache.org](mailto:dev@doris.apache.org) | Обговорення, пов'язані з розробкою | [Підписатися](mailto:dev-subscribe@doris.apache.org) | [Відписатися](mailto:dev-unsubscribe@doris.apache.org) | [Архіви](http://mail-archives.apache.org/mod_mbox/doris-dev/) | ## 🧰 Посилання * Офіційний веб-сайт Apache Doris - [Сайт](https://doris.apache.org) * Список розсилки розробників - . Надішліть лист на , дотримуйтесь відповіді, щоб підписатися на список розсилки. * Канал Slack - [Приєднатися до Slack](https://join.slack.com/t/apachedoriscommunity/shared_invite/zt-35mzao67o-BrpU70FNKPyB6UlgpXf8_w) * Twitter - [Підписатися на @doris_apache](https://twitter.com/doris_apache) ## 📜 Ліцензія [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) > **Примітка** > Деякі ліцензії залежностей третіх сторін несумісні з ліцензією Apache 2.0. Тому вам потрібно вимкнути деякі функції Doris для відповідності ліцензії Apache 2.0. Для деталей див. файл `thirdparty/LICENSE.txt`