![](https://img-blog.csdnimg.cn/direct/de2293f0286445bc97b188764688cf8d.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flink重温笔记
文章平均质量分 93
本专栏着重记录flink学习笔记,其中记录了大量的案例演示和企业级实战场景,结合梳理flink官方文档的知识点,希望对大家有所帮助!欢迎您的订阅,我会继续努力更新,记录有趣的flink知识点!
卡林神不是猫
一枚大数据小学徒,正在大数据学习之路上摸索前行……
展开
-
flink重温笔记(十九): flinkSQL 顶层 API ——FlinkSQL 窗口(解决动态累积数据业务需求)
over:定义窗口长度on:用来分组(按时间间隔)或者排序(按行数)的时间字段as:别名,必须出现在后面的groupBy中例子:每隔5秒钟统计一次每个商品类型的销售总额new OrderInfo("电脑", 1000L, 100D),new OrderInfo("手机", 2000L, 200D),new OrderInfo("电脑", 3000L, 300D),new OrderInfo("手机", 4000L, 400D),原创 2024-03-17 13:38:05 · 1586 阅读 · 13 评论 -
flink重温笔记(十八): flinkSQL 顶层 API ——实时数据Table化(涵盖全面实用的 API )
喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!"2. 数据库操作3. 数据表操作4. 视图操作5. 分区操作6. 函数操作 ## 五、FlinkSQL 流处理1. 时间特性1.1 处理时间(Processing Time)简介:机器在本地生成的时间,不需要提取时间戳,也不需要水印!例子:文件系统建表总结:在建表的时候增加一列:,注意 timestamp 需要为 BIGINT 类型!例子:文件流转化为表总结:转化为表指定字段时,添加一列 1.2原创 2024-03-16 16:27:52 · 1815 阅读 · 0 评论 -
flink重温笔记(十七): flinkSQL 顶层 API ——SQLClient 及流批一体化
今天是学习 flink 的第 17 天啦!学习了 flinkSQL 的客户端工具 flinkSQL-client,主要是解决大数据领域数据计算避免频繁提交jar包,而是简单编写sql即可测试数据,文章中主要结合 hive,即编写 flinksql 可以操作 hive 中的数据表,以及流批一体化:kafak 将数据写入到 hive中,结合自己实验猜想和代码实践,总结了很多自己的理解和想法,希望和大家多多交流!原创 2024-03-15 15:42:11 · 1402 阅读 · 0 评论 -
flink重温笔记(十六): flinkSQL 顶层 API ——实时数据流结合外部系统
今天是学习 flink 的第 16 天啦!学习了 flinkSQL 与企业级常用外部系统结合,主要是解决大数据领域数据计算后,写入到文件,kafka,还是mysql等 sink 的问题,即数据计算完后保存到哪里的问题!结合自己实验猜想和代码实践,总结了很多自己的理解和想法,希望和大家多多交流!Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊!喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!原创 2024-03-14 18:12:43 · 1411 阅读 · 1 评论 -
flink重温笔记(十五): flinkSQL 顶层 API ——实时数据流转化为SQL表的操作
今天是学习 flink 的第 15 天啦!学习了 flinkSQL 基础入门,主要是解决大数据领域数据处理采用表的方式,而不是写复杂代码逻辑,学会了如何初始化环境,鹅湖将流数据转化为表数据,以及如何查询表数据,结合自己实验猜想和代码实践,总结了很多自己的理解和想法,希望和大家多多交流!Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊!喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!原创 2024-03-12 21:15:22 · 1822 阅读 · 3 评论 -
flink重温笔记(十四): flink 高级特性和新特性(3)——数据类型及 Avro 序列化
Avro 是数据序列化系统,支持大批量数据交换的应用。支持二进制序列化方式,性能好 / 效率高,使用 JSON 描述。动态语言友好,RPC 远程调用,支持同步和异步通信。namespace:要生成的目录type:类型 avro 需要指定 recordname:会自动生成的对象fields:要指定的字段注意: 创建的文件后缀名一定要叫avsc,而不是 avro 后缀,使用idea生成Order对象注意:由于在导入 pom 依赖的时候,需要注意插件冲突,注释掉以下依赖,不然会一直爆错!原创 2024-03-10 18:10:46 · 1196 阅读 · 2 评论 -
flink重温笔记(十三): flink 高级特性和新特性(2)——ProcessFunction API 和 双流 join
喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!"之前的转换算子是无法访问时间戳信息和水位线信息的,但 Process Function 可以访问时间戳,水位线,以及注册定时时间等,Flink SQL 就是使用 Process Function 实现的。KeyedProcessFunction 作为 ProcessFunction 的扩展,在其 onTimer(…) 方法中提供对定时器对应key的访问。所有的 Process Function 都继承自 RichFunction 接口原创 2024-03-09 22:46:40 · 1926 阅读 · 7 评论 -
flink重温笔记(十二): flink 高级特性和新特性(1)——End-to-End Exactly-Once(端到端精确一致性语义)
顺序:At most once(最多一次)< At least once(至少一次)< Exactly once(精确一次)< End to End Exactly once(端到端一次)最简单的恢复方式,直接从失败的下个数据恢复程序,丢失刚刚失败的数据。由于事件是可以重传的,可能造成数据重复。依赖 checkpoint 机制,回滚恢复数据,保持所有记录仅影响内部状态一次,即不考虑部分数据泄露到下游。Flink 应用从 Source 端开始到 Sink 端结束,保持所有记录影响内部和外部状态一次,即考虑部原创 2024-03-08 20:55:07 · 1537 阅读 · 4 评论 -
flink重温笔记(十一):Flink 高级 API 开发——flink 四大基石之 Checkpoint(详解存储后端)
1- Flink 检查点机制,(协调者)定期在数据流上生成 checkpoint barrier;2- 当某个算子接收到barrier(数据栅栏) 时,会基于当前状态生成一份快照;3- 后将 barrier 传递给下游算子,依次快照并传递下去,直到 sink;4- 出现异常时,根据最近的快照数据,将所有算子恢复到之前状态;5-收到所有算子的报告后,才认为该周期快照成功。flink-conf.yaml 配置文件的 restart-strategy 配置参数决定重启策略。重启策略重启策略值。原创 2024-03-06 23:37:24 · 2212 阅读 · 3 评论 -
flink重温笔记(十):Flink 高级 API 开发——flink 四大基石之 State(涉及Checkpoint)
简介:State(状态)是基于 Checkpoint(检查点)来完成状态持久化,在 Checkpoint 之前,State 是在内存中(变量),在 Checkpoint 之后,State 被序列化永久保存,支持存储方式:File,HDFS,S3等。例子:词频统计,不要用 sum,而是用 reduce,然后 ValueState结果:总结:例子:使用 OperatorState 进行演示基于类似于 kafka 消费数据的功能结果:总结:举例子:着眼于是更新日期是在哪个时候, 而这里设置 .ne原创 2024-03-05 15:37:38 · 2353 阅读 · 1 评论 -
flink重温笔记(九):Flink 高级 API 开发——flink 四大基石之WaterMark(Time为核心)
当 flink 以 EventTime 模式处理流数据时,它会根据数据里的时间戳来处理基于时间的算子。但是由于网络、分布式等原因,会导致数据乱序的情况。结论:只要使用 event time,就必须使用 watermark,在上游指定,比如:source、map算子后。Watermark 的核心本质可以理解成一个延迟触发机制。因为前面提到,数据时间 >= 窗口结束时间,触发计算,这里想要延迟触发计算,所以水印时间一般比数据事件时间少几秒水印时间 = 事件时间 - 设置的水印长度水印的功能:在不影响按照事件原创 2024-03-03 15:09:46 · 2221 阅读 · 15 评论 -
flink重温笔记(八):Flink 高级 API 开发——flink 四大基石之 Window(涉及Time)
>前言:今天是学习 flink 的第八天啦!学习了 flink 高级 API 开发中四大基石之一: window(窗口)知识点,这一部分只要是解决数据窗口计算问题,其中时间窗口涉及时间,计数窗口,会话窗口,以及 windowFunction 的各类 API,前前后后花费理解的时间还是比较多的,查阅了很多官方文档,我一定要好好掌握!>Tips:二月底了,春天来临之际我要再度突破自己,加油!原创 2024-02-28 01:46:54 · 1766 阅读 · 2 评论 -
flink重温笔记(七):Flink 流批一体 API 开发—— Connector 连接器
前言:今天是学习 flink 的第七天啦!学习了 flink 中 connector(数据连接器) 部分知识点,这一部分只要是解决数据处理之后,数据到哪里去的问题,主要学习了数据存储到以下三处:1、关系型数据库 mysql ;2、消息队列:kafka;3、非关系型数据库:redis我觉得还是比较有意思的,这些是以后工作要用到的技能,我一定要好好掌握!Tips:“莫道春光难揽取,浮云过后艳阳天!”明天周一,又是新的一天,要深入学习 flink 的四大基石属性!原创 2024-02-18 23:42:58 · 1832 阅读 · 2 评论 -
flink重温笔记(六):Flink 流批一体 API 开发—— 数据输出 sink
今天是学习 flink 的第七天啦!学习了 flink 中 sink(数据槽) 部分知识点,这一部分只要是解决数据处理之后,数据到哪里去的问题,我觉得 flink 知识点虽然比较难理解,但是代码跑通后,逻辑还是比较有趣的!Tips:毛爷爷说过:“宜将剩勇追穷寇,不可沽名学霸王!”明天周日除了复习前面知识点之外,也要继续努力学习接下来的知识点,继续加油!原创 2024-02-17 23:39:13 · 1384 阅读 · 4 评论 -
flink重温笔记(五):Flink 流批一体 API 开发——物理分区(下)
前言:今天是学习 flink 的第五天啦!主要学习了物理分区较难理解的部分,在这个部分的三个分区的学习中, rescale partition 和 forward partition 其原理可以归类 pointwise 模式,其他的 partition 其原理可以归类 all_to_all 模式,而比较有趣的是 custom partitioning,这个可以进行根据值的输入进行自定义分区。原创 2024-02-16 23:25:04 · 2036 阅读 · 6 评论 -
flink重温笔记(四):Flink 流批一体 API 开发——物理分区(上)
今天是学习flink的第四天啦!学习了物理分区的知识点,这一次学习了前4个简单的物理分区,称之为简单分区篇!Tips:我相信自己会越来会好的,明天攻克困难分区篇,加油!原创 2024-02-15 23:57:13 · 1443 阅读 · 5 评论 -
flink重温笔记(三):Flink 流批一体 API 开发——Transformation 重要算子操作
今天是学习 flink 第三天啦,学习了高级 api 开发中11 中重要算子,查找了好多资料理解其中的原理,以及敲了好几个小时代码抓紧理解原理。Tips:虽然学习进度有点慢,希望自己继续努力,不断猜想 api 原理,通过敲代码不断印证自己的想法,转码大数据之路一定会越来越好的!原创 2024-02-14 23:53:13 · 1587 阅读 · 2 评论 -
flink重温笔记(二):Flink 流批一体 API 开发——Source 数据源操作
前言:今天是第二天啦!开始学习 Flink 流批一体化开发知识点,重点学习了各类数据源的导入操作,我发现学习编程需要分类记忆,一次一次地猜想 api 作用,然后通过敲代码印证自己的想法,以此理解知识点,加深对api的理解和应用。Tips:我觉得学习 Flink 还是挺有意思的,虽然学习进度有点慢,但是数据源已经理解清楚了,我相信接下来一切会越来越好的!原创 2024-02-13 23:37:45 · 1345 阅读 · 6 评论 -
flink重温笔记(一):Flink 基础入门
最近发现 Flink 技术在实时数仓开发上占比越来越明显,希望通过抓紧复习,加强对 Flink 的理解和应用,提升自己实时数仓的开发能力,以下是今日整理的学习笔记,各种图像均按照自己理解重画,有疏漏的地方还请各位大佬指出,希望能和大家一起共同学习,互相进步。Tips:这是我的第一篇 CSDN 博客,后续会持续分享每日学习总结和心得,2024年大家一起加油!原创 2024-02-12 22:26:14 · 1610 阅读 · 6 评论