Presto連接數據源的性能問題
老師你好,我想請問一些Presto連接數據源的問題。
我這里嘗試了presto連接PG數據庫,做了簡單的聚合嘗試,比在PG中直接查詢是慢的。
想請教一下,
是否需要數據源為Hive 或類似列存儲格式的等特殊類型的數據源格式,presto才具有高性能的特點
測試pg和presto兩臺機器各自獨立,采用公網IP訪問,是否需要部署同一臺測試,感覺如果jdbc協議走tcp的話,應該相差不大
presto是否會緩存數據源的數據在內存中,第二次查詢會更快?
測試數據為單表千萬級數據,presto的單機是否存在性能瓶頸,8cores 28g ram,感覺影響不大
目前在摸索一些數據分析類的大數據工具,使用過Clickhouse,不知道老師是否了解
2020-04-10
首先需要聲明一點,presto本身是查詢引擎,對于hive數據源的查詢流程為讀取metastore,然后讀取hdfs上文件。 對于其他jdbc的數據源的讀取流程為生成執行計劃,下推執行計劃,jdbc數據源執行查詢,在presto端再進行聚合。
所以依次回復你的問題:
1. presto所具備的高性能,快速是相對的,在數據量較大,進行分布式查詢,進行多個數據源的聚合查詢等等操作
2. 對于presto和pg的測試,我們可以簡單這樣理解,你通過presto對pg做簡單查詢=presto生成查詢計劃+pg查詢自身,完全沒有對比性
3. presto不會緩存數據
4. 單機presto發揮不出mpp架構的優勢,只適合測試使用
5. clickhouse我的了解也不多,和presto一樣是mpp架構,ck對于數據存儲、索引、查詢等等方面都進行了優化。而presto對于數據存儲這塊主要是依賴列式存儲格式orc以及parquet。
希望能夠對你有所幫助,有問題隨時溝通~