Kylin 與 Spark SQL相比,有哪些差異和優勢


SparkSQL本質上是基於DAG模型的MPP。而Kylin核心是Cube(多維立方體)。關於MPP和Cube預處理的差異,重復如下:

>
MPP [1]
的基本思路是增加機器來並行計算,從而提高查詢速度。比如掃描8億記錄一台機器要處理1小時,但如果用100台機器來並行處理,就只要一分鍾不到。再配合
列式存儲和一些索引,查詢可以更快返回。要注意這里在線運算量並沒有減小,8億條記錄還是要掃描一次,只是參與的機器多了,所以快了。

>
MOLAP Cube [2][3]
是一種預計算技術,基本思路是預先對數據作多維索引,查詢時只掃描索引而不訪問原始數據從而提速。8億記錄的一個3維索引可能只有幾萬條記錄,規模大大縮
小,所以在線計算量大大減小,查詢可以很快。索引表也可以采用列存儲,並行掃描等MPP常用的技術。但多維索引要對多維度的各種組合作預計算,離線建索引
需要較大計算量和時間,最終索引也會占用較多磁盤空間。


了有無預處理的差異外,SparkSQL與Kylin對數據集大小的偏好也不一樣。如果數據可以基本放入內存,Spark的內存緩存會讓SparkSQL
有好的表現。但對於超大規模的數據集,Spark也不能避免頻繁的磁盤讀寫,性能會大幅下降。反過來Kylin的Cube預處理會大幅減小在線數據規模,
對於超大規模數據更有優勢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM