日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Doris概述

Apache Doris是一個高性能、實時的分析型數據庫,能夠較好的滿足報表分析、即席查詢、數據湖聯邦查詢加速等使用場景。本文為您介紹Apache Doris。

背景信息

關于更多Apache Doris信息,詳情請參見Doris介紹

使用場景

數據源經過各種數據集成和加工處理后,通常會入庫到實時數倉Doris和離線湖倉(Hive、Iceberg和Hudi中),如下圖所示。Apache Doris

Apache Doris被廣泛應用在以下場景中。

  • 報表分析

    • 實時看板(Dashboards)。

    • 面向企業內部分析師和管理者的報表。

    • 面向高并發報表分析(Customer Facing Analytics)。比如面向網站主的站點分析、面向廣告主的廣告報表,并發通常要求成千上萬的QPS,查詢延時要求毫秒級響應。

  • 即席查詢(Ad-hoc Query):面向分析師的自助分析,查詢模式不固定,要求較高的吞吐。

  • 統一數倉構建:一個平臺滿足統一的數據倉庫建設需求,簡化繁瑣的大數據軟件棧。基于Doris構建的統一數倉,替換了原來由Spark、Hive、Kudu、Hbase、Phoenix組成的舊架構,架構大大簡化。

  • 數據湖聯邦查詢:通過外表的方式聯邦分析位于Hive、Iceberg、Hudi中的數據,在避免數據拷貝的前提下,查詢性能大幅提升。

技術概述

Doris整體架構如下圖所示。Doris架構Doris架構非常簡單,只有兩類進程:

  • Frontend(FE),主要負責客戶請求的接入、查詢解析規劃、元數據的管理、節點管理相關工作。

  • Backend(BE),主要負責數據存儲、查詢計劃的執行。

這兩類進程都是可以橫向擴展的,單集群可以支持到數百臺機器,數十 PB的存儲容量。并且這兩類進程通過一致性協議來保證服務的高可用和數據的高可靠,這種高度集成的架構設計極大的降低了一款分布式系統的運維成本。

從以下五個方面介紹Doris技術:

  • 在使用接口方面,Doris采用MySQL協議,高度兼容MySQL語法,支持標準SQL,您可以通過各類客戶端工具來訪問Doris,并支持與BI工具的無縫對接。

  • 在存儲引擎方面,Doris采用列式存儲,按列進行數據的編碼壓縮和讀取,能夠實現極高的壓縮比,同時減少大量非相關數據的掃描,從而更加有效利用IO和CPU資源。

    Doris也支持比較豐富的索引結構,來減少數據的掃描:

    • Sorted Compound Key Index:可以最多指定三個列組成復合排序鍵,通過該索引,能夠有效進行數據裁剪,從而能夠更好支持高并發的報表場景。

    • Z-order Index:使用Z-order索引,可以高效對數據模型中的任意字段組合進行范圍查詢。

    • Min/Max:有效過濾數值類型的等值和范圍查詢。

    • Bloom Filter:對高基數列的等值過濾裁剪非常有效。

    • Invert Index:能夠對任意字段實現快速檢索。

  • 在存儲模型方面,Doris支持多種存儲模型,針對不同的場景做了針對性的優化:

    • Aggregate Key模型:相同Key的Value列合并,通過提前聚合大幅提升性能。

    • Unique Key模型:Key唯一,相同Key的數據覆蓋,實現行級別數據更新。

    • Duplicate Key模型:明細數據模型,滿足事實表的明細存儲。

    Doris也支持強一致的物化視圖,物化視圖的更新和選擇都在系統內自動進行,不需要您手動選擇,從而大幅減少了物化視圖維護的代價。

  • 在查詢引擎方面,Doris采用MPP的模型,節點間和節點內都并行執行,也支持多個大表的分布Shuffle Join,從而能夠更好應對復雜查詢,查詢引擎如下圖所示。Query

    Doris查詢引擎是向量化的查詢引擎,所有的內存結構能夠按照列式布局,能夠達到大幅減少虛函數調用、提升Cache命中率,高效利用SIMD指令的效果。在寬表聚合場景下性能是非向量化引擎的5-10倍。

  • 在優化器方面Doris使用CBO和RBO結合的優化策略,RBO支持常量折疊、子查詢改寫、謂詞下推等,CBO支持Join Reorder。目前CBO還在持續優化中,主要集中在更加精準的統計信息收集和推導,更加精準的代價模型預估等方面。

Doris采用了Adaptive Query Execution技術,可以根據Runtime Statistics來動態調整執行計劃,比如通過Runtime Filter技術能夠在運行時生成Filter推到Probe側,并且能夠將Filter自動穿透到Probe側最底層的Scan節點,從而大幅減少Probe的數據量,加速Join性能,流程圖如下所示。AQEDoris的Runtime Filter支持In、Min、Max和Bloom Filter。

說明

本文內容和圖片來源于Doris介紹