Presto入门介绍
1、presto是什么
Presto是由Facebook開發的一個分布式SQL查詢引擎,是專門設計為用來專門進行大數據實時查詢計算而設計和開發的產品。 它是為了解決Hive的MapReduce模型太慢以及不能通過BI或Dashboards直接展現HDFS數據等問題。
2、presto特點
presto是基于java開發的,對于大部分開發者和使用者而言,presto容易學習并對特定的場景進行二次開發和性能優化等。多數據源、支持SQL、擴展性強、高性能,流水線模式
多數據源:目前版本支持20多種數據源,幾乎能覆蓋所有常見情況,Elasticsearch 、Hive 、JMX 、Kafka Kudu 、Local File、Memory 、MongoDB 、MySQL 、Redis等等
支持SQL:完成支持ANSI SQL,提供SQL shell
擴展性:支持開發自己的特定數據源的connector
高性能:presto基于內存計算,在絕大多數情況下,presto的查詢性能是hive的10倍以上,完全能實現交互式,實時查詢
流水線:presto是基于PipeLine設計的,在進行大量設計處理過程中,終端不需要等待所有的數據計算完畢之后才能看到結果,計算一部分就可以看部分結果
3、presto的基本概念和模型
3.1 服務進程
presto集群中有兩種進程,Coordinator服務進程和worker服務進程。coordinator主要作用是接收查詢請求,解析查詢語句,生成查詢執行計劃,任務調度和worker管理。worker服務進程執行被分解的查詢執行任務:task
3.1.1 Coordinator
Coordinator 服務進程部署在集群中的單獨節點之中,是整個presto集群的管理節點,主要作用是接收查詢請求,解析查詢語句,生成查詢執行計劃Stage和Task并對生成的Task進行任務調度,和worker管理。Coordinator進程是整個Presto集群的master進程,需要與worker進行通信,獲取最新的worker信息,有需要和client通信,接收查詢請求。Coordinator提供RESTful服務來完成這些工作。
3.1.2 Worker
presto集群中存在一個Coordinator和多個Worker節點,每個Worker節點上都會存在一個worker服務進程,主要進行數據的處理以及Task的執行。worker服務進程每隔一定的時間會發送心跳包給Coordinator。Coordinator接收到查詢請求后會從當前存活的worker中選擇合適的節點運行task。
3.2 presto模型
3.2.1 Connector
presto就是通過Connector來訪問不同的數據源的,相當于訪問不同數據源的驅動程序,每種connector都實現了presto的標準SPI接口,因此只要實現了標準SPI接口就可以制定特殊的Connector來訪問數據源。
3.2.2 Catalog
presto中Catalog類似于mysql中的一個數據庫實例,Schema類似于mysql當中的一個database。如用presto去連接一個hive中的一個庫
presto --server ip:port --catalog hive --schema xxx 這樣就可以訪問hive的中的xxx庫
3.2.3 Schema
presto中的schema就相當于mysql中的一個具體的database
3.2.4 Table
presto中的table和mysql中含義一樣
4、presto 整體架構
presto是一個完全基于內存的分布式查詢執行引擎,presto中的服務有兩種,coordinator和worker,所以presto采用的是Master-Slave的拓撲結構,同時還需要客戶端
5、入門使用
presto完全支持SQL,所以對于會SQL的人員是特別容易上手的。首先確定數據源,然后確定連接方式,這里主要說cli的方式
presto --server ip:port --catalog hive --user xxxx
--server 是presto服務地址;
--catalog 是默認使用的數據源;
--user 是用戶名;
進入終端后: 查看數據源: show catalogs; 查看數據庫實例:show schemas;
resto的SQL語法和mysql以及hive都有細微的差別,如presto是用英文的雙引號代表字段,單引號代表字符,所以遇到有特殊字符的字段需要用雙引號,presto的時間函數和hive也有區別,join等連接方式也存在區別。對于表存在分區的是一定要帶上分區字段做為條件
presto支持自定義函數,Scalar、Aggregation,可以支持能為復雜的計算
總結
以上是生活随笔為你收集整理的Presto入门介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone 13 四款机型怎么选详细对
- 下一篇: 如何通过苹果官方折抵换购活动换购 iPh