自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 一张图说清楚Flink水印和Lateness

当Watermark大于窗口结束时间时,会触发窗口内的元素进行计算并缓存起来,随着Watermark增长,在Watermark 窗口结束时间 + Lateness时清空缓存。Flink使用窗口与水印处理乱序问题,使用Latenss处理延迟问题,二者混合使用可以满足很多复杂场景的需求。简单地说就是,当Watermark在红色区域时,窗口内的元素会计算。真传一句话,假言万卷书。

2024-09-29 15:29:07 132

原创 源码贡献时的git流程

4、新建本地分支修改源码后,先rebase变基到源分支master,然后提交本地分支到fork分支(不要用merge,否则可能会多一个merge记录造成pr难以被commit)3、每次保证源分支是最新的,git checkout master, git pull。使用如下方式,我在做flink、presto源码贡献时就是这样处理的,非常实用。2、git remote add my fork分支。1、git clone 源分支。

2024-09-29 15:24:59 212

原创 聊聊源码贡献这件大事

对于一个热爱技术的开发人员来说,能读懂被业界广泛使用的开源框架里的代码,甚至回馈社区,将是一件莫大的荣耀。下面简单聊聊这件大事。

2024-09-29 15:21:32 794

原创 Flink Sink定制开发

在flink自带的kafka sink实现里,只支持写到固定topic,而我们的kafka2kafka日志处理逻辑要求消息要按照ds字段值写入到对应topic,topic名前缀相同,后面跟ds字段值,需要进行改造。flink自带的hdfs sink只支持将接收到的消息整体使用UTF-8格式写入到文件,而我们的kafka2hdfs处理逻辑要求只写body字段内容到文件。(1)由源码可知BucketingSink类的setBucketer(Bucketer bucketer)方法确定要写入的文件目录。

2024-08-13 16:26:30 695

原创 Presto实现定时从配置文件读取配置

使用guava的memoizeWithExpiration方法。

2024-08-07 10:45:52 124

原创 Flink kuduSink开发

定义JsonLogidKeyTableSerializationSchema实现TableSerializationSchema接口,对于输入的json数据,使用指定key值提取value值,然后再从一个预先获取的map里找到这个value对应的表名,然后加上必要的前缀与后缀组成impala的表名。核心是如果已传入TableSerializationSchema对象,则通过其serializeTable方法从输入的json数据里提取表名,如果未定义则直接取默认表名。(2)重写open方法。

2024-08-07 10:42:44 304

原创 Flink之对时间的处理

重写processElement(),对每个输入元素注册定时器,但会自动去重重写onTimer(),定时器触发时执行的逻辑根据时间特征的不同,具体如下:处理时间——调用Context.timerService().registerProcessingTimeTimer()注册;onTimer()在系统时间戳达到Timer设定的时间戳时触发。事件时间——调用Context.timerService().registerEventTimeTimer()注册;

2024-08-07 10:38:53 584

原创 Calcite执行计划优化

CBO与RBO并非对立关系,而是基于RBO的拓展CBO = RBO + Cost Model + Model Iteration,通过代价模型,在一定的时间空间范围内通过动态规划算法来获得最终的执行计划claicte的优化原理是,它假定如果一个表达式最优,那它的局部也是最优的。成本最优假设利用了贪心算法的思想,在计算的过程中, 如果一个方案是由几个局部区域组合而成,那么在计算总成本时, 我们只考虑每个局部目前已知的最优方案和成本即可。

2024-07-30 10:37:23 409

原创 聊聊FLINK-25631贡献

从入行做数据库开发,到2018年过渡到大数据开发,可以说我已经与sql朝夕相处了七八年了,经常惊讶于简单的语法就能产生复杂的操作,而且还能根据索引等统计信息自动优化,不禁很想实现自己的sql语法,却不知道这是怎么做到的,繁忙的工作、庞大的语法解析及优化的储备知识让我迟迟难以行动起来,但只要出现契机并敢于把握,这些困难都不算什么。

2024-07-30 10:34:10 309

原创 实战Flink sql语法改造

首先通过调研spark、mysql等流行引擎,如下语法是最合适的,可以看出语法还是比较复杂的,有很多可选的组合,比如接着就是定义语法文件,Flink使用的fmpp模板生成器将模板文件放在flink-sql-parser模块下,文件名是parserImpls.ftl。根据前面讲到的Calcite解析规则,修改文件如下:} )

2024-07-30 10:30:13 352

原创 【持续更新中】开源贡献记录

但迟迟不review。3.13发邮件讨论FLIP-436,3.19投票,3.22投票通过,4.7终于合入了,跨度达到了两年多,终于完成了。目前:merged 2024.6.14 为了赶1.20 code freeze,半夜2点完成FLIP-436后,起来又发现CI失败了,排查是其他人刚提交的一个commit里的test有bug,很快修复了提了pr。切换到0.235版本后,同样的代码报错了,delete catalog后重新加载却报already异常,可能是个隐藏的bug,已提交了新的pr解决。

2024-07-30 10:28:23 986

原创 Paimon笔记

支持高吞吐数据摄入、变更追踪、高效分析的流批数据湖基于LSM提升写入速度并降低写入消耗;基于有序的SortRun裁剪大部分数据以提升查询性能;支持多种merge引擎实现高性能流表打宽。

2024-07-30 10:12:55 704

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除