总体评价

本书前几个章节更像是官方文档的导读,中间几个章节粗略的介绍了一下 Flink 高阶 API 的使用,但考虑到 Flink 版本更新较快,因此最好还是根据文档学习 API,最后一章通过两个 demo 程序帮助更好的理解 Flink 的使用场景,重要的是学习如何在实际工作场景中去使用 Flink 解决实际问题。 如果沉得下心看官方文档,还是推荐看官方文档。反之,本书也不失为一本 Flink 的入门首选。

阅读时间:2021/04/16 - 2021/05/06

读书笔记

第1章 Flink概述

  • 高吞吐表示单位时间内可以处理的数据量很大,低延迟表示数据产生以后可以在很短的时间内对其进行处理,也就是Flink可以支持快速地处理海量数据。

实时计算框架的选择也要看实际场景,脱离了场景、需求做技术选型,完全就是为了技术而用技术。

第2章 Flink快速入门

本章内容大段的粘贴官方文档的 HelloWorld 代码,看的真的是尴尬极了。。

第3章 Flink的安装和部署

本章介绍了下Flink集群的部署,有空可以尝试下,不过企业中大部分都是中间件、运维去维护,本章对开发人员帮助不大。

第4章 Flink常用API详解

本章主要是介绍Flink常用的一些API的使用,其中Table API和Flink SQL的特性让其更加易用。 目前Flink最新已经是1.12.2版本,估计有些API已经变更,需要多实践,才能更好的掌握。

第5章 Flink高级功能的使用

  • 广播变量存在于每个节点的内存中,它的数据量不能太大,因为广播出去的数据常驻内存,除非程序执行结束。广播变量在初始化广播以后不支持修改,这样才能保证每个节点的数据都是一致的。如果多个算子需要使用同一份数据集,那么需要在对应的多个算子后面分别注册广播变量。广播变量只能在Flink批处理程序中才可以使用。

本章主要是粗略的介绍了Flink的一些高级功能,同时给出demo示例代码供参考。

本章主要介绍了Flink如何利用State进行容错,使用CheckPoint和SavePoint可以对Flink状态进行自动/手动的持久化保存,同时给出一些示例代码。

第7章 Flink窗口详解

本章主要介绍的是Flink的窗口函数,窗口分为滚动窗口和滑动窗口,窗口是流处理转变为批处理的机制,一般用在计算一段时间内TopN操作。

Flink中Time分为事件发生时间、数据进入Flink的时间、数据被处理的时间,就是计算存在数据乱序的问题,WaterMark的作用就是为了处理乱序数据的问题。但是WaterMark这一块内容需要配合实践才可以更好的理解。

第9章 Flink并行度详解

本章简单的介绍了下Flink的并行度功能,可以通过多种配置方式实现,主要为了提升任务的执行效率。

本章学习了Flink的Kafka Connector,针对Exactly-once 特性不同版本有不同的支持,目前Flink和kafka版本升级比较快,使用过程还是要多对照文档。

第11章 Flink实战项目开发

11.1 实时数据清洗(实时ETL)

本节算是大致提供了一些实时ETL的实现思路,实际生产环境数据链路、关联程度都会更复杂,需要各种大数据技术搭配使用。

11.2 实时数据报表

本节使用场景更契合实时数据大屏,类似双十一阿里销售额的大屏,可以做个小demo玩一下~