问题一:Flink CDC设置哪个参数可以屏蔽掉无PK表的异常,不要让作业停止?
Flink CDC设置哪个参数可以屏蔽掉无PK表的异常,不要让作业停止?
参考回答:
在Flink CDC中,如果希望屏蔽无主键表的异常并保持作业持续运行,可以尝试调整参数"ignore-not-found-pk-tables"
。将其设置为"true"
,这样在处理无主键表时,作业将不会因为找不到主键而停止。这个参数能够允许Flink CDC在遇到这种情况时忽略错误并继续执行其他任务。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/572271
问题二:Flink CDC中SQLServer多库同名表写入到一张sink表中,有什么思路吗?
Flink CDC中SQLServer多库同名表写入到一张sink表中,我有个思路是创建n个source,最后把n个source union all到一起insert到sink表中,但是问题1️:这样会创建多个连接,问题2️:后续SQLServer增删改数据时,sink端无法同步删除,只能同步增改。大佬有什么思路吗
参考回答:
等3.0 有整库同步
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/572267
问题三:Flink CDC 1.17.1 支持jdk8版本吗?
Flink CDC 1.17.1 支持jdk8版本吗?
参考回答:
支持
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/567380
问题四:Flink CDC有个场景,我有两个不同数据类型的topic:a,b,这个有人遇到过吗?
Flink CDC有个场景,我有两个不同数据类型的topic:a,b,他们分别又有相同数据类型的后缀为_grey的灰度用的topic: a_grey,b_grey
a_grey和b_grey分别是用来对应a,b进行灰度切换的,灰度流程是先灰度部分数据,后面全量切换,a -> a_grey, b -> b_grey,下一次灰度就是b_grey -> b, a_grey -> a。
我会用datastream api,去拉取a,a_grey进行union,withTimestampAssigner,使用事件时间戳
用datastream api,去拉取b,b_grey进行unionr,使用事件时间戳
然后去将union之后的stream转换为table,a_union_table和b_union_table 然后用flink sql进行left interval join,a_union_table left interval join b_union_table,获取数据再转为stream,用stream api进行mapper操作,最后写入数据库。
a,a_grey,b,b_grey都有8个分区,
a和a_grey会发送到所有的8个分区有数据
但是b,b_grey,只会发送到里面四个分区,其他四个分区没有数据
现在的问题是每次灰度全量切换完成之后,flink的水印就会推进不了,停留在切换的kafka数据时间戳附近,推进不了,请问下,这个有人遇到过吗?是什么原因,可以怎么解决?flink 1.17.1和1.14.5都不行
我尝试过withIdleness,或者不用withTimestampAssigner,但是在下次切换的时候又出这种问题了?
参考回答:
可能是因为Kafka分区不均衡导致的。由于b和b_grey只向4个分区发送数据,而a和a_grey则向所有8个分区发送数据,因此当您切换到b和b_grey时,Flink可能需要更长时间来处理所有分区的数据,从而导致水印推进困难。
为了缓解这个问题,您可以考虑以下几种方法:
- 均衡分配数据:确保每个Kafka分区都接收到足够多的数据,这样Flink就可以同时处理多个分区,从而更快地推进水印。
- 提高吞吐量:通过增加任务并发度或优化代码等方式,提高Flink处理数据的能力,使水印能够快速推进。
- 调整水印策略:在某些情况下,您可以尝试调整水印策略,例如降低水印阈值,允许更多的乱序数据进入窗口,或者启用懒评估模式等。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/572260
问题五:Flink CDC有没有办法或者配置让CDC作业不去同步这种无主键的表?
Flink CDC有没有办法或者配置让CDC作业不去同步这种无主键的表?
参考回答:
在Flink CDC中,确实存在一种配置可以使得CDC作业不去同步无主键的表。具体来说,您可以使用scan.incremental.snapshot.chunk.key-column
参数进行配置。这个参数允许您指定一个或多个列作为块键列,用于划分表的快照。
此外,对于某些无主键的表,比如Oracle的表,Flink CDC能够通过监听redo log(相当于binlog)来获取数据变更内容。Oracle的redo log记录了所有DML操作,包括对无主键表的变更,因此Flink CDC在这种情况下并不需要依赖表的主键。同样,MySQL CDC连接器在2.4版本也支持读取无主键表,同时支持新增表时原有实时同步链路不断流。
Flink CDC提供了一些灵活的配置选项和策略,使得它能够适应各种不同的数据源和业务场景。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/572257