Apache Doris設計思想介紹與應用場景

来源:https://www.cnblogs.com/wintersun/p/18355883
-Advertisement-
Play Games

Apache Doris設計思想介紹與應用場景 MPP ( Massively Parallel Processing ),即大規模並行處理,在資料庫非共用集群中,每個節點都有獨立的磁碟存儲系統和記憶體系統,業務數據根據資料庫模型和應用特點劃分到各個節點上,每台數據節點通過專用網路或者商業通用網路互相 ...


Apache Doris設計思想介紹與應用場景

    MPP ( Massively Parallel Processing ),即大規模並行處理,在資料庫非共用集群中,每個節點都有獨立的磁碟存儲系統和記憶體系統,業務數據根據資料庫模型和應用特點劃分到各個節點上,每台數據節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供資料庫服務。非共用資料庫集群有完全的可伸縮性、高可用、高性能、優秀的性價比、資源共用等優勢。簡單來說,MPP 是將任務並行的分散到多個伺服器和節點上,在每個節點上計算完成後,將各自部分的結果彙總在一起得到最終的結果 ( 與 Hadoop 相似 )。

MPP資料庫的主要特點
  1. 分散式架構:MPP資料庫通過將數據和處理任務分散到多個節點上,實現水平擴展,能夠高效處理大量數據。

  2. 無共用架構:每個節點獨立運行,擁有自己的資源,這增強了系統的可靠性和容錯能力。

  3. 並行查詢處理:可以在多個節點上並行執行查詢,顯著提高了性能。

  4. 數據分區:將數據劃分為小塊,每個節點負責特定部分,便於高效處理。

  5. 高性能計算:針對複雜分析和數據倉庫進行了優化,支持並行處理和高效的存儲引擎。

  6. 可擴展性:通過增加節點,可以輕鬆擴展以應對不斷增長的數據量和用戶需求。

  7. 高可用性:採用冗餘和複製機制,確保系統始終可用,減少停機時間。

  8. 支持複雜查詢:能夠高效處理涉及多表連接、子查詢和聚合的複雜查詢。

  9. 列存儲:許多MPP資料庫使用列式存儲,提升分析工作負載的性能。

  10. 與分析工具集成:與各種分析框架和商業智能平臺相容,便於數據驅動的決策。


 Apache Doris

Apache Doris 是一個現代化的 MPP(大規模並行處理)資料庫,主要用於實時分析和報表查詢。它採用了分散式存儲和計算架構,數據分片是其核心機制之一。Doris 主要解決 PB 級別的數據量(如果高於 PB 級別,不推薦使用 Doris 解決,可以考慮用 Hive 等工具),解決結構化數據,查詢時間一般在秒級或毫秒級。

image

高效的數據傳輸機制:為了應對大規模數據讀取和傳輸的需求,Doris 支持 Arrow Flight SQL 協議,這一協議能夠顯著提高數據傳輸效率,實現百倍飛躍。

冷熱數據分層功能:在 Doris 2.0 版本中引入了冷熱數據分層功能,可以將冷數據下沉到成本更低的對象存儲中,同時減少因存儲附加帶來的開銷。

易用性和運維成本低:Doris 設計上註重用戶體驗,具有極速易用的特點,僅需亞秒級響應時間即可返回查詢結果。此外,它還具備較低的運維成本和使用成本


應用場景

報表分析:Doris 可以快速生成各種報表,適用於企業的經營分析決策、日誌分析、用戶行為洞察等場景。
即席查詢:由於其高效的查詢性能,Doris 也適用於需要即席查詢的場景,比如臨時的數據分析需求。
統一數倉構建:Doris 可以作為企業統一數倉的核心組件,支持複雜的查詢和數據整合需求。
數據湖聯邦查詢加速:Doris 支持與位於 Apache Hive、Apache Iceberg 等平臺的外部表聯合查詢,加速數據湖中的聯邦查詢。
用戶行為分析和 AB 實驗平臺:用戶可以基於 Doris 構建用戶行為分析系統和 AB 實驗平臺,以優化產品和服務。
實時數據分析:Doris 在實時數據分析領域表現優異,適用於需要實時處理和分析大量數據的業務場景。


