APACHE DORIS / VELODB туралы кіріспе
Нақты уақыттағы MPP деректер қоймасы: архитектура, қолдану сценарийлері, негізгі мүмкіндіктер
Apache Doris Documentation 4.x
Datanomix.pro
~12 мин
Apache Doris/VeloDB деген не
Apache Doris/VeloDB — бұл жоғары сұраныс жылдамдығымен танымал нақты уақыттағы MPP деректер қоймасы. Үлкен деректер жиынтығындағы сұраныстар үшін ол нәтижелерді секунд ішінде қайтарады. Жоғары конкурентті нүктелік сұраныстарды да, жоғары өнімді күрделі талдауды да қолдайды. Оны есеп талдауы, арнайы сұраныстар, біріктірілген деректер қоймасы және деректер көлі сұраныстарын жеделдету үшін пайдалануға болады.
Apache Doris/VeloDB негізінде пайдаланушылар мінез-құлықты талдау, A/B тестілеу, журнал талдауы, пайдаланушы профилін талдау және электрондық коммерция тапсырыстарын талдау қосымшаларын жасай алады.
Бұрын Palo деп аталған Apache Doris/VeloDB бастапқыда Baidu жарнамалық аналитикасын қолдау үшін жасалған. Жоба 2017 жылы ресми түрде ашылды және 2018 жылдың шілдесінде Apache Software Foundation-ға берілді. 2022 жылдың маусымында Apache Doris инкубацияны сәтті аяқтап, Apache жоғарғы деңгейлі жобасына (Top-Level Project) айналды. Қазіргі уақытта Apache Doris қоғамдастығы әртүрлі салалардағы жүздеген компаниядан 700-ден астам контрибьюторды біріктіреді, ай сайын 120-дан астам белсенді қатысушылармен.
Apache Doris/VeloDB кең пайдаланушы базасына ие. Ол бүкіл әлемде 5000-нан астам компанияның production ортасында қолданылады, оның ішінде 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-де метадеректер өзгерісі болғанда, олар BDB JE протоколы арқылы Follower немесе Observer түйіндерімен синхрондалады. |
| Follower | Follower түйіні метадеректерді оқуға жауапты. Master түйіні істен шықса, Follower жаңа Master ретінде таңдалуы мүмкін. |
| Observer | Observer түйіні метадеректерді оқуға жауапты және сұраныс параллелизмін арттыру үшін қолданылады. Ол кластер лидерін сайлауға қатыспайды. |
FE және BE процестері көлденеңінен масштабталады, бұл бір кластерге жүздеген машинаны және ондаған петабайт сақтау көлемін қолдауға мүмкіндік береді.
Сақтау мен есептеулерді бөлу
3.0 нұсқасынан бастап сақтау мен есептеулерді бөлу архитектурасын таңдауға болады. Сақтау мен есептеулерді бөлу арқылы пайдаланушылар сақтау көлемі мен есептеу ресурстарын дербес масштабтай алады.
- Метадеректер қабаты — Сұраныстарды жоспарлау, талдау және метадеректерді сақтау мен басқару үшін жауапты.
- Есептеу қабаты — Бірнеше есептеу топтарынан тұрады, олардың әрқайсысы тәуелсіз арендатор ретінде жұмыс істей алады. Әр топта бірнеше stateless BE-түйіндер бар, эластикалық масштабталады.
- Сақтау қабаты — Doris/VeloDB деректер файлдарын сақтау үшін S3, HDFS, OSS, COS, OBS, Minio және Ceph-ті пайдалана алады.
Apache Doris/VeloDB негізгі мүмкіндіктері
Жоғары қолжетімділік
Apache Doris/VeloDB-де метадеректер мен деректер бірнеше репликамен сақталады, кворум протоколы арқылы деректер журналдарын синхрондайды. Бірнеше түйін істен шықса да кластер қолжетімді болып қала береді. Аймақ ішілік және аймақ аралық апатты қалпына келтіруді қолдайды.
Жоғары үйлесімділік
Apache Doris/VeloDB MySQL протоколымен жоғары үйлесімділікке ие және стандартты SQL синтаксисін қолдайды. Бар қосымшалар мен құралдарды кедергісіз тасымалдауға және интеграциялауға мүмкіндік береді. BI-құралдар мен деректер тасымалдау құралдары үшін MySQL экожүйесін қолдайды.
Нақты уақытта деректерді қабылдау
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. MySQL қолдайтын кез келген BI үшін деректер көзі ретінде жұмыс істей алады.
Сақтау қозғалтқышы
Колонкалық сақтау қозғалтқышы деректерді бағандар бойынша кодтайды, сығымдайды және оқиды — жоғары сығымдау коэффициенті және 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 қозғалтқышы сұраныстарды көп ядролы CPU пайдаланып параллель орындау үшін ішкі тапсырмаларға бөледі. Оптимизатор жоғары өнімді орындау жоспарлары үшін CBO, RBO және HBO комбинациясын пайдаланады.
VELODB СІЗДІҢ МӘСЕЛЕЛЕРІҢІЗДІ ҚАЛАЙ ШЕШЕТІНІН БІЛГІҢІЗ КЕЛЕ МЕ?
> Кеңес тегін, міндеттемелер жоқ
./КЕҢЕС_СҰРАУ.shData Warehouse vs Data Lake vs Lakehouse. Open table formats. Бес айқын емес артықшылық.
Vector + BM25 + RRF. Бенчмарк: GPU-сіз Reranker сапасының 96%-ы. 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.