我的场景就是简单的数据同步,没有join也没有group by,从一个mysql库同步到另一个mysql库。 上游写入数据速度很快,如果用flink sql同步的话默认只有一个并行度写,速度会跟不上,这种情况要怎么处理? 用的是flink 1.12.1 其jdbc connector还不支持sink.parallism参数
在 2021-06-11 16:32:00,"东东" <dongdongking...@163.com> 写道: > > > >他这里列举的case是sink前发生了基于非pk的shuffle,比如说有join而且join条件不是主键,你的场景是怎样的呢? > > > > >另外,https://issues.apache.org/jira/browse/FLINK-20374 是sink到es,但es >connector并不支持指定sink.parallelism,也就是说sink端的并行度必然为上游的并行度。而jdbc >connector是可以指定sink.parallelism的,只要与上游的并行度不一致,runtime就会根据pk做hash >shuffle,确保相同pk的记录发到同一个sink task。 > > >在 2021-06-11 15:57:29,"casel.chen" <casel_c...@126.com> 写道: >>引用 Leonard Xu大佬之前的回答: >> >>> flink 1.13的jdbc connector新增 sink.parallism >>> 参数,问题是如果增大并行度的话能否确保同一个主键记录发到同一个sink task呢?SQL正确的写法是什么? >> >>这个不仅在同步场景,在其他场景也需要注意 >>sink.parallism这个参数的使用,目前框架没有保证同一个pk的记录发送到同一个task,需要用户自己保证 sink 上定义的pk >>和上游数据shuffle的key(比如 group key, join key)保持一致, >>否则可能导致数据乱序。 这个社区也在从 plan 推导上并解决,可以参考 >>https://issues.apache.org/jira/browse/FLINK-20374 >><https://issues.apache.org/jira/browse/FLINK-20374> >>https://issues.apache.org/jira/browse/FLINK-22901 >><https://issues.apache.org/jira/browse/FLINK-22901> >> >>说明加 sink.parallelism 是不行的 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>在 2021-06-11 15:44:51,"JasonLee" <17610775...@163.com> 写道: >>>hi >>> >>>sink 端可以通过 sink.parallelism 进行设置. >>> >>> >>> >>>----- >>>Best Wishes >>>JasonLee >>>-- >>>Sent from: http://apache-flink.147419.n8.nabble.com/