presto使用及介紹

什麼是presto

presto是一個開源的分佈式的查詢引擎,基於內存,它本身不接入數據,可以連接多種數據源,例如 Hive ,Mysql,Kafka,MongeDB等,一條Presto查詢可以將多個數據源進行合併查詢。
preto適合OLAP,而非OLTP,所以不要將preto當成數據庫來使用。

presto優勢

低延遲,高併發,純內存計算引擎,查詢效率是hive的數十倍

presto查詢速度規模

數G到數P規模

presto數據模型

分爲Catalog,Schema,Table三層

Catalog: 數據源,例如是Hive,還是Mysql等等
Schema: 庫
Table: 表

presto架構

preso是一個Master-Slave架構,由一個Coordinator節點,一個Disovery Server節點及多個Worker節點組成
Coordinator:負責query解析和分發,work管理,meta管理
Disovery Server: 節點心跳,默認內嵌於Coordinator中,於Coordinator共享一臺機器
Worker:計算節點,收到分發的task任務後,就會去對應的數據源取數

簡單流程

Worker節點啓動後向Discovery Server服務註冊,Coordinator從Disovery Server獲得正常工作的Worker節點,

presto 接入方式

使用Prosot的方式有多種: presto-cli,jdbc,http等等

以presto-cli爲例接入hive數據源:

./presto-cli.jar --server presto.xxx.com:9200 --catalog hive --schema xxx 就可以進入presto終端界面

preto缺點

容錯能力差: 當一個worker節點掛掉或者其他原因導致該worker節點上的查詢失敗的時候,整個query也會失敗
內存限制:目前版本presto基於純內存計算,內存不夠也會失敗,不會dump到磁盤上
並行查詢:因所有的task都是並行計算,一個很慢會導致整個都很慢
併發限制: 因全內存操作,會導致同時處理的任務有限

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章