Hi 各位,有个问题想请教一下:
目前我有一个功能想使用flink sql来完成,source是kafka,sink是mysql, 在写入mysql的时候,我希望能先根据key获取mysql中的数据进行判断,然后决定如何写入数据,请问flink1.10目前能实现这种功能吗? |
应该做一个维表Join就可以了。
zya <[hidden email]> 于2020年6月30日周二 下午9:02写道: > Hi 各位,有个问题想请教一下: > 目前我有一个功能想使用flink sql来完成,source是kafka,sink是mysql, > > 在写入mysql的时候,我希望能先根据key获取mysql中的数据进行判断,然后决定如何写入数据,请问flink1.10目前能实现这种功能吗? -- Best, Benchao Li |
请问下,sink写出的表能做维表吗,因为sink会一直写入,做维表的话会一直动态变化
------------------ 原始邮件 ------------------ 发件人: "Benchao Li"<[hidden email]>; 发送时间: 2020年6月30日(星期二) 晚上11:14 收件人: "user-zh"<[hidden email]>; 主题: Re: 关于flink sql问题 应该做一个维表Join就可以了。 zya <[hidden email]> 于2020年6月30日周二 下午9:02写道: > Hi 各位,有个问题想请教一下: > &nbsp; &nbsp; 目前我有一个功能想使用flink sql来完成,source是kafka,sink是mysql, > > &nbsp;&nbsp;&nbsp;&nbsp;在写入mysql的时候,我希望能先根据key获取mysql中的数据进行判断,然后决定如何写入数据,请问flink1.10目前能实现这种功能吗? -- Best, Benchao Li |
我理解你只需要把这同一个Mysql表再做一个维表即可。可以写两次DDL,一个给维表用,一个给sink用。
如果你就觉得它是实时变化的,你可以把维表的cache关掉,保证每次都是获取Mysql中最新的数据就可以了吧? 当然了,在DDL的时候并没有区分这个表是维表还是sink表,具体它是什么类型,只是根据你在SQL里面怎么使用来决定的。 理论上来讲,你一个DDL可以同时做维表也可以做Sink。(只是它们可能有些配置会不同,分开写两个DDL应该是更清晰一些) zya <[hidden email]> 于2020年6月30日周二 下午11:26写道: > 请问下,sink写出的表能做维表吗,因为sink会一直写入,做维表的话会一直动态变化 > > > > > > > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Benchao Li"<[hidden email]>; > 发送时间: 2020年6月30日(星期二) 晚上11:14 > 收件人: "user-zh"<[hidden email]>; > > 主题: Re: 关于flink sql问题 > > > > 应该做一个维表Join就可以了。 > > > zya <[hidden email]> 于2020年6月30日周二 下午9:02写道: > > > Hi 各位,有个问题想请教一下: > > &nbsp; &nbsp; 目前我有一个功能想使用flink sql来完成,source是kafka,sink是mysql, > > > > > &nbsp;&nbsp;&nbsp;&nbsp;在写入mysql的时候,我希望能先根据key获取mysql中的数据进行判断,然后决定如何写入数据,请问flink1.10目前能实现这种功能吗? > > > > -- > > Best, > Benchao Li -- Best, Benchao Li |
十分感谢,目前我的解决方法是使用blink-planner,通过temporal table的方式实时加载数据
sql语句为:insert into mysql_sink select C.log_id, C.vic from (select A.log_id, case when B.cnt>0 and A.server>0 then B.cnt+1 else A.server end as vic from (select log_id, server, PROCTIME() as proctime from kafka_source) A left join mysql_source for SYSTEM_TIME AS OF A.proctime AS B on A.log_id=B.log_id ) C group by log_id,vic 参考文档如下:https://ci.apache.org/projects/flink/flink-docs-stable/dev/table/streaming/temporal_tables.html 同时我实现了一个redis 的 temporal table,支持source和sink,感兴趣的同学可以一起交流下 祝好~ ------------------ 原始邮件 ------------------ 发件人: "Benchao Li"<[hidden email]>; 发送时间: 2020年7月1日(星期三) 中午1:22 收件人: "user-zh"<[hidden email]>; 主题: Re: 关于flink sql问题 我理解你只需要把这同一个Mysql表再做一个维表即可。可以写两次DDL,一个给维表用,一个给sink用。 如果你就觉得它是实时变化的,你可以把维表的cache关掉,保证每次都是获取Mysql中最新的数据就可以了吧? 当然了,在DDL的时候并没有区分这个表是维表还是sink表,具体它是什么类型,只是根据你在SQL里面怎么使用来决定的。 理论上来讲,你一个DDL可以同时做维表也可以做Sink。(只是它们可能有些配置会不同,分开写两个DDL应该是更清晰一些) zya <[hidden email]> 于2020年6月30日周二 下午11:26写道: > 请问下,sink写出的表能做维表吗,因为sink会一直写入,做维表的话会一直动态变化 > > > > > > &nbsp; > > > > > ------------------&nbsp;原始邮件&nbsp;------------------ > 发件人:&nbsp;"Benchao Li"<[hidden email]&gt;; > 发送时间:&nbsp;2020年6月30日(星期二) 晚上11:14 > 收件人:&nbsp;"user-zh"<[hidden email]&gt;; > > 主题:&nbsp;Re: 关于flink sql问题 > > > > 应该做一个维表Join就可以了。 > > > zya <[hidden email]&gt; 于2020年6月30日周二 下午9:02写道: > > &gt; Hi 各位,有个问题想请教一下: > &gt; &amp;nbsp; &amp;nbsp; 目前我有一个功能想使用flink sql来完成,source是kafka,sink是mysql, > &gt; > &gt; > &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在写入mysql的时候,我希望能先根据key获取mysql中的数据进行判断,然后决定如何写入数据,请问flink1.10目前能实现这种功能吗? > > > > -- > > Best, > Benchao Li -- Best, Benchao Li |
In reply to this post by Benchao Li-2
Hi 本超
关于Mysql 做维表,关掉cache后的优化手段,有什么建议吗? 比如,20k records per second 的流量,关掉 cache 会对 mysql 产生很大的压力。不知道 MySQL Lookup 做成 async + batch 会不会提升性能或者有副作用。 Best forideal. 在 Benchao Li <[hidden email]>,2020年7月1日 13:22写道: 我理解你只需要把这同一个Mysql表再做一个维表即可。可以写两次DDL,一个给维表用,一个给sink用。 如果你就觉得它是实时变化的,你可以把维表的cache关掉,保证每次都是获取Mysql中最新的数据就可以了吧? 当然了,在DDL的时候并没有区分这个表是维表还是sink表,具体它是什么类型,只是根据你在SQL里面怎么使用来决定的。 理论上来讲,你一个DDL可以同时做维表也可以做Sink。(只是它们可能有些配置会不同,分开写两个DDL应该是更清晰一些) zya <[hidden email]> 于2020年6月30日周二 下午11:26写道: > 请问下,sink写出的表能做维表吗,因为sink会一直写入,做维表的话会一直动态变化 > > > > > > > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Benchao Li"<[hidden email]>; > 发送时间: 2020年6月30日(星期二) 晚上11:14 > 收件人: "user-zh"<[hidden email]>; > > 主题: Re: 关于flink sql问题 > > > > 应该做一个维表Join就可以了。 > > > zya <[hidden email]> 于2020年6月30日周二 下午9:02写道: > > > Hi 各位,有个问题想请教一下: > > &nbsp; &nbsp; 目前我有一个功能想使用flink sql来完成,source是kafka,sink是mysql, > > > > > &nbsp;&nbsp;&nbsp;&nbsp;在写入mysql的时候,我希望能先根据key获取mysql中的数据进行判断,然后决定如何写入数据,请问flink1.10目前能实现这种功能吗? > > > > -- > > Best, > Benchao Li -- Best, Benchao Li |
Free forum by Nabble | Edit this page |