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

PetterLiu發表於2024-08-12

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。

相關文章