天天看點

ROLAP場景下的互動式計算引擎Impala和Presto

應用于ROLAP場景下的互動式計算引擎Impala和Presto

具有以下特點:

1、跟Hadoop生态系統完好結合,可與Hive Metastore對接,處理hive中的表,可直接處理存儲在HDFS和Hbase中的資料。

2、計算與存儲分析:僅僅是查詢引擎,不提供資料存儲服務。

3、MPP架構,采用經典的MPP架構,具有良好的擴充性,能夠應對TB甚至PB級資料互動式查詢需求;

4、嵌套式資料存儲,支援常見的列式存儲格式,比如ORC和Parquet。

Impala:由Cludera公司開發,充分結合傳統資料庫與大資料系統Hadoop的優勢,構造一個全新的、支援SQL與多租戶、并具備良好的靈活性和擴充性的高性能查詢引擎。

一、特征:

1、Impala完全抛棄了MapReduce這個不太适合做SQL查詢的範式,借鑒了MPP并行資料庫思想,采用了全服務程序的設計架構。

2、采用全記憶體實作,不需要把中間結果寫入磁盤,省掉大量的I/O開銷。

3、充分利用本地讀,盡可能的将資料和計算配置設定到同一台機器上。

4、用C++實作,做了很多針對底層的優化,eg:SSE指令。

二、基本架構:

1、Catalogd:元資訊管理服務

2、Statestored:狀态管理伺服器

3、Impalad:同時承擔協調者和執行這雙重角色。

三、通路方式

通過JDBC/ODBC通路,通過Kerberos或LADP進行認證。

Presto:由Facebook公司開源,能夠處理TB甚至PB級别的資料量,由于Presto能與Hive進行無縫內建,因而成為主流的OLAP引擎。

一、基本架構:

是一個Master-Slave架構,由一個Coordinator服務,一個Discovery Server服務,多個Worker服務組成。

1、Coordinator:協調者,接收用戶端查詢請求(SQL)并對齊進行詞法分析,文法分析生成邏輯查詢計劃及實體查詢計劃,将各個任務排程到各位worker上執行,并在worker傳回結果後對其進一步彙總。在一個Presto叢集中可同時存在多個Coordinator防止單點故障。

2、Discovery Server:服務發現元件,各個Worker啟動時會定期向Discovery Server注冊,并将狀态資訊彙報給Discovery Server

3、Worker:任務執行者。

Presto是一個分布式查詢引擎,并不提供資料存儲功能,為此,Presto采用了插件化設計思路,支撐多種資料樣,包括Hive、HDFS、Mysql、Cassanddra、Hbase和Redis等。

二、通路方式

Presto是插件式架構,通過連接配接器接入外部資料源,為了區分各個資料源中的資料,它在資料庫之上引入了一層命名空間:catalog,前面提到的Hive、Cassandra和Mysql等在Presto中均以catalog存在。不同的catalog中可以有多個資料庫,每個資料庫中進一步可以存在多張表。

差別于多元度資料組織的MOLAP類型的OLAP查詢引擎Druid和Kylin。

ROLAP場景下的互動式計算引擎Impala和Presto

繼續閱讀