You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 张锴 <zk...@gmail.com> on 2021/08/18 02:25:49 UTC

广告业务中 如何用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怎么实现?

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

Posted by yidan zhao <hi...@gmail.com>.
逻辑混乱,没听懂你的需求。大搜?

张锴 <zk...@gmail.com> 于2021年8月18日周三 上午10:26写道:
>
> 需求描述:
> 需要将目前的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怎么实现?

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

Posted by 东东 <do...@163.com>.


这意思是处理乱序吧,如果重试10次都join不上就放弃的意思?


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


纯猜测。






在 2021-08-18 10:25:49,"张锴" <zk...@gmail.com> 写道:
>需求描述:
>需要将目前的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怎么实现?