Apache Doris 在數據倉庫中的作用與應用實踐

在當今數字化時代,企業數據呈爆炸式增長,數據倉庫作為企業數據管理和分析的核心基礎設施,其重要性不言而喻。而 Apache Doris,作為一款基于 MPP(Massively Parallel Processing,大規模并行處理)架構的高性能實時分析型數據庫,在數據倉庫領域正發揮著舉足輕重的作用。

1.Doris 的基本概述

Apache Doris 最初源于百度廣告報表業務的 Palo 項目,2017 年正式開源,2018 年 7 月由百度捐贈給 Apache 基金會進行孵化,并于 2022 年 6 月畢業成為 Apache 頂級項目。截至目前,其社區已匯聚來自不同行業數百家企業的 600 余位貢獻者,每月活躍貢獻者超 120 位,在全球超過 4000 家企業的生產環境中得以應用,覆蓋互聯網、金融、零售、電信、能源、制造、醫療等多個領域。

2.Doris 在數據倉庫中的核心作用

2.1 極速查詢,支撐高效決策

數據倉庫的核心價值在于能夠快速為企業決策提供數據支持。Doris 以其亞秒級的查詢響應能力脫穎而出,在海量數據下也能迅速返回查詢結果。這得益于其先進的技術架構:

列式存儲:按列進行數據的編碼壓縮和讀取,極大提高了數據壓縮比,減少了不必要的數據掃描,有效降低了 I/O 負載,提升了查詢性能。例如,對于一張包含用戶多種屬性及行為數據的寬表,使用列式存儲,在查詢特定用戶屬性(如年齡、性別)時,僅需讀取相應列的數據,而非全表掃描。

向量化執行引擎:所有內存結構按列式布局,大幅減少虛函數調用,提升 Cache 命中率,充分利用 SIMD 指令,加速查詢執行。以復雜的多表關聯分析查詢為例,向量化執行引擎可顯著提升查詢效率,使企業能在短時間內獲取關鍵業務洞察。

MPP 架構:能夠充分發揮集群中多臺機器和多個核心的并行處理能力,將大規模查詢任務分解并分發到多個節點同時處理,大大縮短了查詢時間。在處理 PB 級數據量的分析任務時,MPP 架構優勢盡顯,可確保分析結果快速產出,助力企業及時做出決策。

2.2 實時數據處理,把握業務先機

在瞬息萬變的商業環境中,實時數據處理能力對于企業把握市場動態、應對突發情況至關重要。Doris 支持實時數據攝入,無論是來自業務系統的交易數據,還是用戶行為產生的實時日志數據,都能快速加載到數據倉庫中進行分析。

例如,在電商領域,京東使用 Doris 處理廣告報表業務,每日可攝入 100 億行數據,查詢并發 QPS 上萬,99 分位的查詢延時僅 150ms。通過實時分析用戶的瀏覽、點擊、購買等行為數據,電商企業能夠實時調整營銷策略,如實時推薦商品、優化廣告投放策略等,從而提高用戶轉化率和銷售額。

2.3 高并發支持,滿足多樣查詢需求

企業數據倉庫往往需要同時服務于多個部門、多種業務場景下的查詢請求。Doris 設計上能夠處理數千個并發用戶和查詢,無論是面向業務人員的高并發點查詢,如實時查詢某一客戶的最新訂單狀態;還是面向分析師的高吞吐復雜分析查詢,如跨多個維度對全量銷售數據進行綜合分析,Doris 都能輕松應對。這種高并發處理能力確保了不同用戶在同一時間高效地獲取所需數據,提升了企業整體的數據使用效率。

2.4 簡化數據倉庫架構,降低運維成本

傳統數據倉庫架構通常較為復雜,涉及多種技術組件和工具,增加了運維難度和成本。Doris 具有簡潔的架構,僅包含 FE(Frontend) 和 BE(Backend) 兩個主要進程:

FE(Frontend):負責用戶請求的接入、查詢解析與規劃、元數據管理以及節點管理等工作,并將請求轉發給對應的后端處理。同時,承擔著 Doris 集群的負載均衡和故障轉移功能,保障系統的高可用性。

BE(Backend):專注于數據存儲和查詢執行。

這種高度集成的架構設計極大地減少了分布式系統的運維復雜度,降低了企業在數據倉庫運維方面的人力、物力投入。例如,在集群擴展時,只需簡單添加 FE 和 BE 節點,Doris 便能自動完成節點的發現、數據的均衡等,無需復雜的人工干預。

2.5 豐富的數據模型,適配多元業務場景

不同業務場景對數據存儲和處理的需求各異。Doris 支持多種數據模型,為企業提供了靈活的數據管理方式:

聚合模型(Aggregate Model):對于需要對大量數據進行預聚合處理的場景,如統計各類商品的銷售總額、不同地區的用戶訪問量等,聚合模型能夠將相同鍵值的數據進行合并,通過預聚合操作減少數據存儲量,提升查詢性能。

