问题一:Flink CDC用mysql cdc2.3跨坐同步,从任务启动10分钟内没有数据。什么原因?
Flink CDC用mysql cdc2.3跨坐同步,从指定时间戳5分钟前同步,任务表象是
1.任务启动10分钟内没有数据,10分钟后有数据进入。
2.运维告警,在我们任务启动后的10分钟左右专线带宽拉满了。
想问一下,mysql cdc从指定时间戳同步是不是会抽取数据源全量binkog到 cdc,然后cdc再根据时间戳进行过滤?跨云同步
参考答案:
Flink CDC是一种基于流式数据同步的工具,可以将MySQL的binlog数据实时同步到其他数据源。当使用Flink CDC从指定时间戳同步时,它不会抽取全量数据源进行备份,而是根据指定的时间戳来过滤数据。具体来说,Flink CDC会从指定的时间点开始读取增量日志,并将这些增量日志应用到目标数据源中。
对于您提到的问题:
- 任务启动后10分钟内没有数据,这可能是由于Flink CDC在启动初期正在读取并应用增量日志,或者是因为指定的时间戳之前的日志已经被处理过了。
- 运维告警显示专线带宽在任务启动后的10分钟左右被拉满,这可能是因为有大量的数据在这段时间内被同步。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577453
问题二:Flink CDC这个MySqlSource弃用了,还有别的方式吗?
Flink CDC这个MySqlSource弃用了,还有别的方式吗?
参考答案:
有两个MysqlSource,一个是弃用的,另一个是可以用的,包名不同的。com.ververica.cdc.connectors.mysql.source这个包下的可用的
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577450
问题三:Flink CDC基于flink自定义opengauss的source,这里我该怎么去split?
Flink CDC基于flink自定义opengauss的source,这里我该怎么去split,应该查看opengauss哪些特性呢?
参考答案:
目前cdc没接入opengauss
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577449
问题四:Flink CDC在使用oracle cdc监控数据库,参数设置,还有其他办法么?
Flink CDC在使用oracle cdc监控数据库,系统打印LogMiner is now using the maximum batch size 100000....,继而无法监控数据变更,除了调大log.mining.batch. size.max参数设置,还有其他办法么? 这个过程中缺失的数据有啥办法能重新捕获到嘛?
参考答案:
除了调大log.mining.batch.size.max参数设置,还可以尝试以下方法:
- 检查Oracle数据库的归档日志模式是否开启。如果没有开启,需要先开启归档日志模式。可以通过以下命令查看和设置归档日志模式:
查看归档日志模式:
SHOW PARAMETER log_archive_dest;
- 开启归档日志模式:
ALTER DATABASE ARCHIVELOG;
- 检查Flink CDC的Debezium连接器配置是否正确。确保已经正确配置了Oracle数据库的连接信息、schema列表等。可以参考官方文档进行配置:https://debezium.io/documentation/reference/stable/connectors/oracle.html
- 如果缺失的数据已经无法重新捕获到,可以考虑使用第三方工具(如GoldenGate、DataSync等)进行数据同步,将缺失的数据从其他时间点同步过来。
关于本问题的更多回答可点击进行查看:
https://developer.aliyun.com/ask/577447
问题五:Flink CDC中MySQL 数据库,请问有没有遇到过或者好的解决方案?
Flink CDC中MySQL 数据库,表的主键是 varchar类型 primary key,我从 mysql 到 kafka,进行 initial
同步时,总是卡在 MySqlSnapshotSplitReadTask,Snapshot step 2 - Snapshotting data 这一步,我的表数据量在 2000w,导致我的 taskManager 不断的重启,每次都是卡在这,请问大佬们有没有遇到过或者好的解决方案?
参考答案:
在处理大量数据同步的问题上,Flink CDC是一个优秀的解决方案。然而,您遇到的问题可能是由于在initial模式下,MySQL CDC源表会先通过JDBC连接MySQL,使用SELECT语句读取全量的数据,并记录Binlog的位点。全量阶段结束后,再从记录的位点开始读取Binlog中的增量数据。当您的表数据量较大时,这个过程可能会导致任务管理器不断重启。
为了解决这个问题,您可以尝试以下几种方法:
- 将primary key的类型改为整数类型,这样可以避免在大量数据的情况下出现性能问题。
- 采用分片的方式处理大量的数据,将数据分成多个部分进行处理,这样可以提高处理效率。
- 采用增量同步的方式,而不是全量同步。这样可以减少需要处理的数据量,从而提高处理效率。
关于本问题的更多回答可点击进行查看: