最近在研究flink,发现较新版的flink支持sql,这下好了,我用spark两年了,对用法和性能算是踩过一些坑了。

听说flink挺快的,那么flinkSQL和sparkSQL到底哪个快呢?

想必很多人也想知道吧,那就拿数据说话(虽然不是自己做的基线测试,但好歹也找了好久)

下图是hive, spark, flink的sql执行速度对比: 

FlinkSQL 和SparkSQL flinksql和sparksql性能_flink

 

 下图是平均的

FlinkSQL 和SparkSQL flinksql和sparksql性能_SQL_02

FlinkSQL 和SparkSQL flinksql和sparksql性能_spark_03

FlinkSQL 和SparkSQL flinksql和sparksql性能_flink_04

FlinkSQL 和SparkSQL flinksql和sparksql性能_flink_05

 

 

FlinkSQL 和SparkSQL flinksql和sparksql性能_spark_06

FlinkSQL 和SparkSQL flinksql和sparksql性能_flink_07

 

综上所述,flinkSQL和sparkSQL的性能只差一点点,flink是spark的最强大的竞争者。

个人认为flink潜力很大。

第一,flink主要是java写的代码,相比scala写的spark而言,flink的内存溢出问题更容易定位和优化。

第二,flink是在idea环境开发的,而我主要就是用这个开发环境,非常方便。

本人用sparkSQL两年来,数据倾斜,内存溢出问题见过太多,相当坑爹,而官方源码几乎很难打包编译调试。

第三、flink更专业,spark就是综合rdd,sql,图计算,流式计算的等几个模块综合体,长远来看不利于开源社区演进

 

-------------------------
技术不在于多么高超先进巧妙,而在于要有现实价值!!!