image

image

image


image

存算分離的架構主要有以下幾個原因:

  1. 性能優化:將存儲和計算分開,可以針對不同的需求優化各自的資源。例如,存儲可以使用高效的列式存儲格式,而計算節點則可以專註於執行複雜的查詢。

  2. 靈活性與可擴展性:存算分離允許獨立擴展存儲和計算資源。當需要處理更多數據時,可以單獨增加存儲節點;當需要更強的計算能力時,可以增加計算節點。

  3. 資源利用率提升:存算分離使得計算資源可以根據需求動態調整,避免了資源的浪費。例如,計算負載較高時,可以臨時增加計算節點,而不必同時增加存儲節點。

  4. 簡化維護:存儲和計算的分離可以簡化系統的維護和管理。可以獨立更新或優化存儲層和計算層,而不影響整體系統的運行。

  5. 支持多種數據訪問模式:存算分離能夠支持不同的數據訪問場景,如批處理和實時分析,使得數據處理更加靈活。

  6. 降低成本:通過靈活配置存儲和計算資源,企業可以根據實際需求選擇合適的硬體和服務,降低整體運營成本。

image

image


image

image

Apache Doris的MetaService設計思想主要包括以下幾個方面:

  1. 集中管理:MetaService負責管理和維護整個集群的元數據,包括資料庫、表、分區等信息,提供集中化的管理方式,確保元數據的一致性和可靠性。

  2. 高可用性:通過引入主從複製機制,MetaService能夠在主節點故障時迅速切換到備用節點,確保系統的高可用性,減少單點故障的風險。

  3. 實時更新:MetaService支持元數據的實時更新和快速讀取,能夠快速響應系統中的變化,保證數據的及時性和準確性。

  4. 分散式架構:MetaService設計為分散式架構,可以橫向擴展,以適應大規模集群的需求,提升系統的整體性能和擴展性。

  5. 高性能:通過優化元數據的存儲和訪問方式,MetaService能夠提供高效的元數據查詢性能,支持快速的元數據操作。

  6. 靈活的事務處理:支持ACID事務,確保元數據操作的原子性和一致性,避免因併發操作導致的數據不一致。

  7. 多種數據源支持:MetaService能夠與多種類型的數據源協同工作,便於集成和擴展。

image

FoundationDB 是由蘋果公司開發並維護的高性能分散式資料庫,設計用於處理大量結構化數據,具有高可用性、強一致性以及水平擴展等特性。

https://github.com/apple/foundationdb

FoundationDB在多節點的商用伺服器集群上運行,通過分散式架構實現了高可擴展性。隨著數據量的增長,可以輕鬆添加更多的伺服器來擴展存儲容量。

優化的演算法和數據結構使得FoundationDB在讀/寫操作中表現出色,特別是在寫密集型場景下,提供了高效的性能。

FoundationDB使用基於ACID事務的模型,確保了數據的一致性和完整性。無論是在讀/寫密集型工作負載下,都能保證數據在任何時候都是準確無誤的。

學習曲線較陡峭:
作為一個功能強大的分散式資料庫系統,FoundationDB的複雜性相對較高。對於初學者來說,可能需要花費一定的時間和精力來學習和掌握其使用方法和原理。
應用遷移相對困難:
由於FoundationDB不支持MySQL協議和SQL語法,對於已經使用MySQL等傳統關係型資料庫的應用程式來說,遷移到FoundationDB可能會面臨一定的挑戰。這包括數據遷移、應用程式改造等方面的工作


FoundationDB主要應用場景:

