交互式計算引擎MOLAP篇


              交互式計算引擎MOLAP篇

 

摘自:《大數據技術體系詳解:原理、架構與實踐》

 

 

  MOLAP是一種通過預計算cube方式加速查詢的OLAP引擎,它的核心思想是“空間換時間”,典型代表包括Druid和Kylin。

 

一.Druid簡介

  Druid是一個用於大數據實時查詢和分析的高容錯,高性能開源分布式OLADP系統,旨在快速處理大規模的數據,並能夠實現快速查詢和分析。

  Durid是基於列存儲的,其設計之初主要目的是存儲時間序列數據,因此數據強制按照時間分隔不同的數據段(segment),除了時間戳以外,一個數據段中還有緯度(dimension)和度量(metric)兩種類型的列。

  Durid能夠快速對數據進行過濾和聚合,它常用來給一些面向分析人員的應用提供查詢引擎。有些大規模的Druid集群每秒鍾能夠插入數十億條事件並提供上千次的查詢。

  Druid官網網站:http://druid.io/

    Druid整個架構由實時線和批處理線兩部分構成,本質上是對Lamaba架構的一種實現。如上圖所示,Druid系統主要由三個外部依賴:用於分布式協調服務的zookeeper;存儲集群數據信息和相關規則的Metadata Storage;存放備份數據的Deep Stroage。
    Druid節點類型比較多,可以從三個方面了解系統架構:
      (1)首先,從外部看,提供查詢接口的節點是Broker節點,它根據具體的情況可能會將查詢分發到實時(Real-time)節點或歷史(Historical)節點,前者存放實時數據,后者存放歷史數據;
      (2)其次,從集群內部看,負責協調數據存儲的是Coorinator節點,它讀取Metadata,通過Zookeeper通知不同的Historical節點應當載入或丟棄哪些數據段;
      (3)最后,從數據Ingest來看,可以將實時數據交給Real-time節點進行處理(real-time index),也可以直接將數據建好索引存放到Deep Storage中,然后更新Metadata(batch index),現在Druid提倡用Indexing Service來統一處理兩種數據Ingest的情況。

 

二.Kylin簡介 

    Kylin是Hadoop生態圈下的一個MOLAP系統,是ebay大數據部門從2014年開始研發的支持TB到PB級別數據量的分布式OLAP分析引擎。其特點包括:
    (1)可擴展的超快OLAP引擎;
    (2)提供ANSI-SQL接口;
    (3)交互式查詢能力;
    (4)引入MOLAP Cube的概念以加速分析過程。
    (5)支持JDBC/RESTful等訪問方式,與BI工具可無縫整合。
  Kylin的核心思想是利用空間換時間,它通過預計算,將查詢結果預先存儲到HBase上以加快數據處理效率。

  Kylin官網網站:http://kylin.apache.org/

    Kylin實現過程復用了大量開源系統,具體如上圖所示。  
    RESST Server:
      提供一些RESTful接口,例如創建cube,構建cube,刷新cube,合並cube等cube相關操作,元數據管理,用戶訪問權限,系統配置動態修改等。
    JDBC/ODBC接口:
      Kylin提供了JDBC驅動,使用JDBC接口的查詢和使用RESTful接口的查詢內部實現流程是相同的。這類接口使用Kyin能夠兼容各種可視化工具,包括tableau和mondrian等。
    Query引擎:
      Kylin使用一個開源的calcite框架實現SQL的解析,相當於SQL引擎層。
      calcite官網網站:http://calcite.apache.org/.
    Routing:
      該模塊負責將SQL生成的執行計划轉換成面向cube緩存的查詢。cube是通過預計算緩存在HBase中,這些查詢只需從HBase直接獲取結果返回即可,一般在妙計甚至毫秒級完成。
    Metadata:
      Kylin中包含大量的元數據信息,包括cube的定義,星狀模型的定義,作業的信息,作業的輸出嘻嘻,緯度的存放目錄信息等,元數據和cube都存儲在Hbase中。
    Cube構建引擎:
      負責預計算方式的構建cube,這是通過MapReduce/Spark計算生成HTable然后加載到HBase中完成的。

 

三.Druid於Kylin對比

    Druid與kylin均是MOLAP類型的查詢引擎,它們將數據按照多維度數據方式存儲,並通過索引方式加速計算。它們兩個擁有很多相同特點,但也各有自己的特色,它們的異同對比如下圖所示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM