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

執行引擎

本文為您介紹Hologres的執行引擎以及內部的各組件。

執行引擎優勢

Hologres的執行引擎(主要以HQE為主)是自研的執行引擎,通過與大數據領域最新技術結合,實現了對各種查詢類型的高性能處理,主要具有如下優勢。
  • 分布式執行

    執行引擎是一個和存儲計算分離架構配合的分布式執行模型。執行計劃由異步算子組成的執行圖DAG(有向無環圖)表示,可以表達各種復雜查詢,并且完美適配Hologres的數據存儲模型,方便對接查詢優化器,利用各種查詢優化技術。

  • 全異步執行

    端到端的全異步處理框架,可以避免高并發系統的瓶頸,充分利用資源,并且最大可能地避免存儲計算分離系統帶來的讀數據延遲的影響。

  • 向量化和列處理

    算子內部處理數據時最大可能地使用向量化執行,與存儲引擎深度集成,通過靈活的執行模型,充分利用各種索引,最大化地延遲向量物化和延遲計算,避免不必要的讀數據和計算。

  • 自適應增量處理

    對常見實時數據應用查詢模式進行自適應增量處理。

  • 特定查詢深度優化

    對一些特定查詢模式的獨特優化。

更多技術原理請參見Hologres執行引擎揭秘

Query執行過程

當客戶端下發一個Query后,在執行引擎中實際上會有多個worker節點,以其中的一個worker節點為例,執行過程如下圖所示。Query執行過程
當客戶端發起一個SQL后,執行過程如下。
  1. Frontend(FE)節點對SQL進行解析和認證,并分發至執行引擎(Query Engine)的不同執行模塊。
  2. 執行引擎(Query Engine)會根據SQL的特征走不同的執行路徑。
    • 如果是點查/點寫的場景,會跳過優化器(Query Optimizer,QO),直接分發至后端獲取數據,減少數據傳送鏈路,從而實現更優的性能。整個執行鏈路也叫Fixed Plan,點查(與HBase的KV查詢)、點寫場景會直接走Fixed Plan。
    • 如果是OLAP查詢和寫入場景:首先會由優化器(Query Optimizer,QO)對SQL進行解析,生成執行計劃,在執行計劃中會預估出算子執行Cost、統計信息、空間裁剪等。QO會通過生成的執行計劃,決定使用HQE、PQE、SQE或者Hive QE對算子進行真正的計算。
      HQE、PQE、SQE的對比介紹如下。
      • HQE(Hologres Query Engine)

        Hologres自研執行引擎,采用可擴展的MPP架構全并行計算,向量化算子發揮CPU極致算力,從而實現極致的查詢性能。(QE主要由HQE組成)。

      • PQE(Postgres Query Engine)

        用于兼容Postgres提供擴展能力,支持PG生態的各種擴展組件,如PostGIS,UDF(PL/JAVA,PL/SQL,PL/Python)等。部分HQE還沒有支持的函數和算子,會通過PQE執行,每個版本都在持續優化中,最終目標是去掉PQE。

      • SQE(Seahawks Query Engine)

        無縫對接MaxCompute(ODPS)的執行引擎,實現對MaxCompute的本地訪問,無需遷移和導入數據,就可以高性能和全兼容的訪問各種MaxCompute文件格式,以及Hash/Range clustered table等復雜表,實現對PB級離線數據的交互式分析,技術原理請參見Hologres加速查詢MaxCompute技術揭秘

  3. 執行引擎決定正確的執行計劃,然后會通過存儲引擎(Storage Engine,SE)進行數據獲取,最后對每個Shard上的數據進行合并,返回至客戶端。