开发者社区> 问答> 正文

广告业务中 如何用flink替换spark一些逻辑处理,是否需要用到processfunction

需求描述:

需要将目前的spark程序替换成flink去做,在梳理逻辑的时候有一块不知道用flink咋实现,spark是按每三分钟一个批次来跑的。

描述如下:

广告日志按照ask日志->bid->show->click顺序流程,要求是要将不同的日志都与bid日志merge,来保证bid数据的完整性,key按sessionid+Adid做唯一

逻辑:spark读取多个日志topic

含xxtopic,格式化,joinAll之后得到(string,pair)日志类型pair.logType如果是'bid'直接写到bidtopic,如果是其他类型,需要从之前HBASE缓存中拿bid表匹配,匹配到(可能是show

or click ..)合并输出到bidtopic,

没有匹配到,会有pair.n来记录次数,并写到xxtopic,n>10次(循环来回30分钟)都没有匹配到bid数据直接写到bidtopic,n<=10次内匹配不到bid

n+1,并写到xxtopic进入下个批次。

10次是业务方提的,也就是30分钟的缓存,如果没有10次限定,会有很多数据都写到xxtopic,这里不涉及计算,只是合并,也不去重,假如根据key

找到了3条同样的数据,也要合并三条。

这个用flink怎么实现?*来自志愿者整理的flink邮件归档

展开
收起
EXCEED 2021-12-02 15:58:16 523 0
1 条回答
写回答
取消 提交回答
  • 这意思是处理乱序吧,如果重试10次都join不上就放弃的意思?

    flink下面就是双流interval join的事情吧,然后watermark设置要斟酌一下,如果对延迟不敏感就直接30分钟,如果敏感也可以搞分级重试。

    纯猜测。*来自志愿者整理的FLINK邮件归档

    2021-12-02 16:11:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载