hi everyone, 麻烦请教下各位大神,flink如何处理如下问题: flink1.11引入cdc,可以解析canal和debezuim发送的CDC数据,其中canal一般是可以指定某些字段作为key进行hash分区发送到同一topic下的不同分区的。 如果源端短时间对pk值进行多次update,则有可能导致发往不同分区,从而无法保证顺序性。 假如 1.有源表和目标表: create table test( id int(10) primary key ) 2.源表的增量数据通过canal发往kafka,目标表接收kafka消息进行同步。 3.发往的topic下有三个partition:p0、p1、p2 4.源端和目标端都有一条记录id=1
此时对源端进行两次update: update1:update test set id=2 where id=1; update2: update test set id=3 wehre id=2; 假如两条消息都在同一批message中发往kafka,其中update1发送到p1,pudate2发送到p2,这两条消息的顺序性是无法保证的,假如update2先到达,则目标端最终结果为id=2,与源端结果id=3不一致。 -- Sent from: http://apache-flink.147419.n8.nabble.com/
