presto、sparksql、druid、kylin、clickhouse說明

presto和sparksql只是計算引擎,不做數據存儲

相對於sparksql,presto是純內存計算,儘量使用整個集羣中的內存,sparksql依賴於分配的executor數量,在executor內存不足時會落盤;

相對於sparksql,presto啓動執行更迅速,sparksql要依賴yarn調度資源;

相對於sparksql,presto帶有分頁功能,在分頁查詢時更有優勢;

相對於presto,sparksql運行更穩定,presto會經常出現oom;

druid、kylin、clickhouse都是存儲加計算引擎

druid和kylin更適合預聚合場景,其中druid是時序數據庫,對所有維度列枚舉值建立bitmap索引,所以維度枚舉值如果較多的話,數據膨脹會比較厲害;kylin是通過MapReduce任務枚舉維度組合,每一種維度組合對應一張hbase表,維度組合值爲主鍵,通過hbase rowkey實現快速訪問,因爲實現要指定維度組合情況,所以kylin適合業務場景比較固定的情況,這也是hbase的特點,通過單一的key查詢數據。

clickhouse可以對數據分區,建立主鍵,對命中主鍵的明細數據聚合查詢較快,這種對於一些維度枚舉值較多的數據比較適合,沒有數據膨脹

結論

druid和kylin主要針對預聚合場景,因此查詢較快,qps較高,但是因爲數據做了聚合,無法查看明細數據,不支持join;clickhouse、presto、sparksql主要是掃描原始數據,實時聚合,因此查詢較慢,qps較低,但是clickhouse有主鍵索引,數據都存在本地,因此查詢速度明顯快於presto和sparksql,但是presto、sparksql join性能更好

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