唯一模型(Unique Model):在一些對數據唯一性要求較高的場景,如用戶信息表,確保每條記錄的唯一性,對于相同鍵的數據進行覆蓋更新,實現行級數據的精確管理。

明細模型(Duplicate Model):適用于需要完整保留原始數據的場景,如日志記錄,不對數據進行聚合操作,原樣存儲,以便后續進行全量數據的深度分析。

2.6 數據湖聯邦查詢,打破數據孤島

隨著數據湖技術的興起,企業往往同時擁有數據倉庫和數據湖。Doris 支持對外部數據湖(如 Apache Hive、Apache Hudi、Apache Iceberg 等)中的外部表進行聯邦查詢。通過這種方式,企業無需將數據在數據湖和數據倉庫之間來回復制,即可直接利用 Doris 強大的查詢能力對數據湖中的數據進行分析,打破了數據孤島,實現了數據的高效共享與統一分析,充分挖掘數據的潛在價值。

3.應用案例

3.1 小米基于 Doris 構建多維分析平臺

當前 Apache Doris 在小米內部已經具有數十個集群、總體達到數百臺 BE 節點的規模,其中單集群最大規模達到近百臺節點,擁有數十個流式數據導入產品線,每日單表最大增量 120 億、支持 PB 級別存儲,單集群每天可以支持 2W 次以上的多維分析查詢。

3.2 網易游戲湖倉一體架構下的高效數據實踐

網易游戲通過引入 Apache Doris,成功構建了全新的湖倉一體架構,有效應對了數據規模爆炸式增長帶來的挑戰。每日新增數據達百 TB 級別的情況下,Doris 支撐起了從玩家基本行為到游戲內部復雜數據的分析任務。通過將數據實時寫入 Doris,結合數據湖進行冷熱數據分層存儲,并利用 Doris 的 Hive Catalog 及 Iceberg Catalog 實現數據湖查詢加速,新架構實現了存儲與查詢的統一,查詢性能提升 10-20 倍。如今,十余集群穩定運行,為上百個項目提供日均數百萬次查詢服務,在游戲質量保障、性能監控等關鍵場景中發揮了重要作用 。

4.總結

Apache Doris 憑借其在查詢性能、實時處理、高并發支持、架構簡化、數據模型多樣性以及數據湖聯邦查詢等方面的卓越表現,在數據倉庫領域展現出了巨大的價值。它不僅能夠幫助企業高效管理和分析海量數據,快速獲取業務洞察,還能降低數據倉庫的建設和運維成本,為企業數字化轉型和業務創新提供堅實的數據基礎。隨著數據量的持續增長和企業對數據分析需求的不斷提升,Apache Doris 有望在更多行業和場景中得到廣泛應用,助力企業在激烈的市場競爭中脫穎而出。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907996.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

P1438 無聊的數列/P1253 扶蘇的問題

因為這兩天在寫線性代數的作業,沒怎么寫題…… P1438 無聊的數列 題目背景 無聊的 YYB 總喜歡搞出一些正常人無法搞出的東西。有一天,無聊的 YYB 想出了一道無聊的題:無聊的數列。。。 題目描述 維護一個數列 ai?,支持兩種操…

SpringBoot 自定義注解實現限流

SpringBoot 自定義注解實現限流 限流是為了防止服務器資源的過度消耗,通過一定的策略來控制訪問頻率,確保服務的高可用性和穩定性。其核心意義在于防止流量高峰時期接口過載,從而引起服務崩潰或響應延遲增加。本文將簡述如何通過AOP和自定義…

Unity——QFramework框架 內置工具

QFramework 除了提供了一套架構之外,QFramework 還提供了可以脫離架構使用的工具 TypeEventSystem、EasyEvent、BindableProperty、IOCContainer。 這些工具并不是有意提供,而是 QFramework 的架構在設計之初是通過這幾個工具組合使用而成的。 內置工具…

Vue3.5 企業級管理系統實戰(二十二):動態菜單

在前幾篇內容中已完成菜單、角色及菜單權限等相關開發,若要在左側菜單根據用戶角色動態展示菜單,需對 Sidebar 中的相關數據進行修改。鑒于其他相關方法及類型已在前文實現,本文不再重復闡述。 1 修改 Sidebar 組件 在 src/layout/componen…

014校園管理系統技術解析:構建智慧校園管理平臺

校園管理系統技術解析:構建智慧校園管理平臺 在教育信息化快速發展的當下,校園管理系統成為提升學校管理效率、優化校園服務的重要工具。該系統集成院校管理、投票管理等多個核心模塊,面向管理員、用戶和院內管理員三種角色,通過…

創新農業社會化服務 中和農信服務小農戶的探索實踐

在實現鄉村振興的道路上,如何讓現代農業發展成果惠及廣大小農戶,是一個重要課題。作為國內領先的綜合助農機構,中和農信多年來深耕農村市場,在服務小農戶方面進行了諸多創新探索,走出了一條具有示范意義的農業社會化服…

6.3 day 35

