欢迎关注公众号——《数据三分钟》

一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人。还有面试指导和内推机会。

        从这一期开始,将分享一个新的系列——讲讲Flink菜鸟教程。Flink作为大数据实时计算引擎,受到了越来越多的关注和使用,它的高吞吐、低延迟、以及支持ExactlyOnce语义的优良特性,进一步扩大了自己的粉丝圈。随着社区的发展以及阿里巴巴对Blink(Flink的阿里巴巴版)的开源,Flink SQL的功能也逐步强大,越来越多的开发者已经选择从DataStream API和DataSet API转向了更为简单的SQL API,那么为什么要转向SQL API?主要有这几个原因:

       第一就是好懂啊!SQL是一门真正的跨行业语言,而且学习成本较低,这里请允许我隆重介绍一下SQL发明人——埃德加·弗兰克·科德(英文:Edgar Frank "Ted" Codd)(1923年8月23日-2003年4月18日)是一位英国计算机科学家。他为关系型数据库理论做出了奠基性的贡献。他在IBM工作期间,首创了关系模型理论。他一生中为计算机科学做出了很多有价值的贡献,而关系模型,作为一个在数据库管理方面非常具有影响力的基础理论,仍然被认为是他最引人瞩目的成就。1981年,科德因在关系型数据库方面的贡献获得了图灵奖,图灵奖可称得上是计算机领域的诺贝尔奖了,所以把SQL作为Flink的最顶层API非常有利于开发者学习和应用。

       第二是屏蔽底层原理!说白了,你只需要告诉引擎你要干啥?你想怎样?具体的实现统统由引擎来帮你搞定,这多爽啊,要知道在大数据领域光调优就能搞死人的。通过select、group by、insert这些指令组合就可以实现业务需求,就可以上手开发实时任务,轻轻松松走上实时开发的“巅峰”。

       第三我觉得就是流批一体的大前提。因为从数据场景使用的本质上看,实时和离线是完全不同的。在Flink中,把实时数据源看作是无界数据流,而把离线数据源看作是实时数据源的一种特例,也就是有界数据流。但是呢,毕竟是两种天然不同的数据场景,因此Flink演化出了DataStream API和DataSet API专门for这两种情况,不过还好Flink SQL在API层面上真正统一了实时离线场景,是实现流批一体的关键所在。

       本系列的分享呢,是结合笔者自己的学习过程和开发过程,用最最通俗易懂的话来聊聊Flink的底层原理,以及怎么用Flink来构建我们自己的实时任务,系列分享的知识大图如下:

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