实时第三讲主题:Flink 源码讲解

---------------------------------------------------
19:51提问:
1,看实现类的快捷键是啥  // 回答:ctrl + h  ctrl + f12 
[[百度搜索 踏踏实实练sql, 那个B站站主是某大厂数仓大佬,可加好友学习,他人很好]]
2,sink这个sql里 写 删除可以吗  delete// 回答 可以、insert   delete   select  update   都可以
3.中邮信科-何**---想问下左哥  如果实时数据  和第二天的离线数据有差异  如何排查解决呢//答案在最后
,doris的 source和sink 官网文档由有案例

java基础可以巩固一下,面对对象这一块儿要熟悉 //
看java技巧:静态方法一定使用 . 的///  没有静态方法 一定是new出来的
看源码的在线翻译://电脑下载网易有道软件,  ctrl+shite+d 可以截图 直接翻译


------------下面为.听课笔记----------------------
看flink代码要对builder有感觉 (还有Factory)
flink1.7版本 source加了数据类型
根据你的数据,把你的数据和数据类型返回

Generator 中文翻译: 生成器
17版本的第一个参数 输入必须是long类型  第二个参数count,达到什么值停止,  第三个参数和 16版本一样作用, 生产速度  第4个参数 设置返回类型, 16版本不限制,无这个参数

tyrantlucifer发言:
FILP-27 新版本的source api
https://cwiki.apache.org/confluence/display/FLINK/FLIP-27%3A+Refactor+Source+Interface?src=contextnavpagetreemode
新版本source接口设计哲学
有兴趣的同学可以看看//


flink程序分为3部分  //source  transform sink
-source阶段-----------------------------------------------------
20:28
先builder构造   返回的是个builder类, builder  类里有set 设置一些参数, 里面肯定有个build方法


kafka 消费 有offset都从 offset消费,  earliest从最早消费, lastest从最晚消费  、 、flink的kafkasource默认的消费策略是 earliest

-transform阶段-----------------------------------------------------
.map  里面可以写转换加工处理

兰姆达表达式 :b -》 2b 

flatMap  不管你输入啥类型数据, 都会给你拆开 一个一个输出      。    

MapFunction是一进一出,因为有reture,只能返回一条
flatMap可以是一进多出  是void无reture,有个采集器给你发数据,所以一进多条输出,   是把数据拍扁了,咋拍扁的,是因为里面有的采集器, 所以 也可以 一进0出, 不OUT就不会发数据出去

RichMapFunction 富函数,继承了富函数。  

运行上下文类里, 有jobId taskName 任务编号 AttempNumber 等参数

RichMapFunction 富函数,继承了富函数。  实现的东西多,能力就增加了,比MapFunction多了一些能力。

open方法 和close方法(flink程序异常了,不会调close,只有在取消程序运行的时候会调用close方法)
你撤回了一条消息

-sink阶段-----------------------------------------------------
sink的
第一个参数, 带占位符的sql
第二个参数, 给占位符填数据
第三个参数, builder类又是 设置一些参数, 比如 withMaxRetries重试次数 WithBatchSize一批次多少条 withBactchIbtervalMs 每批次间隔多少毫秒
第三个参数作用,给参数,优化性能
第四个参数, 连接的 地址 端口  用户名 密码登

filesink,把处理好的存文件里

basePath 文件写出路径,,,,encoder 编码(默认UTF-8)

jdbcSink 和 FileSink里的sink 不一样

kafkaSink  地址 生产者 参数 序列化器 超时时间 topic等  事务前缀和事务超时时间等
kafla的序列化器里面  设置了topic名字  以及 用的哪个schema的类(simpleStringSchema)
---

https://cwiki.apache.org/confluence/display/FLINK/FLIP-27%3A+Refactor+Source+Interface?src=contextnavpagetreemode

--------------------------

中邮信科-何:
想问下左哥  如果实时数据  和第二天的离线数据有差异  如何排查解决呢
一般为离线覆盖实时, 也看公司领导和产品经理以什么数据为准,实时漏数据很正常,数值不大也不影响
22:14
语数星球-主讲人:
对数  源头  指标口径   离线  产品经理  下游   source   转换   状态  逻辑 debug     窗口  乱序  迟到  允许数据迟到   agg    reduce   sink  batch   flush   夫林卡
语数星球-主讲人:
batch刷写策略  不一样 1.14  0   缓冲区里有就刷  default
中邮信科-何:
了解了  感谢左哥

---实时离线是否分开存
实时离线 有分开存的, 有存在一起的, 左哥公司里是分开存的
--------------------------

嵩*&agreenwoodboy
左哥,doris  中批读 的api 是啥 ?  flink 中 addsink 底层是 使用2 阶段提交 实现的 exactly once 吗? 还是使用 幂等实现的 exactly once ?使用 2 阶段提交 是单独的 API 吗?
幂等有单独的api//20230618

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值