知識點回顧: 三種不同的模型可視化方法:推薦torchinfo打印summary權重分布可視化進度條功能:手動和自動寫法,讓打印結果更加美觀推理的寫法:評估模式 可視化 理解深度學習網絡最重要的2點: 1.了解損失如何定…

【如何在IntelliJ IDEA中新建Spring Boot項目(基于JDK 21 + Maven)】

AA. 我的開發環境配置與核心工具鏈解析 一、開發環境全覽 C:\Users\Again>java -version java version "21.0.1" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.112-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.112-LTS-29, mixed m…

【C++高級主題】多重繼承下的類作用域

目錄 一、類作用域與名字查找規則:理解二義性的根源 1.1 類作用域的基本概念 1.2 單繼承的名字查找流程 1.3 多重繼承的名字查找特殊性 1.4 關鍵規則:“最近” 作用域優先,但多重繼承無 “最近” 二、多重繼承二義性的典型類型與代碼示…

登錄vmware vcenter報vSphere Client service has stopped working錯誤

一、問題 登錄vmware vcenter時發現報vSphere Client service has stopped working錯誤,導致vcenter控制臺進不去 二、解決辦法 打開vmware vcenter管理https://vcenterIP:5480,選擇VMware vSphere Client,重啟該服務后恢復正常。

MySQL關系型數據庫學習

學習參考鏈接:https://www.runoob.com/mysql/mysql-tutorial.html Windows 安裝MYSQL服務端的步驟:https://www.runoob.com/w3cnote/windows10-mysql-installer.html 1. 概念學習 MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不…

web攻防之SSTI 注入漏洞

知識簡介 : 模版引擎和框架的區別 ssti的中文翻譯 : 服務端的模版的注入 模版引擎 :前端的用于裝飾優化html的模版 最簡單的就是在騰訊會議中的聊天功能 框架 : 這個是一套獨立存在的邏輯 如TP他是一個區別于php語法的后端邏輯…

【清晰教程】利用Git工具將本地項目push上傳至GitHub倉庫中

Git 是一個分布式版本控制系統,由 Linus Torvalds 創建,用于有效、高速地處理從小到大的項目版本管理。GitHub 是一個基于 Git 的代碼托管平臺,提供了額外的協作和社交功能,使項目管理更加高效。它們為項目代碼管理、團隊協作和持…

極簡以太彩光網絡解決方案4.0正式發布,“彩光”重構園區網絡極簡之道

5月28日下午,銳捷網絡在京舉辦以“光,本該如此‘簡單’”為主題的發布會,正式發布極簡以太彩光網絡解決方案4.0。作為“彩光”方案的全新進化版本,極簡以太彩光4.0從用戶需求出發,聚焦場景洞察,開啟了一場從底層基因出發的極簡革命,通過架構、部署、運維等多維度的創新升級,以強…

Selenium 中 JavaScript 點擊的優勢及使用場景

*在 Selenium 自動化測試中,使用 JavaScript 執行點擊操作(如driver.execute_script("arguments[0].click();", element))相比直接調用element.click()有以下幾個主要優勢: 1. 繞過元素不可點擊的限制 問題場景&#x…

CppCon 2014 學習:Cross platform GUID association with types

類型的 GUID(全局唯一標識符) 是在 COM 編程(Component Object Model) 和某些大型 C 架構(如 Office、DirectX、跨 DLL 接口)中關聯類型信息和實現運行時類型識別與動態接口查詢的重要機制。 下面我們分層解…

Android 11以上App主動連接WIFI的完整方案

早期Android版本App內連接指定的WIFI還是比較簡單的,但是隨著Android版本的提升,限制也越來越多。以下是一套完整的Android 11以上的WIFI應用內主動連接方案。 第一步:添加到建議連接: val wifiManager getSystemService(WIFI_…

讓AI彈琴作曲不再是夢:Python+深度學習玩轉自動化音樂創作

讓AI彈琴作曲不再是夢:Python+深度學習玩轉自動化音樂創作 一、AI也能譜出動人的旋律?真不是科幻! 還記得小時候學鋼琴時老師的那句經典:“感覺不到情緒的樂句,是沒靈魂的。” 當時我一邊練琴一邊想:要是有個機器能幫我寫譜、調性又不跑調就好了! 結果幾年后,真被我碰…

機器學習:集成學習概念、分類、隨機森林

本文目錄: 一、集成學習概念**核心思想:** 二、集成學習分類(一)Bagging集成(二)Boosting集成(三)兩種集成方法對比 三、隨機森林 一、集成學習概念 集成學習是一種通過結合多個基學習器&#…

YOLO機械臂丨使用unity搭建仿真環境,YOLO算法識別,Moveit2控制

文章目錄 前言搭建開發環境在window中安裝Unity創建Docker容器,并安裝相關軟件運行測試改進添加刪除節點前的函數調用 報錯?框選節點的時候報錯?如果無法控制機械臂,查看rviz2的終端,應該會有?規劃路徑超出范圍 參考 前言 本項目介紹通過…