2023年12月26日
揭秘 Java Record:更好的数据处理 介绍 Java 通常被认为是一种冗长的语言,即使是简单的任务也需要大量的代码。为了解决这种冗长的问题,Java 第 14 版引入了一个游戏规则改变者——Record 类。 Java 中 Record 的这种特殊添加旨在简化和简化我们编写代码的方式,特别是对于存储模型数据的类。 让我们深入研究……
阅读全文
2023年12月2日
Flink 的方案设计面试题目在面试中,是面试官了解我们项目的最直接的问题,它通常体现在面试者回答自己的项目整体是如何设计的?Flink 在你的项目中起到什么作用?有没有在应用过程中对 Flink 有一些定制开发等。 如何介绍自己的项目,为什么技术选型 Flink 也代表我们对于 Flink 框架的了解程度,我们本课时将介绍 Flink 典……
阅读全文
2023年12月2日
Flink 的源码篇包含了 Flink 的核心代码实现、Job 提交流程、数据交换、分布式快照机制、Flink SQL 的原理等考察点。你应该记得,我们在前面近 40个课时中几乎每一课时都有一定的篇幅是源码阅读,源码部分的考察是面试时十分重要的一关,如果你对 Flink 的源码有一定的研究而不仅仅停留在使用阶段,那么你的面试……
阅读全文
2023年12月2日
Flink 面试进阶篇主要包含了 Flink 中的数据传输、容错机制、序列化、数据热点、反压等实际生产环境中遇到的问题等考察点。这一阶段主要考察我们对 Flink 掌握的深度,也是给面试官留下好印象的关键环节。 面试题 1:请谈谈你对 Flink Table & SQL 的了解情况?以及 TableEnvironment 这个类有什么样的作用? 这道题考察的是对 Flink Table & SQL 的掌握情况,……
阅读全文
2023年12月2日
到目前为止,关于 Flink 的学习我们就告一段落了,接下来我们将进入最后一个面试模块的学习。在当前大背景下,面试这一关是求职者必须要面对的,也能从侧面考察对 Flink 的掌握情况,最后一模块将结合部分实际面试中出现的问题,进行详细分析,帮助大家顺利拿到 Offer。 最后一个面试模块分为了 4 个课时: Flink 面……
阅读全文
2023年12月2日
在上一课时中,我们详细讲解了 Flink CEP 中 Pattern 的分类,需要根据实际生产环境来选择单个模式、组合模式或者模式组。 在前面的课程中我们提到的三种典型场景下,分别根据业务需要实现了 Pattern 的定义,也可以根据自定义的 Pattern 检测到异常事件。那么接下来就需要根据检测到的异常事件发送告警,这一课将从这三种场景入手,……
阅读全文
2023年12月2日
在上一课时提过,PatternStream 是 Flink CEP 对模式匹配后流的抽象和定义,它把 DataStream 和 Pattern 组合到一起,并且基于 PatternStream 提供了一系列的方法,比如 select、process 等。 Flink CEP 的核心在于模式匹配,对于不同模式匹配特性的支持,往往决定相应的 CEP 框架是否能够得到广泛应用。那么 Flink CEP 对模式提供了哪……
阅读全文
2023年12月2日
我们在上一课时中讲了 CEP 的基本原理并且用官网的案例介绍了 CEP 的简单应用。在 Flink CEP 中存在多个比较晦涩的概念,如果你对于这些概念理解有困难,我们可以把:创建系列 Pattern,然后利用 NFACompiler 将 Pattern 进行拆分并且创建出 NFA,NFA 包含了 Pattern 中的各个状态和各个状态间转换的表达式。这整个过程我们可以把 Flink……
阅读全文
2023年12月2日
从这一课时开始我们将进入“Flink CEP 实时预警系统”的学习,本课时先介绍项目的背景、架构设计。 背景 我们在第 11 课时“Flink CEP 复杂事件处理”已经介绍了 Flink CEP 的原理,它是 Flink 提供的复杂事件处理库,也是 Flink 提供的一个非常亮眼的功能,当然更是 Flink 中最难以理解的部分之一。 Complex Event Processing……
阅读全文
2023年12月2日
上一课时我们使用了 3 种方法进行了 PV 和 UV 的计算,分别是全窗口内存统计、使用分组和过期数据剔除、使用 BitMap / 布隆过滤器。到此为止我们已经讲了从数据清洗到水印、窗口设计,PV 和 UV 的计算,接下来需要把结果写入不同的目标库供前端查询使用。 下面我们分别讲解 Flink 和 Redis/MySQL/HBase 是如何整合实现 Flink Sink 的。 Flink Redis Sink 我们在……
阅读全文