易燃物汇聚 YouTube 有声书与书评
Flink原理与实践 封面

Flink原理与实践

鲁蔚征编著

7559人在读
30.8万字总字数
¥38.8定价

内容简介

本书围绕大数据流处理领域,介绍Flink DataStream API、时间和窗口、状态和检查点、Table API和SQL等知识。本书以实践为导向,使用大量真实业务场景案例来演示如何基于Flink进行流处理。本书主要面向对大数据领域感兴趣的本科生、研究生,想转行到大数据开发行业的在职人员,或有一定大数据开发经验的相关从业人员。读者最好有一定的Java或Scala编程基础,掌握计算机领域的常见技术概念。

读者书评

★★★★★

一、Flink 的本质 你可以把 Flink 想成一句话: 它不是在处理数据,而是在“维护一个不断变化的世界状态” 再讲得更狠一点: Flink = 一个持续运行的程序,它的输出永远不是最终结果,而是“当前时刻的答案” ⸻ 二、从“程序本质”来理解 Flink 你以前写程序是这样的: 输入 → 计算 → 输出 → 结束 而 Flink 是: 输入(无限流) → 更新状态 → 输出 → 永远不结束 关键差别只有一个: 👉 没有“结束”这个概念 ⸻ 三、核心机制(用人话讲透) 1. 状态(State) 你可以理解为: Flink 的“记忆” 没有状态,就只是一个 map/filter 有状态,才变成“系统” 比如: * 统计用户点击次数 * 计算订单总额 * 判断是否异常行为 本质都是: 把历史信息记住,然后参与未来计算 ⸻ 2. 事件驱动(Event Driven) Flink 不会主动跑,它是: 来一条数据 → 触发一次计算 不是定时任务,不是批处理。 👉 本质: 计算是被数据“推着走”的 ⸻ 3. 时间(Event Time) 现实世界: * 用户 10:00 下单 * 网络延迟,10:05 才到系统 如果用机器时间: 👉 数据会算错 Flink做的是: 按“事件发生时间”来算,而不是“到达时间” ⸻ 4. 一致性(Checkpoint) Flink最核心能力: 系统崩了也不会算错 怎么做到的? 👉 定期做“状态快照” 可以理解为: 游戏存档 挂了就读档继续跑 ⸻ 四、一个真正“贴近你工作”的例子 ⸻ 场景:监控 Topic 流量(你绝对熟) Kafka 里不断有数据: Topic A: 100KB/s Topic B: 200KB/s 你想做: 👉 实时统计每个 topic 的流量 ⸻ Flink 做的事情 第一步:读取 Kafka 每条消息 = 一次输入 ⸻ 第二步:更新状态 比如 Topic A: 之前流量 = 1000KB 新数据 = 50KB → 更新为 1050KB 👉 注意: 这不是“重新计算”,而是: 在旧结果上累加 ⸻ 第三步:输出结果 当前流量 = 1050KB ⸻ 第四步:Checkpoint 系统记录: 当前状态 = 1050KB 如果机器挂了: 👉 从 1050KB 继续 不会从 0 开始 ⸻ 五、把所有知识“收缩成一个模型” 你可以这样记: ⸻ Flink = 三件事 1. 数据流(Stream) 永远在来的数据 ⸻ 2. 状态(State) 系统记住的东西 ⸻ 3. 函数(Operator) 怎么处理数据 ⸻ 合起来就是: 新数据 + 旧状态 → 新状态 → 输出 ⸻ 六、最关键的“认知升级” 很多人学 Flink 卡住,是因为还在用“数据库思维”: * 查一次 * 算一次 * 出结果 但 Flink 是: 结果一直在变化 ⸻ 你要换成这种思维: 👉 不是问“结果是多少” 👉 而是问“现在这一刻结果是多少” ⸻ 七、终极总结(你可以直接背) ⸻ Flink 本质上是一个持续运行的流处理系统,它不断读取数据流,通过维护状态来逐步更新计算结果。 它的核心不是一次性计算,而是在数据到达的过程中持续演进结果,并通过 checkpoint 保证系统在故障情况下仍然能够保持一致性。

★★★★★

准备学习flink的时候,初略翻了几本相关的教材,比较下来这本还是很不错的。 1. 知识点比较全,基本上在官网介绍的知识点都介绍到了。当然,入门书不可能面面俱到,很多也是点到为止,但也足够了 2. 说人话。很多翻译国外的书或者照抄官网文档的书,语言生涩,看得头大,这本书没这个问题,只要时间够,可以一口气读完 3. 由浅入深,章节组织的好,循序渐进,难点、重点从目录里面就很明显了,不用前后倒腾的看 说点不足: 1. 缺乏完整案例,章节后面有些实验作业,可惜没有讲解。如果有几个案例把知识点串起来,会更好。毕竟书的名字叫“实践”嘛 2. flink作为宣称的“批流一体”,不过“批处理”基本没涉及到,当然其它的教程也很少讲(从理论到实践基本都见不到),私下认为,这怎么能够打败spark?

★★★★★

非常好的一本flink入门书,深入浅出地介绍了flink学习的核心概念和最佳实践。在很多概念的讲解中,作者结合了很多实际的案例,并且提供了相应的代码,甚至有IntelliJ idea的操作,帮助读者更好地从理论走向实践。本书的出版时间离现在比较近,flink版本也比较新,主要是结合1.11版本来讲解,在实际应用时可操作性非常好,非常推荐有需要的朋友阅读。此外,书里提供的课后实验也很完善,甚至都可以作为flink课程的教材了。 最后吐槽一句,入门flink的时候,我最开始看的是国内flink官方的微信公众号的入门教程,结果上面的入门教程很多概念说的不清不楚,动不动蹦出个没介绍过的新名词,对于小白入门不太友好。而且教程里面的API也很老,很多API都已经废弃了。所以不建议看微信公众号上面的教程。 春节没少坐火车,在漫长的火车上闲着没事,一口气看完这本书,感觉酣畅淋漓。本以为在手机上看代码会体验很差,结果发现微信读书对代码排版还挺好的,阅读体验很好,给微信读书点个赞。

★★★★★

流处理是对批处理的有效补充。 实时数据的产生,传输,计算转换,结果存储,查询分析,发现价值

★★★★★

对新手还算友好,但是datastream api有点多,新手读起来估计会摸不着头脑,不过我觉得用到这些api的时候再回顾一遍就行

★★★★★

前面简单介绍了flink运行环境以及提交任务到执行的流程,随后大量篇幅讲了datastream的知识,如果只是想入门,看这部分datastream的知识就够用了,写得很详细。不过大部分内容都是官网文档的内容,干货较少,实际在生产环境可能遇到的问题没提及,引言里说的流批一体和数据倾斜问题也没有提出解决方法。

★★★★★

如果有spark基础,0基础入门flink,这本书非常合适,把常用操作给出了样例

★★★★★

打工人的生活:两天精通快速上手。

★★★★★

这是一本入门Flink极好的书籍,通俗易懂。第一章第五小节“流处理基础概念”讲到了本书的核心,后面的章节主要围绕这些基础概念展开。前面主要以Flink的基础API DataStream讲解各个概念,第八章介绍了更高级,大家也更熟悉的SQL语言,同样可以完成Flink的流式或批处理计算。

★★★★★

适合入门,每个点都介绍的很清楚,具体细节还是要看源码多实践

书籍信息

作者鲁蔚征编著
出版社人民邮电出版社
出版时间2021-03-01
ISBN9787115546159
分类计算机-数据库
格式EPUB
完结状态连载中
章节数72