1. 金融行業
高頻交易系統:FoundationDB的高性能和低延遲特性使其成為高頻交易系統的理想選擇,能夠確保交易數據的實時性和準確性。
風險控制系統:在風險管理中,FoundationDB的強一致性和事務支持保證了數據的可靠性和一致性,有助於金融機構及時識別和控制風險。
2. 物聯網(IoT)
實時數據處理:物聯網平臺需要處理來自各種設備的實時數據流,FoundationDB的分散式架構和高效讀寫性能能夠滿足這一需求,提供可靠的數據存儲和查詢服務。
設備狀態監控:通過FoundationDB,物聯網平臺可以實時監控設備的狀態,確保設備的正常運行和及時維護。
3. 電子商務
高併發訂單處理:在電子商務平臺中,FoundationDB能夠支持高併發的訂單處理,確保在促銷活動或節假日等高峰期也能保持系統的穩定運行。
庫存管理:通過FoundationDB,電子商務平臺可以實時更新庫存信息,避免超賣或庫存積壓等問題。
4. 游戲行業
實時多人線上游戲:FoundationDB的低延遲和高併發特性使其成為實時多人線上游戲的首選資料庫,能夠確保游戲過程中的流暢性和穩定性。
游戲數據分析:游戲公司可以利用FoundationDB存儲和分析玩家的游戲數據,以優化游戲體驗和制定營銷策略。
5. 大數據分析
數據預處理和存儲:FoundationDB可以用於預處理和存儲大量的原始數據,為後續的數據分析任務提供可靠的數據源。
與大數據框架結合:FoundationDB可以與Hadoop、Spark等大數據框架結合使用,提供高性能的數據存儲和查詢服務,加速數據分析過程。
6. 雲服務提供商
構建可擴展的雲基礎架構:雲服務提供商可以利用FoundationDB構建可擴展、可靠的雲基礎架構服務,滿足不同用戶的存儲需求。
彈性伸縮:隨著數據量的增長,雲服務提供商可以輕鬆添加更多的伺服器來擴展FoundationDB的存儲容量,確保服務的連續性和穩定性。
7. 實時應用
線上游戲、流媒體服務等:這些應用需要快速響應和頻繁更新的數據操作,FoundationDB的高性能和低延遲特性能夠滿足這些需求。

FoundationDB架構圖

image


image


image


image

image

image

日誌存儲與分析的經典場景

Apache Doris在日誌存儲與分析領域的實踐指南:

image

  1. 整體架構
    • 日誌採集和預處理:通過HTTP APIs,多種日誌採集工具如Logstash、Filebeat等將日誌數據寫入Apache Doris。
    • 日誌存儲和分析引擎:Apache Doris提供高性能、低成本的統一日誌存儲,並通過SQL介面提供豐富的檢索分析能力。
    • 日誌分析和告警界面:支持通過標準SQL介面查詢Apache Doris,提供簡單易用的界面,如Grafana、Superset等。
  2. 特點與優勢
    • 高吞吐、低延遲:支持每天百TB級、GB/s級日誌數據持續穩定寫入,延遲保持在1s以內。
    • 低成本存儲:支持PB級海量存儲,相比Elasticsearch節省60%到80%的存儲成本,冷數據存儲到S3/HDFS可再降50%成本。
    • 高性能檢索分析:支持倒排索引和全文檢索,常見查詢秒級響應。
    • 開放易用生態:上游對接Logstash、Filebeat等,下游對接Grafana、Superset等,相容MySQL協議和語法。
  3. 高性能、低成本實現
    • 寫入吞吐提升:利用SIMD等CPU向量化指令提升JSON數據解析速度和索引構建性能,寫入性能是Elasticsearch的3~5倍。
    • 存儲成本降低:去掉正排索引,採用列式存儲和Zstandard壓縮演算法,壓縮比高達5~10倍,冷熱分層功能進一步降低存儲成本。
    • 查詢性能提升:簡化全文檢索流程,針對日誌場景常見查詢做專門優化,如TopN動態剪枝。
  4. 分析能力強
    • 標準SQL支持:相容MySQL協議和語法,支持檢索、聚合、多表JOIN等多種數據分析能力。
    • Flexible Schema:支持動態欄位增減和索引調整,適應日誌數據的迭代變化。


image

image

image

image

新架構移除Kafka,ODS層直接到Doris

image

image

image

image

image

image

image

Apache Doris開源項目的目錄結構通常包括以下主要部分:

1. be/ (Backend)

存放後端代碼,包括存儲引擎、查詢處理等核心功能。 包括數據解析、執行計劃、存儲格式等模塊。

2. fe/ (Frontend)

包含前端服務的代碼,負責用戶介面和SQL解析。 處理用戶請求、SQL編譯和查詢優化。

3. docs/

包含項目的文檔,包括用戶手冊、開髮指南和API文檔。

4. tests/

包含單元測試和集成測試的代碼,確保代碼質量。 分為不同的測試模塊,便於管理和擴展。

5. tools/

存放各種工具和腳本,用於構建、部署和管理Doris。 包括數據導入導出工具、監控工具等。

6. conf/

包含配置文件和示例,幫助用戶進行系統配置。

7. examples/

提供示例代碼和用例,幫助用戶快速上手使用Doris。



結論 

      Apache Doris憑藉其高性能、易用性和實時分析能力,成為多種數據分析場景的理想選擇。無論是在商業智能、實時數據分析還是數據集成方面,Doris都能提供強大的支持,為企業決策提供數據驅動的洞察。




今天先到這兒,希望對AIGC,雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管理,信息安全,團隊建設 有參考作用 , 您可能感興趣的文章:
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟體工程的迷思
企業項目化管理介紹
軟體項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共用
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網資料庫架構設計思路
IT基礎架構規劃方案一(網路系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變

如有想瞭解更多軟體設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關註我的微信訂閱號:

image_thumb2_thumb_thumb_thumb_thumb[2]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 該文章也同時發佈在我的獨立博客中-Petter Liu Blog。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、Docker 基本概念 什麼是 Docker? Docker 是一個開源的容器化平臺,允許開發者封裝他們的應用程式及其所有依賴項到一個標準化的單元中,這個單元被稱為“容器”。容器可以在任何支持 Docker 的環境中運行,從而確保應用程式的可移植性和一致性。 Docker 的優勢 一致性和可移植 ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是i.MXRT1050在GPIO上增加RC延時電路後導致邊沿中斷誤觸發問題探析。 前段時間有一個 RT1052 客戶反饋了一個有趣的問題,他們設計得是一個帶 LCD 屏交互的應用,應用以官方 SDK 里的 lvgl_demo_widget ...
  • 家裡的機頂盒淘汰下來,博主想要物盡其用,看看是否能將其改造為一臺Linux"開發機",為其安裝Ubuntu系統,故開始倒騰 ...
  • 寫在前面 本隨筆是非常菜的菜雞寫的。如有問題請及時提出。 可以聯繫:[email protected] GitHhub:https://github.com/WindDevil (目前啥也沒有 本節重點 主要是對 任務 的概念進行進一步擴展和延伸:形成 任務運行狀態:任務從開始到結束執行過程中所處的 ...
  • 第十八章 machine.Timer類實驗 1)實驗平臺:正點原子DNK210開發板 2)章節摘自【正點原子】DNK210使用指南 - CanMV版 V1.0 3)購買鏈接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套實驗源碼+手冊+ ...
  • 導讀 還是要先看官方手冊. 學過DMA的同志可能比較好理解,一句話, 釋放CPU匯流排 : 如果把應用程式執行的整個過程進行進一步分析,可以看到,當程式訪問 I/O 外設或睡眠時,其實是不需要占用處理器的,於是我們可以把應用程式在不同時間段的執行過程分為兩類,占用處理器執行有效任務的計算階段和不必占用 ...
  • 最近在Mac上想要遠程一臺Linux伺服器,結果不知怎麼的就不能使用以前的ssh登錄了 iot@ios-iMac ~ % ssh [email protected] Unable to negotiate with 192.168.1.230 port 22: no matching host k ...
  • 文件上傳到伺服器先 一般傳到伺服器目錄 mkdir /usr/local/install_package 資料庫 版本:Postgresql 9.5.20 檢查依賴環境 gcc-c++環境,有日誌列印就是有安裝,新伺服器一般都只有gcc沒有g++ gcc -v g++ -v rpm -qa | gr ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...