Kylin 与 Spark SQL相比,有哪些差异和优势?

ebay 李扬

李扬 - Apache Kylin committer & PMC member, Sr. Architect of eBay CCOE

赞同来自: buybuybuy 木舟 apostate4

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预处理会大幅减小在线数据规模,对于超大规模数据更有优势。   [1] https://en.wikipedia.org/wiki/Massively_parallel_(computing) [2] https://en.wikipedia.org/wiki/MOLAP [3] https://en.wikipedia.org/wiki/OLAP_cube

colincheng - 大数据工程师@易宝支付

赞同来自: xsqrenda

Kylin作为YARN资源管理器一部分可以在Apache Hadoop的最新版本上获得。可能会慢一点,但比内存选项或那些不需要MapReduce处理的更具扩展性

要回复问题请先登录注册